리팩토링은 소프트웨어를 개선하는 검증된 방법이다. 리팩토링은 외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법으로, 소프트웨어 시스템을 변경하는 프로세스이다. 이것은 버그가 끼어들 가능성을 최소화하면서 코드를 정리하는 정형화된 방법이다. 이 책은 리팩토링에 대한 가이드이고 전문 프로그래머를 위해 쓰여졌다. 이 책에서는 자바로 된 예제를 사용하고 있다.
수년간 전문가 수준의 객체 프로그래머들은 기존 소프트웨어 프로그램의 구조적 무결성과 성능을 개선하기 위해 리팩토링이라는 기술을 사용해왔다. 문서로 정리되지 않고 일부 전문가들 사이에서만 알려져 있던 이 기술이 객체 기술의 선도자로 유명한 Martin Fowler에 의해 모든 개발자가 공유할 수 있는 형태의 문서로 정리하는 일이 시도되었다. 이 책에서 저자는 리팩토링의 주요 기술을 이해하기 쉽게 설명하고, 소프트웨어 개발자가 새로운 프로세스를 통해 이익을 실현하는 방법을 제시하고 있다.
이 책에서는 일반적으로 리팩토링을 적용할 수 있는 경우를 보이고, 나쁜 디자인의 코드를 좋은 디자인으로 바꾸는 방법을 설명한다. 리팩토링의 각 단계는 단순하다. 너무 단순해서 아무런 가치가 없어 보일 정도이다. 리팩토링에서는 필드를 한 클래스에서 다른 클래스로 옮기거나, 메소드의 특정 부분을 취해 별도의 메소드로 만들기도 하고, 어떤 메소드를 상속 구조의 위쪽 또는 아래쪽으로 옮기기도 한다. 각각의 단계는 간단하게 보이지만, 이런 작은 변화의 누적된 효과가 근본적으로 디자인을 개선할 수 있다. 보통의 소프트웨어 쇠퇴 개념과는 정확하게 반대이다.