Рефакторинг. Улучшение Существующего Кода Фаулер
Улучшение существующего кода Мартин Фаулер Кент Бек и др. Переиздана уникальная книга « », Мартин Фаулер, Кент Бек, Джон Брант, Уильям Апдайк, Дон Робертс, Эрих Гамма, ( перевод ), бумага офсетная-белая, твердый переплет, 448 стр., ISBN 978-5-9909445-1-0, «ВИЛЬЯМС», 2017 - книгу Мартина Фаулера и др. « Рефакторинг» в интернет-магазине Рефакторинг - это подход к улучшению структурной целостности и производительности существующих программ и получил развитие благодаря усилиям экспертов в области ООП ( Объектно- Ориентированного Программирования), написавших книгу « Рефакторинг. Улучшение существующего кода» Каждый шаг рефакторинга прост - это может быть перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и превращение его в самостоятельный метод или даже перемещение кода по иерархии классов Каждый отдельный шаг может показаться элементарным, но совокупный эффект таких малых изменений в состоянии радикально улучшить проект или даже предотвратить распад плохо спроектированной программы Мартин Фаулер с соавторами пролили свет на процесс рефакторинга, описав в книге « Рефакторинг.
Улучшение существующего кода» принципы и лучшие приемы его осуществления, а также указав, где и когда следует начинать углубленное изучение кода с целью его улучшения Основу книги « Рефакторинг. Улучшение существующего кода» составляет подробный перечень более 70 методов рефакторинга, для каждого из которых описываются мотивация и техника испытанного на практике преобразования кода с примерами на Java Рассмотренные в книге « Рефакторинг. Улучшение существующего кода» методы позволяют поэтапно модифицировать код, внося каждый раз небольшие изменения, благодаря чему снижается риск, связанный с развитием проекта Оригинал книги: « » by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts, Erich Gamma, 464 pages, ISBN 677, July 1999 ( книгу можно заказать-купить в Библио-Глобус) ( книгу « Рефакторинг. Улучшение существующего кода» в интернет-магазине ) ( книгу можно заказать -купить в КОМБУКе - самая низкая цена в России!) ( книгу « Рефакторинг. Улучшение существующего кода» в ) ( книгу можно заказать -купить в Ozon.ru) ( книгу « Рефакторинг. Улучшение существующего кода» в ) ( книгу можно заказать-купить в DiaMail Украина) ( книгу « Рефакторинг.
Улучшение существующего кода» в ) На русском языке книга вышла в августе 2017 года в издательстве « » и издана ограниченным тиражом ОГЛАВЛЕНИЕ книги « Рефакторинг. Улучшение существующего кода» Предисловие Введение Глава 1.
Первый пример рефакторинга Глава 2. Принципы рефакторинга Глава 3. Запах в коде Глава 4.
Создание тестов Глава 5. На пути к каталогу рефакторингов Глава 6. Составление методов Глава 7. Перенос функциональности между объектами Глава 8. Организация данных Глава 9.
Навазние: Рефакторинг. Улучшение существующего кода Автор: Мартин Фаулер Издательство: Год: 2003 Страниц: 432 Язык: Русский Размер: 18 Формат: pdf. Описание книги Рефакторинг. Улучшение существующего кода: Простые конструкции в коде, небольшие методы, лаконичные классы. Об этих достоинствах знает каждый. И почти каждый рано или поздно к этому приходит сам. В книге собраны готовые рецепты. О многих вы скажете «да я и сам это знаю безо всяких книг», но такой удобной подборки методов избавления от кода «с душком» вы найти не сможете.
Упрощение условных выражений Глава 10. Упрощение вызовов методов Глава 11. Работа с обобщенностью Глава 12.
Крупномасштабные рефакторинги Глава 13. Рефакторинг, повторное использование и реальность Глава 14. Инструментарий для выполнения рефакторинга Глава 15. Заключение Библиография Примечания Список рефакторингов Список запахов Предметный указатель Мартин Фаулер Мартин Фаулер ( Martin Fowler, на фото) - главный научный сотрудник компании ThoughtWorks, занимается исследованием оптимальных способов разработки программного обеспечения и повышения производительности разработчиков Мартин - автор многих книг, переведенных на русский язык: 1) « »; 2) « UML.
Аннотация К тому времени как объектная технология - в частности язык Java - стала обычным делом, появилось большое количество плохо спроектированных, неэффективных и малопригодных к сопровождению и расширению приложений. Профессиональные разработчики программных систем все яснее видят, насколько трудно иметь дело с таким 'неоптимальным' наследием.


Уже несколько лет эксперты в области объектного программирования применяют расширяющийся набор приемов, призванных улучшить структурную целостность и производительность таких программ. Этот подход, называемый рефакторингом, до сего момента оставался территорией экспертов, поскольку не предпринималось попыток перевести профессиональные знания в форму, доступную всем разработчикам. В данной книге Мартин Фаулер показывает, как разработчики программного обеспечения могут реализовать существенные выгоды этой новой технологии, где обычно лежат возможности изменения структуры и как приступить к переделке плохого проекта в хороший. Каждый шаг рефакторинга прост - на первый взгляд слишком прост, чтобы сделать его. Это может быть перемещение поля из одного класса в другой, вынесение какого-то кода из метода и превращение его в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый отдельный шаг может показаться элементарным, но совокупный эффект таких малых изменений в состоянии радикально улучшить проект.
Рефакторинг является верным способом предотвращения распада программы. Помимо описания различных приемов автор предоставляет подробный каталог, включающий более семидесяти рефакторингов, а также полезные указания по их применению, пошаговые инструкции и практические примеры. Примеры написаны на Java, но идеи применимы к любому объектно-ориентированному языку программирования. Содержание Предисловие.
Дублирование кода. Длинный метод. Большой класс. Длинный список параметров. Расходящиеся модификации. 'Стрельба дробью'. Завистливые функции.
Группы данных. Одержимость элементарными типами. Операторы типа switch. Параллельные иерархии наследования. Ленивый класс.
Теоретическая общность. Временное поле. Цепочки сообщений. Посредник. Неуместная близость. Альтернативные классы с разными интерфейсами.
Неполнота библиотечного класса. Классы данных. Отказ от наследства.
Комментарии 4. Разработка тестов. Выделение метода ( Extract Method).
Встраивание метода ( Inline Method). Встраивание временной переменной ( Inline Temp). Замена временной переменной вызовом метода ( Replace Temp with Query). Введение поясняющей переменной ( Introduce Explaining Variable). Расщепление временной переменной ( Split Temporary Variable). Удаление присваиваний параметрам ( Remove Assignments to Parameters).
Что Такое Рефакторинг
Замена метода объектом методов ( Replace Method with Method Object). Замещение алгоритма ( Substitute Algorithm) 7. Перемещение функций между объектами. Декомпозиция условного оператора ( Decompose Conditional). Консолидация условного выражения ( Consolidate Conditional Expression). Консолидация дублирующихся условных фрагментов ( Consolidate Duplicate Conditional Fragments). Удаление управляющего флага ( Remove Control Flag).
Замена вложенных условных операторов граничным оператором ( Replace Nested Conditional with Guard Clauses). Замена условного оператора полиморфизмом ( Replace Conditional with Polymorphism). Введение объекта Null ( Introduce Null Object). Введение утверждения ( Introduce Assertion) 10. Упрощение вызовов методов.
Подъем поля ( Pull Up Field). Подъем метода ( Pull Up Method). Подъем тела конструктора ( Pull Up Constructor Body). Спуск метода ( Push Down Method).
Спуск поля ( Push Down Field). Выделение подкласса ( Extract Subclass). Выделение родительского класса ( Extract Superclass). Выделение интерфейса ( Extract Interface). Свертывание иерархии ( Collapse Hierarchy).
Рефакторинг. Улучшение Существующего Кода Мартин Фаулер
Формирование шаблона метода ( Form Template Method). Замена наследования делегированием ( Replace Inheritance with Delegation). Замена делегирования наследованием ( Replace Delegation with Inheritance) 12. Крупные рефакторинги. Комментарии Валерий Лаптев Опытные программисты знают, что разработка действительно большой программной системы со временем становится почти неуправляемой. Все благие намерения следовать графику, планомерно завершать этапы разработки, оказываются 'дорогой в ад'.
Энтропия системы увеличивается - она сползает к хаосу. Как говорит Мартин Фаулер, 'код медленно сползает от проектирования к хакерству'. Заплаты ставятся на заплате, часто в спешке, лишь бы работало.
То, что работает, по негласной заповеди программистов, неприкосновенно. Исправления делаются только при обнаружении ошибки. С этих позиций книга Мартина Фаулера и других гуру-программистов - прямо-таки потрясение основ!
Изменять работающий код - так и хочется повертеть пальцем у виска! Но 'торописса - не надо!' Эта книга стоит в одном ряду с такими эпохальными трудами, как 'Искусство программирования' Кнута, 'Дисциплина программирования' Дейкстры, 'Паттерны проектирования' Банды четырех и других. Однако она здорово отличается от всех других. Все книги учат, как надо правильно писать программы с самого начала. Эта же книга гораздо ближе к реальной жизни: в ней даются практические рецепты, как исправлять уже написанный код.
Улучшенный код - более простой, надежный и быстродействующий. Как говорит сам Фаулер, 'каждый шаг этого процесса прост до чрезвычайности. Однако суммарный эффект таких небольших изменений может радикально улучшить проект. Это прямо противоположно обычному явлению постепенного распада программы'. И термин придуман звучный: РЕФАКТОРИНГ! Для кого написана эта книга, пишет сам автор: 'Книга рассчитана на профессионального программиста - того, кто зарабатывает себе на жизнь программированием'. Пожалуй, наиболее ценной частью книги является список рефакторингов - приемов преобразования кода.
Однако сам список ничего не даст, если не знать, в каких случаях его применять. Это во многих случаях основано на опыте и интуиции. Авторы попытались описать интуитивный процесс, выделив признаки плохого кода. Термин для этого придуман совершенно блестящий - 'код с душком'! Очень интересной является глава 4 - о самопроверяющихся тестах. Описываются принципы организации среды тестирования Junit.
Книга написана просто и понятно, читается почти как детектив - на одном дыхании. Много реальных историй из жизни авторов. Код постоянно сопровождается соответствующими диаграммами UML. Несмотря на то, что код написан на Java, предмет книги ни в коей мере с кодом не связан - те же приемы с успехом можно применять и при программировании на других языках. По каким-то неизвестным нам причинам ряд книжек об антипаттернах ('Горький вкус Java' Брюса Тейта, 'Типичные ошибки проектирования' Эрика Аллена) написаны для Java.
Это отнюдь не снижает их ценности для других программистов. Эту книжку должен держать под рукой каждый профессиональный программист.
