리팩토링을 언제 시작하고 언제 그만할지를 판단하는 일은 리팩터링 작동 원리를 아는 것 못지않게 중요하다.
→ 숙련된 사람의 직관 만큼 정확한 기준은 없지만, 특정 징후는 존재한다.
'이름' 은 코드를 명료하게 표현하는 가장 중요한 요소 중 하나이다.
이름 리팩토링 방법
- 함수 선언바꾸기 - 6.5장
- 변수 이름 바꾸기 - 6.7장
- 필드 이름 바꾸기 - 9.2장
— 만약 마땅한 이름이 떠오르지 않는다면 설계에 근본적이 문제가 있을 가능성이 높다.
→혼란스러운 이름을 정리하면 코드가 훨씬 간결해진다.
코드가 중복되면 각각을 볼 때마다 서로 차이점은 없는지 주의 깊게 살펴봐야 하는 부담이 생긴다.
→ 하나로 통합하여 더 나은 프로그램을 만들 수 있다.
중복 코드 리팩토링
함수 추출하기
— 한 클래스에 딸린 두 메서드가 똑같은 표현식을 사용하는 경우
문장 슬라이드하기
— 코드가 비슷하지만, 똑같지 않은 경우
메서드 올리기
— 같은 부모로부터 파생된 서브 클래스들에 코드가 중복되어있는 경우