01. 리팩터링: 첫 번째 예시
좋은 코드를 가늠하는 확실한 방법은 '얼마나 수정하기 쉬운가'다.
#
느낌- 엣지 케이스에 대해 항상 테스트 케이스를 구비하는 습관화가 필요하겠단 생각
- intelliJ 리팩터링 기능 조금씩 사용해봐야지
- 조금의 수정도 바로바로 테스트하는 습관이 필요
- 중간중간 코드가 많아 오히려 맥이 끊기는 분위기
- 임시변수를 질의 함수로 바꾸는건 극강의 리팩토링이 아닌가 생각
#
가이드- 프로그램이 새로운 기능을 추가하기 편한구조가 아니라면, 먼저 기능을 추가하기 쉬운 형태로 리팩터링하고 나서 원하는 기능 추가
- 리팩터링 전 제대로 된 테스트부터 만들기. 테스트는 반드시 자가진단하도록 만든다.
- 코드를 해석해서 얻을 수 있는 정보는 함수로 추출
- 조금씩 변경하고 바로 테스트 (수정을 작은 단계로 나누어 진행)
- 사람이 이해할 수 있는 코드
- 반복문 중 별도로 로직을 추출할 수 있다면 쪼개기 (반복문 쪼개기)
- 도착했을 때 보다 깔끔하게 정리하고 체크아웃하기 (보이스카웃 규칙)
- 조건부 로직(e.g.switch) 을 다형성으로 바꾸기
- 타입코드를 서브클래스로 바꾸기
- 생성자를 팩터리함수로 바꾸기
- 변수 인라인하기, 함수 선언 바꾸기, 문장 슬라이드, 함수 옮기기, 반복문 파이프라인으로 바꾸기 등의 기법 소개
#
레퍼런스- 권희정님의 intellij 숏컷 모음
- 함수 추출 등 리팩터링 숏컷도 모아놓으셨음