728x90
반응형
11장 시스템 건너뛰기!!! 제목부터 뭔 말이지 싶은 12장 '창발성' 입니다
창발성 - 창발(創發)또는 떠오름 현상은 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상 이라고 하네요 (출처 위키백과)
12장 창발성
창발적 설계로 깔끔한 코드를 구현하자
착실하게 따르기만 하면 우수한 설계가 나오는 간단한 규칙 네 가지가 있다
- 모든 테스트를 실행한다
- 중복을 없앤다
- 프로그래머 의도를 표현한다
- 클래스와 메서드 수를 최소로 줄인다
단순한 설계 규칙 1: 모든 테스트를 실행하라
테스트를 철저히 거쳐 모든 테스트 케이스를 항상 통과하는 시스템은 '테스트가 가능한 시스템'이다.
검증이 불가능한 시스템은 절대 출시하면 안 된다
"테스트 케이스를 만들고 계속 돌려라" 라는 규칙을 따르면 시스템은 낮은 결합도와 높은 응집력이라는 목표를 달성한다
단순한 설계 규칙 2~4: 리팩토링
점진적으로 리팩토링 한다
중복을 없애라
비슷한 코드는 더 비슷하게 고쳐주면 리팩토링이 쉬워진다. 구현 중복도 중복의 한 형태다.
표현하라
시스템을 작성할 때 지키면 결함이 줄어들고 유지보수 비용이 적게든다
- 좋은 이름을 선택한다
- 이름과 기능을 맞춰 만든다
- 함수와 클래스 크기를 가능한 줄인다
- 표준 명칭을 사용한다
- 디자인 패턴은 의사소통과 표현력 강화가 주요 목적이다
- 표준 패턴을 사용해 구현된다면 클래스 이름에 패턴 이름을 넣어준다
- 단위 테스트 케이스를 꼼꼼히 작성한다
하지만 표현력을 높이는 가장 중요한 방법은 노력이다. 흔히 코드만 돌린 후 다음 문제로 직행하는 사례가 너무도 흔하다.
나중에 코드를 읽을 사람은 바로 자신일 가능성이 높다는 사실을 명심하자
클래스와 메서드 수를 최소로 줄여라
우선순위가 가장 낮다. 이 작업도 중요하지만 위의 3개 작업을 하는 작업이 더 중요하다.
결론
경험을 대신할 단순한 개발 기법이 있을까? 당연히 없다.
오랜 경험 후 우수한 기법과 원칙을 단번에 활용할 수 있다.
반응형
'책' 카테고리의 다른 글
한빛미디어 <나는 리뷰어다> 3월 - 개발 7년차, 매니저 1일차 (0) | 2020.03.24 |
---|---|
[객체지향의 사실과 오해] 1) 협력하는 객체들의 공동체 (0) | 2019.11.08 |
[클린 코드: Clean Code] 10장 클래스 (0) | 2019.09.05 |
[클린 코드: Clean Code] 9장 단위 테스트 (0) | 2019.08.28 |
[클린 코드: Clean Code] 8장 경계 (0) | 2019.08.16 |