북마크
🔥 좋았던 부분
- 중복을 없애라
- 바로 실천해보자!
TEMPLATE METHOD
로 직접적인 예시를 보여줘서 좋았다.
💦 어려웠던 부분
창발적 설계로 깔끔한 코드를 구현하자
- 켄트 백이 제시한 단순한 설계 규칙 네가지
- 아래 순서는 중요도 순이다.
단순한 설계 규칙 1: 모든 테스트를 실행하라
- 설계는 의도한 대로 돌아가는 시스템을 내놓아야한다.
- 시스템이 의도한 대로 돌아가는지 검증할 간단한 방법이 있어야한다.
- 테스트가 불가능한 시스템은 검증도 불가능하다
- 테스트가 가능한 시스템을 만들려고 애쓰면 설계 품질이 더불어 높아진다.
- 크기가 작고 목적 하나만 수행하는 클래스가 나온다.
- SRP 를 준수하는 클래스는 테스트가 훨씬 더 쉽다.
- 결합도가 높으면 테스트 케이스를 작성하기 어렵다.
- 테스트 케이스를 많이 작성할수록 개발자는 DIP와 같은 원칙을 적용하고
- 의존성 주입, 인터페이스, 추상화 등과 같은 도구를 사용해 결합도를 낮춘다.
단순한 설계 규칙 2~4: 리팩터링
- 테스트 케이스를 모두 작성했다면 이제 코드와 클래스를 정리해도 괜찮다.
- 코드를 점진적으로 리팩터링 해간다.
- 코드를 몇줄 추가할때마다 잠시 멈추고 설계를 조감한다.
- 코드를 정리하면서 시스템이 깨질까 걱정할 필요가 없다. 테스트 케이스가 있으니까!