[Clean Code] 12장 창발성 본문

프로그래밍/클린코드

[Clean Code] 12장 창발성

디유비 2020. 6. 8. 10:29

창발성 (창발성이란 창발된 성질이나 실체와 같은 대상들이 더 근본적인 대상들로부터 발생하지만, 근본적인 대상으로 환원되지 않으며 그 자체로 특수한 지위를 차지하는 것을 의미한다.)

 

- 모든 테스트를 실행한다.

  : 결합도가 높으면 테스트 케이스를 작성하기 어렵다. (즉, 테스트 케이스를 많이 작성할수록 결합도를 낮출 수 있다.)

  : 테스트 케이스를 많이 만들수록 낮은 결합도와 늪은 응집력을 달성할 수 있다.

  : 테스트 케이스 작성 -> 코드와 클래스 정리(리팩토링) -> 응집도 높이고 결합도 낮추고 책임 분리, 함수와 클래스 크기 줄이고 더 나은 이름 선택 등

 

- 중복을 없앤다.

  : 중복은 추가 작업, 추가 위험, 불필요한 복잡도를 뜻한다.

 

- 프로그래머 의도를 표현한다.

  : 좋은 이름

  : 함수와 클래스 크기를 최대한 줄인다.

  : 표준 명칭을 사용한다.

  : 유닛 테스트 케이스를 꼼꼼히 작성한다.

 

- 클래스와 메서드 수를 최소로 줄인다.

  : 클래스와 메서드 크기를 줄이려고 작은 클래스와 메서드를 수 없이 만들어 내는 경우도 있다.

  : 목표는 메서드와 클래스의 크리를 작게 유지하면서 시스템 크기도 작게 유지하는 것이다.

 

'프로그래밍 > 클린코드' 카테고리의 다른 글

[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