리팩터링은 겉으로 드러나는 코드의 기능 (겉보기 동작)은 바꾸지 않으면서 내부 구조를 개선하는 방식으로 소트프웨어 시스템을 수정하는 과정이다.
1장에서는 간단한 예시 코드를 가지고 리팩터링의 전반적인 과정을 보여주고 있다.
그 다음 챕터들에서 배울 내용들을 미리 맛보는 식이었다.
이해되는 부분도 있었고 그렇지 않은 부분도 있었다.
래팩터링하기 전에 제대로 된 테스트부터 마련한다. 테스트는 반드시 자가진단하도록 만든다.
내가 저지름 실수로부터 보호해주는 버그 검출기 역할을 해주기 때문인다.
아무리 간단한 수정이라도 리팩터링 후에는 항상 테스트하는 습관을 들이는 것이 바람직한다.
조금씩 변경하고 매번 테스트하는 것은 리팩터링 절차의 핵심이다.
필겸님이 컴파일-테스트-커밋을 컴테커라고 했는데, 책에서는 컴테커를 굉장히 자주 했다. 이 점은 본 받아서 나도 습관으로 만들어야겠다고 생각했다.
책에서 함수 추출하기, 변수 인라인하기, 반복문 쪼개기 등을 사용해서 리팩터링 하는 과정을 보여줬다. 아직까지는 어느 단계에서 이것들을 수행해야 옳은지 판단하는 게 어렵다.
좋은 코드를 가늠하는 확실한 방법은 '얼마나 수정하기 쉬운가'다.