간단한 수정 -> 테스트를 리듬처럼 반복하자
프로그램에 기능을 추가해야 하는데 코드 구조가 조잡해서 그 기능을 추가하기 힘들다면, 우선 리펙토링을 실시해서 기능을 추가하기 쉽게 만든 후 그 기능을 추가하자.
적절한 테스트 코드를 작성하는 것은 리펙토링의 기본이다
명확성을 높이기 위한 이름 수정에 인색하게 굴지 말자. 용도가 확실히 드러나게 코드를 작서하는 것은 아주 중요하다
좋은 코드는 그것이 무슨 기능을 하는지 분명히 드러나야 하는데, 코드의 기능을 분명히 드러내는 열쇠가 바로 직관적인 변수명이다.
임시 변수를 메서드 호출로 전환(Replace Temp with Query)
임시 변수가 많으면 불필요하게 많은 매개변수를 전달하게 도는 문제가 흔히 생긴다
임시변수는 특히 긴 메서드 안에서 알게 모르게 늘어난다.
루프 및 코드가 길어진다고해서 지레 겁먹을 필요는 없다
최적화 단계가 성능 해결의 적기이며 효과적인 최적화를 위한 더 많은 선택의 여지가 있다
타 객체의 속성을 비교 인자로 사용하는 것은 나쁜 방법이다. 자신의 데이터로 바꾸자
객체의 비교값을 변경해도 그로인해 미치는 영향을 최소화 하고자 자신의 클래스 안으로 옮겨진 것