17장 - 냄새와 휴리스틱 리팩터링이 필요한 코드에서 나쁜 냄새가 난다고한다. 코드를 작성하고 해당되는지 확인해야할 것을 정리해놓았다. 주석 - 부적절한 정보, 쓸모 없는 주석, 중복된 주석, 성의 없는 주석, 주석 처리된 코드 환경 - 여러 단계로 빌드 및 테스트 함수 - 너무 많은 인수, 출력 인수, 플래그 인수, 죽은 함수 일반 - 한 소스 파일에 여러 언어를 사용한다, 당연한 동작을 구현하지 않는다, 경계를 올바로 처리하지 않는다, 안전 절차 무시, 중복, 추상화 수준이 올바르지 못하다, 기초 클래스가 파생 클래스에 의존한다, 과도한 정보, 죽은 코드, 수직 분리, 일관성 부족, 잡동사니, 인위적 결합, 기능 욕심, 선택자 인수, 모호한 의도, 잘못 지운 책임, 부적절한 static 함수, 서술적..