본문 바로가기
Study/클린코드

[클린코드] 12장. 창발성

by Nahwasa 2023. 1. 21.

스터디 메인 페이지

- ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에서 말하고자 하는 바와 다를 수 있습니다.

- 모든 이미지의 출처는 클린 코드(로버트 C. 마틴 저) 책 입니다.

 


 

12장. 창발성

☆ 창발성 : 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체구조)에서 자발적으로 돌연히 출현하는 현상

 

착실하게 따르기만 하면 우수한 설계가 나오는 간단한 규칙 네 가지! (중요도 순)

  • 모든 테스트를 실행한다.
  • 중복을 없앤다.
  • 프로그래머 의도를 표현한다.
  • 클래스와 메서드 수를 최소로 줄인다.

 

모든 테스트를 실행하라

  • 테스트를 철저히 거쳐 모든 테스트 케이스를 항상 통과하는 시스템은 '테스트가 가능한 시스템'이다.
  • 테스트가 불가능한 시스템은 검증도 불가능하다. 검증이 불가능한 시스템은 절대 출시하면 안 된다.

 

 리팩토링

  • 테스트 케이스를 모두 작성했다면 이제 코드와 클래스를 정리해도 괜찮다.
  • 구체적으로는 코드를 점진적으로 리팩터링 해나간다.
  • 코드를 정리하면서 시스템이 깨질까 걱정할 필요가 없다. 테스트 케이스가 있으니까!

 

중복을 없애라

 

자신이 이해하는 코드를 짜기는 쉽다. 하지만 나중에 코드를 유지보수할 사람이 코드를 짜는 사람만큼이나 문제를 깊이 이해할 가능성은 희박하다.

  • 좋은 이름을 선택하자.
  • 함수와 클래스 크기를 가능한 줄이자.
  • 표준 명칭을 사용하자. 표준 패턴을 사용해 구현된다면 클래스 이름에 패턴 이름을 넣어준다.
  • 단위 테스트 케이스를 꼼꼼히 작성하자.

댓글