프로그램이 새로운 기능을 추가하기에 편한 구조가 아니라면,
먼저 기능을 추가하기 쉬운 형태로 리팩터링하고 나서 원하는 기능을 추가한다.
리팩터링하기 전에 제대로 된 테스트부터 마련한다.
테스트는 반드시 자가진단하도록 만든다.
리팩터링은 프로그램 수정을 작은 단계로 나눠 진행한다.
그래서 중간에 실수하더라도 버그를 쉽게 찾을 수 있다.
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다.
사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다.
항시 코드베이스를 작업 시작 전보다 건강하게 만들어놓고 떠나야 한다.
좋은 코드를 가늠하는 확실한 방법은 얼마나 수정하기 쉬운가 이다.
- 함수 추출하기
- 임시 변수를 질의 함수로 바꾸기
- 변수 인라인하기
- 함수 선언 바꾸기
- 반복문 쪼개기
- 문장 슬라이드하기
- 함수 추출하기
- 변수 인라인 하기
- 조건부 로직을 다형성으로 바꾸기