Martin Fowler, mago da tecnolgia de objetos, demonstra neste livro que, com treinamento apropriado, um desenhista de sistemas experiente pode pegar um projeto ruim e retrabalhá-lo num código robusto e bem projetado. Além de discutir as várias técnicas da refatoração, Fowler fornece um catálogo detalhado de mais de 70 refatorações verificadas, com indicadores úteis que ensinam quando aplicá-las; instruções passo a passo para aplicar cada refatoração e um exemplo que mostra como a refatoração funciona. Os exemplos ilustrativos estão escritos em Java, mas as idéias são aplicáveis a qualquer linguagem orientada a objetos. Primeiro livro a registrar um conjunto crescente de técnicas usadas por programadores experientes para melhorar a integridade estrutural e o desempenho de programas de software já existentes.