01. 리팩터링: 첫 번째 예시

좋은 코드를 가늠하는 확실한 방법은 '얼마나 수정하기 쉬운가'다.

느낌#

  • 엣지 케이스에 대해 항상 테스트 케이스를 구비하는 습관화가 필요하겠단 생각
  • intelliJ 리팩터링 기능 조금씩 사용해봐야지
  • 조금의 수정도 바로바로 테스트하는 습관이 필요
  • 중간중간 코드가 많아 오히려 맥이 끊기는 분위기
  • 임시변수를 질의 함수로 바꾸는건 극강의 리팩토링이 아닌가 생각

가이드#

  • 프로그램이 새로운 기능을 추가하기 편한구조가 아니라면, 먼저 기능을 추가하기 쉬운 형태로 리팩터링하고 나서 원하는 기능 추가
  • 리팩터링 전 제대로 된 테스트부터 만들기. 테스트는 반드시 자가진단하도록 만든다.
  • 코드를 해석해서 얻을 수 있는 정보는 함수로 추출
  • 조금씩 변경하고 바로 테스트 (수정을 작은 단계로 나누어 진행)
  • 사람이 이해할 수 있는 코드
  • 반복문 중 별도로 로직을 추출할 수 있다면 쪼개기 (반복문 쪼개기)
  • 도착했을 때 보다 깔끔하게 정리하고 체크아웃하기 (보이스카웃 규칙)
  • 조건부 로직(e.g.switch) 을 다형성으로 바꾸기
    • 타입코드를 서브클래스로 바꾸기
    • 생성자를 팩터리함수로 바꾸기
  • 변수 인라인하기, 함수 선언 바꾸기, 문장 슬라이드, 함수 옮기기, 반복문 파이프라인으로 바꾸기 등의 기법 소개

레퍼런스#

Last updated on