Clean Code 읽기(8)

17장 냄새와 휴리스틱

  • “Refactoring”에서 마틴 파울러는 다양한 ‘코드 냄새’를 한다. 거기에 추가한 ‘냄새’들과 코드를 짜면서 사용하는 기교와 휴리스틱을 소개한다.
  • 🙋‍♂️ 리팩토링 책은 클린코드를 다 읽은 후 다음에 읽을 책이다.

환경

  1. 여러 단계로 빌드해야 한다.
    • 빌드는 간다히 한 단계로 끝나야 한다. 온갖 jar파일, xml파일 등을 찾아다닐 필요가 없이 한 명령으로 빌드 할 수 있어야한다.
  2. 여러 단계로 테스트해야 한다.
    • 모든 단위 테스트는 한 명령으로 돌려야한다. 모든 테스트를 한번에 실행하는 능력은 아주 근본적이고 아주 중요하다.

🙋‍♂️ 빌드 얘기는 무슨말인지 잘 모르겠다. 빌드 자체가 그냥 한번에 되지않나 여러 단계를 거쳐야하나?? AWS에 배포할때도 단순히 mvn clean package로 빌드를 끝냈었는데..

함수

  1. 너무 많은 인수

    • 함수에서 인수 개수는 작을수록 좋다. 아예 없으면 가장 좋다.
    • 네개 이상의 인수를 쓰는 함수는 의심스러우므로 최대한 피한다.

    • 🙋‍♂️ 이전에 함수 파트에서도 본 내용인데, 뭔가 책을 읽은 후 부터 4개이상의 인수를 쓰는 메서드를 보면 인수들을 하나의 객체로 묶을 수는 없을까? 부터 생각하게 된다. 물론 그 외에 더 좋은 방법들이 있겠지만 의심하는거 자체는 좋은 습관이라고 생각한다.
  2. 출력 인수

    • 출력 인수는 직관성을 위배한다. 일반적으로 코드를 읽을 때 인수를 출력이 아닌 입력으로 간주한다.
    • 함수에서 무언가의 상태를 변경할 때, 인수를 사용하는것보다 함수가 속한 객체의 상태를 변경한다.
    • 🙋‍♂️ 이것도 “너무 많은 인수”처럼 함수 파트에서 본 내용인데, 확실히 메서드의 인수의 상태가 갑자기 변하면 코드를 읽기 힘들다.
  3. 플래그 인수

    • boolean 인수는 함수가 여러 기능을 수행한다는 명백한 증거이다. 피해야한다.
  4. 죽은 함수

    • 아무도 호출하지 않는 함수는 과감히 삭제해야 한다.

🙋‍♂️ 아무래도 함수, 클래스, 이름에 관한 내용은 직관적으로 이해가 가능하다. 바로 고쳐야할점을 느끼기 때문이다.

댓글남기기