Рефакторинг: улучшение проекта существующего кода

Мартин Фаулер, Кент Бек, Джон Брант, Уильям Опдайк, Дон Робертс

Refactoring: Improving the Design of Existing Code
Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts
книга Рефакторинг: улучшение проекта существующего кода
(увеличить обложку)

Где купить книгу

Оглавление
Пролистать книгу

Переиздание классического труда по информатике, новый современный перевод!

Рефакторинг уже давно и прочно занимает свое достойное место среди технологий программирования, и не в последнюю очередь благодаря книге Мартина Фаулера — одной из тех книг, которые написаны "на все времена" и которые, как хорошее вино, со временем становятся только ценнее.

Сам принцип рефакторинга прост: это последовательность небольших шагов, таких как перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и его превращение в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый такой шаг выглядит настолько просто и естественно, что кажется удивительным — о чем здесь можно писать? Однако кумулятивный эффект от таких малых изменений состоит в существенном улучшении проекта существующего кода.

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

Данная классическая книга достойна того, чтобы занять свое место на книжной полке каждого серьезного программиста — вне зависимости от используемого языка программирования.

По мере распространения объектных технологий — в особенности с использованием языка программирования Java — для сообщества разработчиков программного обеспечения становилась все более и более актуальной новая проблема.

Недостаточно опытные разработчики создали множество плохо спроектированных программ, оказавшихся в результате малопроизводительными приложениями, которые трудно поддерживать и расширять. Все чаще разработчики программного обеспечения сталкиваются с тем, насколько сложно работать с такими доставшимися им в наследство приложениями. В течение нескольких лет объектные программисты-эксперты использовали постоянно растущую коллекцию методов повышения структурной целостности и эффективности таких существующих программ. Известные как "рефакторинг", эти практики так и оставались достоянием экспертов, потому что не предпринималось никаких попыток донести эти знания до широких масс разработчиков в доступной форме.

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

Помимо описания различных методов рефакторинга, автор приводит подробный каталог более чем с семьюдесятью рефакторингами и полезными указаниями, которые научат вас, когда их следует применять. Книга содержит подробное описание свыше 70 методов рефакторинга, причем не только теоретическое их описание, но и практические примеры на языке программирования Java. Следует учесть, что изложенные в книге идеи применимы к любому объектно-ориентированному языку программирования.

Об авторах

Мартин Фаулер — независимый консультант, который применяет объектные технологии для решения насущных проблем бизнеса около сорока лет. Он давал консультации по программным системам в таких областях, как здравоохранение, торговля и финансы. Среди его клиентов были Chrysler, Citibank, Министерство здравоохранения Великобритании, Andersen Consulting и Netscape Communications. Кроме того, Фаулер часто делает доклады по объектным технологиям, унифицированному языку моделирования UML и проектным шаблонам.

Кент Бек — известный программист, тестировщик ПО, специалист по рефакторингу, автор книг и игрок на банджо.

Джон Брант и Дон Робертс — авторы инструментария для автоматизированного выполнения рефакторингов Refactoring Browser for Smalltalk. Они также являются консультантами, около тридцати лет изучавшие практические и теоретические аспекты рефакторинга.

Диссертационная работа Уильяма Опдайка "Исследования по оптимизации объектно-ориентированных структур", выполненная в Университете Иллинойса, привела к первой важной публикации по этой теме. В настоящее время он работает в Lucent Technologies/Bell Laboratories.

Книга обсуждается в отдельном сообщении в блоге Виктора Штонда.


448, c ил стр., с ил.; ISBN 978-5-9909445-1-0, 978-0-201-48567-7; формат 70x100/16; твердый переплет; тип бумаги: офсетная; серия Объектные технологии; 31.07.2017; Вильямс.



Понравилась книга? Порекомендуйте её друзьям и коллегам:









Оглавление книги "Рефакторинг: улучшение проекта существующего кода"


Предисловие     21
Введение     23
Глава 1. Первый пример рефакторинга     31
Глава 2. Принципы рефакторинга     69
Глава 3. Запах в коде     93
Глава 4. Создание тестов     109
Глава 5. На пути к каталогу рефакторингов     125
Глава 6. Составление методов     131
Глава 7. Перенос функциональности между объектами     161
Глава 8. Организация данных     189
Глава 9. Упрощение условных выражений     255
Глава 10. Упрощение вызовов методов     289
Глава 11. Работа с обобщенностью     337
Глава 12. Крупномасштабные рефакторинги     375
Глава 13. Рефакторинг, повторное использование и реальность     395
Глава 14. Инструментарий для выполнения рефакторинга     419
Глава 15. Заключение     427
Библиография     431
Примечания     433
Список рефакторингов     435
Список запахов     437
Предметный указатель     439


Copyright © 1992-2017 Издательская группа "Диалектика-Вильямс"

Rambler  Top100