클린 코드 - 12장 창발성
CleanCode ·클린 코드 12장 창발성을 정리합니다!
창발적 설계로 깔끔한 코드 구현
- 여기서 창발적 설계의 의미는 단순한 규칙을 착실하게 따르기만 하면 우수한 설계가 나오는 것
- 단순한 설계 규칙 1 : 모든 테스트를 실행하라
- 테스트가 가능한 시스템을 만들려고 애쓰면 설계 품질이 더불어 높아짐
- 크기가 작고 목적 하나만 수행하는 클래스가 나옴
- 테스트 케이스가 많을수록 테스트가 쉽게 코드를 작성한다.
- 따라서 철저한 테스트가 가능한 시스템을 만들면 더 나은 설계가 얻어짐
- 결합도가 높으면 테스트 케이스를 작성하기 어렵다.
- 결합도를 낮추기 위해 노력하면 설계 품질은 더욱 높아짐.
- 테스트가 가능한 시스템을 만들려고 애쓰면 설계 품질이 더불어 높아짐
- 단순한 설계 규칙 2 : 중복을 없애라
- 중복은 추가 작업, 추가 위험, 불필요한 복잡도를 뜻함
- 비슷한 코드는 더 비슷하게 고쳐주고 재사용
- 단순한 설계 규칙 3 : 의도를 표현해라
- 유지보수할 사람이 코드를 짜는 사람만큼이나 문제를 깊이 이해할 가능성은 희박
- 코드를 변경하면서 버그의 싹을 심지 않으려면 유지보수 개발자가 시스템을 제대로 이해해야 함
- 그러므로 코드는 개발자의 의도를 분명히 표현해야 함
- 그러면 결함이 줄어들고 유지보수 비용이 적게 듦
- 방법
- 좋은 이름 선택
- 함수와 클래스 크기를 가능한 줄임
- 표준 명칭 사용
- 단위 테스트 케이스를 꼼꼼히 작성
- 표현력을 가장 높이는 방법은 노력이다.
- 나중에 코드를 읽을 사람은 바로 자신일 가능성이 높다.
- 단순한 설계 규칙 4 : 클래스와 메서드 수를 최소로 줄인다
- 목표는 함수와 클래스 크기를 작게 유지하면서 동시에 시스템 크기도 작게 유지하는 데 있음
- 간단한 설계 규칙 네 개 중 우선순위가 가장 낮다.
- 목표는 함수와 클래스 크기를 작게 유지하면서 동시에 시스템 크기도 작게 유지하는 데 있음