DEV ℧ Developer Diary

[Refactoring] 냄새 15. 추측성 일반화

해당 포스트는 inflearn의 백기선님의 강의인 리팩토링 을 듣고 정리한 글입니다.

냄새 15. 추측성 일반화

  • 나중에 이러 저러한 기능이 생길 것으로 예상하여, 여러 경우에 필요로 할만한 기능을 만들어 놨지만 “그런 일은 없었고..” 결국에 쓰이지 않는 코드가 발생한 경우
  • XP의 YAGNI(You aren’t gonna need it)원칙을 따르자. 해석하자면 지금 필요없는 기능을 만들지 말라!
  • 관련 리팩토링
    • 추상 클래스를 만들었지만 크게 유효하지 않다면 “계층 합치기 (Collapse Hierarchy)”
    • 불필요한 위임은 “함수 인라인 (Inline Function)” 또는 “클래스 인라인 (Inline Class)”
    • 사용하지 않는 매개변수를 가진 함수는 “함수 선언 변경하기 (Change Function Declaration)”
    • 오로지 테스트 코드에서만 사용하고 있는 코드는 “죽은 코드 제거하기 (Remove DeadCode)”

리팩토링 35. 죽은 코드 제거하기

  • 사용하지 않는 코드가 애플리케이션 성능이나 기능에 영향을 끼치지는 않는다.
  • 하지만, 해당 소프트웨어가 어떻게 동작하는지 이해하려는 사람들에게는 꽤 고통을 줄 수 있다.
  • 실제로 나중에 필요해질 코드라 하더라도 지금 쓰이지 않는 코드라면 (주석으로 감싸는게 아니라) 삭제해야 한다.
    • 나중에 정말로 다시 필요해진다면 git과 같은 버전 관리 시스템을 사용해 복원할 수 있다.

해당 리팩토링도 따로 설명할 것은 없다. 사용하지 않는 코드는 지워주는게 가독성에서 도움이 된다.