[Clean Code] 12장 창발성 본문
창발성 (창발성이란 창발된 성질이나 실체와 같은 대상들이 더 근본적인 대상들로부터 발생하지만, 근본적인 대상으로 환원되지 않으며 그 자체로 특수한 지위를 차지하는 것을 의미한다.)
- 모든 테스트를 실행한다.
: 결합도가 높으면 테스트 케이스를 작성하기 어렵다. (즉, 테스트 케이스를 많이 작성할수록 결합도를 낮출 수 있다.)
: 테스트 케이스를 많이 만들수록 낮은 결합도와 늪은 응집력을 달성할 수 있다.
: 테스트 케이스 작성 -> 코드와 클래스 정리(리팩토링) -> 응집도 높이고 결합도 낮추고 책임 분리, 함수와 클래스 크기 줄이고 더 나은 이름 선택 등
- 중복을 없앤다.
: 중복은 추가 작업, 추가 위험, 불필요한 복잡도를 뜻한다.
- 프로그래머 의도를 표현한다.
: 좋은 이름
: 함수와 클래스 크기를 최대한 줄인다.
: 표준 명칭을 사용한다.
: 유닛 테스트 케이스를 꼼꼼히 작성한다.
- 클래스와 메서드 수를 최소로 줄인다.
: 클래스와 메서드 크기를 줄이려고 작은 클래스와 메서드를 수 없이 만들어 내는 경우도 있다.
: 목표는 메서드와 클래스의 크리를 작게 유지하면서 시스템 크기도 작게 유지하는 것이다.
'프로그래밍 > 클린코드' 카테고리의 다른 글
[Clean Code] 13장 동시성(Concurrency) (0) | 2020.06.08 |
---|---|
[Clean Code] 11장 시스템 (0) | 2020.06.08 |
[Clean Code] 10장 클래스 (0) | 2020.06.05 |
[Clean Code] 9장 유닛 테스트 (0) | 2020.06.05 |
[Clean Code] 8장 경계 (0) | 2020.06.04 |
Comments
Copyright ⓒ dub All Rights Reserved.