techbook-study / reading-after-work

Day By Day Reading a Book
0 stars 0 forks source link

2023-06-20 퇴근 후 독서 #10

Closed OikimiO closed 1 year ago

OikimiO commented 1 year ago

오류 처리(P130)

class Apple{ public int getWeight() throws CustomException{ return weight; } }


- 실제론 그렇지 않지만 위의 코드에선 weight이 체크 예외를 발생하는 코드라고 가정 하겠습니다. 
- 연관된 메서드가 1가지 밖에 없지만 Apple class의 getWeight()의 CustomException 예외처리 때문에 
   Jam class의 make()도 CustomException 처리를 하게 됩니다.
- 결국 Apple Class의 CustomException을 수정하면 Jam Class의 make함수의 Exception도 변경이 필요하며, 이는 클래스간의 결합도를 높이는 문제를 발생시킵니다.
- 그렇기에 Wrapper Class를 통해 체크 예외를 처리하고 다른 클래스들 간의 결합도를 낮추는 것이 좋은 방법입니다.
  * 한번 더 고민해보고 Wrapper Class를 통해 체크 예외를 처리하는 코드를 짜도록 하겠습니다.
limyohwan commented 1 year ago

리팩터링

  1. 데이터 클래스(DTO) 레코드 캡슐화 + 변경 불가시 세터 제거, 상속포기 주석은 좋은거지만 주석을 달아야하는 코드는 최대한 리팩터링을 진행하고 확실하지 않은 부분은 주석으로 남겨놓는 것이 좋다

  2. 리팩터링을 제대로 하기 위해서는 견고한 테스트 코드가 뒷받침돼야한다

  3. 테스트는 자주 실행하고 하루에 적어도 한번은 전체 테스트를 실행하자

  4. 실패해야하는 테스트도 반드시 필요하다

  5. beforeEach afterEach 와 같은 테스트 프레임워크의 메서드를 활용하여 각각의 테스트가 격리하여 실행될 수 있도록 하자