스터디/클린코드(Clean Code)

[스터디] 클린코드 12장 (2022년 8월 17일)

눙엉 2022. 8. 23. 23:44

17일 스터디를 진행하고 벌써 일주일째 다되어가서 늦은 업로드

 

휴가를 쓰면 공부도 하기 싫고 일상으로 돌아오기가 더 힘든 것 같다

 


 

창발적 설계로 깔끔한 코드를 구현하자

여기서 창발적이란 집단 지성? 같은 의미인 것 같다.

개별적으로 보면 크지 않지만 모이면 시너지가 생기는 그런 느낌

 

켄트 벡이 제시한 단순한 설계 규칙 네 가지

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

단순한 설계 규칙 1: 모든 테스트를 실행하라

의도한 대로 돌아가는 시스템을 내놓아야 한다.

테스트 케이스를 많이 작성할수록 결합도를 낮춰야 한다.

테스트 케이스를 작성하면 설계 품질이 높아진다.

단순한 설계 규칙 2~4: 리팩터링

테스트 케이스를 모두 작성했다면 점진적으로 리팩터링 한다.

테스트 케이스가 있어서 시스템이 깨질까 걱정하지 않아도 된다.

중복을 없애라

똑같은 코드는 당연히 중복이고, 비슷한 코드는 더 비슷하게 고쳐주면 리팩터링이 쉬워진다.

표현하라

  1. 좋은 이름을 선택한다.
  2. 함수와 클래스 크기를 최대한 줄인다.
  3. 표준 명칭을 사용한다.
  4. 단위 테스트 케이스를 꼼꼼히 작성한다.

그냥 노력을 해라

나중에 읽을 사람을 위해 노력해라.

나중에 코드를 읽을 사람의 가능성이 가장 높은 사람은 바로 자신이다.

클래스와 메서드 수를 최소로 줄여라

클래스와 함수 수를 줄이는 작업도 중요하지만, 테스트 케이스를 만들고 중복을 제거하고 의도를 표현하는 작업이 더 중요하다.

결론

클래스든 함수든 뭐든 알아보기 쉽게 중복을 제거하고 이쁘게 만들자