- ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에서 말하고자 하는 바와 다를 수 있습니다.
- 모든 이미지의 출처는 클린 코드(로버트 C. 마틴 저) 책 입니다.
12장. 창발성
⚈ ☆ 창발성 : 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체구조)에서 자발적으로 돌연히 출현하는 현상
⚈ 착실하게 따르기만 하면 우수한 설계가 나오는 간단한 규칙 네 가지! (중요도 순)
- 모든 테스트를 실행한다.
- 중복을 없앤다.
- 프로그래머 의도를 표현한다.
- 클래스와 메서드 수를 최소로 줄인다.
⚈ 모든 테스트를 실행하라
- 테스트를 철저히 거쳐 모든 테스트 케이스를 항상 통과하는 시스템은 '테스트가 가능한 시스템'이다.
- 테스트가 불가능한 시스템은 검증도 불가능하다. 검증이 불가능한 시스템은 절대 출시하면 안 된다.
⚈ 리팩토링
- 테스트 케이스를 모두 작성했다면 이제 코드와 클래스를 정리해도 괜찮다.
- 구체적으로는 코드를 점진적으로 리팩터링 해나간다.
- 코드를 정리하면서 시스템이 깨질까 걱정할 필요가 없다. 테스트 케이스가 있으니까!
⚈ 중복을 없애라
⚈ 자신이 이해하는 코드를 짜기는 쉽다. 하지만 나중에 코드를 유지보수할 사람이 코드를 짜는 사람만큼이나 문제를 깊이 이해할 가능성은 희박하다.
- 좋은 이름을 선택하자.
- 함수와 클래스 크기를 가능한 줄이자.
- 표준 명칭을 사용하자. 표준 패턴을 사용해 구현된다면 클래스 이름에 패턴 이름을 넣어준다.
- 단위 테스트 케이스를 꼼꼼히 작성하자.
'Study > 클린코드' 카테고리의 다른 글
[클린코드] 14~17장 (0) | 2023.02.11 |
---|---|
[클린코드] 13장. 동시성 (0) | 2023.01.21 |
[클린코드] 11장. 시스템 (0) | 2023.01.21 |
TDD와 함께 SRP, OCP, DIP를 만족하도록 코드 개선해보기 (0) | 2023.01.11 |
[클린코드] 10장. 클래스 (0) | 2023.01.11 |
댓글