СПб.: Символ-Плюс, 2003. — 432 с. — ISBN: 5932860456.
Эта книга представляет собой руководство по рефакторингу и предназначена для профессиональных программистов. Автор ставил себе целью показать, как осуществлять рефакторинг управляемым и эффективным образом. Вы научитесь делать это, не внося в код ошибки и методично улучшая его структуру.
Принято помещать в начале книги введение. Я согласен с этим принципом, но было бы затруднительно начать знакомство с рефакторингом с общего изложения или определений. Поэтому я начну с примера. В главе 1 рассматривается небольшая программа, в дизайне которой есть распространенные недостатки, и с помощью рефакторинга она превращается в объектно-ориентированную программу более приемлемого вида. Попутно мы познакомимся как с процессом рефакторинга, так и несколькими полезными приемами в этом процессе. Эту главу важно прочесть, если вы хотите понять, чем действительно занимается рефакторинг.
В главе 2 более подробно рассказывается об общих принципах рефакторинга, приводятся некоторые определения и основания для осуществления рефакторинга. Обозначаются некоторые проблемы, связанные с рефакторингом. В главе 3 Кент Бек поможет мне описать, как находить «душок» в коде и как от него избавляться посредством рефакторинга. Тестирование играет важную роль в рефакторинге, поэтому в главе 4 описывается, как создавать тесты для кода с помощью простой среды тестирования Java с открытым исходным кодом.
Сердцевина книги - перечень методов рефакторинга - простирается с главы 5 по главу 12. Этот перечень ни в коей мере не является исчерпывающим, а представляет собой лишь начало полного каталога. В него входят те методы рефакторинга, которые я, работая в этой области, зарегистрировал на сегодняшний день. Когда я хочу сделать что-либо, например «Замену условного оператора полиморфизмом» (Replace Conditional with Polymorphism, 258), перечень напоминает мне, как сделать это безопасным пошаговым способом. Надеюсь, к этому разделу книги вы станете часто обращаться.
В данной книге описываются результаты, полученные многими другими исследователями. Некоторыми из них написаны последние главы. Так, в главе 13 Билл Апдайк (Bill Opdyke) рассказывает о трудностях, с которыми он столкнулся, занимаясь рефакторингом в коммерческих разработках. Глава 14 написана Доном Робертсом (Don Roberts) и Джоном Брантом (John Brant) и посвящена будущему автоматизированных средств рефакторинга. Для завершающего слова я предоставил главу 15 мастеру рефакторинга Кенту Беку.