12장 창발성(불시에 솟아나는 특성)

<aside> 💡 착실하게 따르기만 하면 우수한 설계가 나오는 간단한 규칙 4가지가 있다?

</aside>

  1. 모든 테스트를 실행한다
  2. 중복을 없앤다
  3. 프로그래머 의도를 표현한다
  4. 클래스와 메서드 수를 최소로 줄인다

1 모든 테스트를 실행하라

→ 개발자는 DIP와 같은 원칙을 적용하고, 의존성 주입, 인터페이스, 추상화 등과 같은 도구를 사용해 결합도를 낮춘다

<aside> 💡 이제 코드를 점진적으로 리팩터링 해나간다. 코드를 정리하면서 시스템이 깨질 걱정할 필요가 없다. 테스트 케이스가 있으니까!

</aside>

2 중복을 없애라

다음 두 가지 메서드가 있다고 가정하자

int size() {}
boolean isEmpty() {}

깔끔한 시스템을 만들려면 단 몇 줄이라도 중복을 제거하겠다는 의지가 필요하다