창발적 설계로 깔끔한 코드를 구현하자
- 모든 테스트를 실행한다.
- 리팩터링
- 중복을 없앤다.
- 프로그래머 의도를 표현한다.
- 클래스와 메서드 수를 최소로 줄인다.
1. 모든 테스트를 실행하라
- 설계는 의도한 대로 돌아가는 시스템을 내놓아야 한다.
- 테스트가 불가능한 시스템은 검증도 불가능하다.
- 검증이 불가능한 시스템은 절대 출시하면 안 된다.
- 즉, 테스트 케이스를 작성하면 설계 품질이 높아진다.
2. 리팩터링
- 코드를 정리하면서 시스템이 깨질까 걱정팔 필요가 없다. 테스트 케이스가 있기 때문이다.
- 코드를 점진적으로 고쳐나간다.
- 응집도를 높이고, 결합도를 낮추고, 관심사를 분리하고, 함수와 클래스 크기를 줄이는 등 다양한 기법을 동원한다.
3. 중복을 없애라
- 중복은 추가 작업, 추가 위험, 불필요한 복잡도를 뜻한다.
- 공통적인 코드는 새 메서드로 뽑는 것이 좋다. 그러면 메서드의 가시성이 높아진다.
- 또한 다른 팀원이 새 메서드를 좀 더 추상화하여 다른 맥락에서 재사용할 기회를 포착할지도 모른다.
- 소규모 재사용을 제대로 익혀야 대규모 재사용이 가능하다.
4. 표현하라
- 코드는 개발자의 의도를 분명히 표현해야 한다.
- 개발자가 코드를 명백하게 짤수록 다른 사람이 그 코드를 이해하기 쉬워진다.
- 그래야 결함이 줄어들고 유지보수 비용이 적게 든다.
5. 클래스와 메서드 수를 최소로 줄여라
- 함수와 클래스 크기를 작게 유지하면서 동시에 시스템 크기도 작게 유지해야 한다.
'Book > 클린코드' 카테고리의 다른 글
[클린코드] 14장 점진적인 개선 (0) | 2023.09.21 |
---|---|
[클린코드] 13장 동시성 (0) | 2023.09.17 |
[클린코드] 11장 시스템 (0) | 2023.09.17 |
[클린코드] 10장 클래스 (0) | 2023.09.17 |
[클린코드] 9장 단위 테스트 (0) | 2023.09.17 |