При надлежащей подготовке квалифицированный проектировщик систем может взять плохо спроектированную программу и превратить ее в хорошо продуманный, надежный код. В книге Мартин Фаулер показывает читателям, где обычно можно найти возможности для оптимизации и как превратить плохой проект в хороший. Каждый шаг рефакторинга прост - даже, казалось бы, слишком прост, чтобы его стоило выполнять. Оптимизация может включать перемещение поля из одного класса в другой или извлечение некоторого кода из метода с тем, чтобы превратить его в отдельный метод, или даже перенос некоторого кода вверх или вниз по иерархии классов. Хотя эти отдельные шаги могут показаться элементарными, кумулятивный эффект таких небольших изменений может радикально улучшить проект программы. Рефакторинг кода — проверенный способ предотвращения распада программного обеспечения. Помимо описания различных методов рефакторинга, автор приводит подробный каталог более чем с семьюдесятью рефакторингами и полезными указаниями, которые научат вас, когда их следует применять. Книга содержит подробное описание свыше 70 методов рефакторинга, причем не только теоретическое их описание, но и практические примеры на языке программирования Java. Следует учесть, что изложенные в книге идеи применимы к любому объектно-ориентированному языку программирования.