549 грн.| Рефакторинг. Улучшение существующего кода Мартин Фаулер

(2 отзыва клиентов)

549 грн.

Описание

Рефакторинг. Улучшение существующего кода, Мартин Фаулер купить книга Україна

n
n
n
n
nОбкладинка – м”яка
n
nРік видання – 2018
n
nКількість сторінок – 432
n
nISBN – 978-593286-045-8
n
nБумага – біла, офсет
n

Про книгу Рефакторинг. Улучшение существующего кода, Мартин Фаулер

nК тому времени как объектная технология – в частности язык Java – стала обычным делом, появилось большое количество плохо спроектированных, неэффективных и малопригодных к сопровождению и расширению приложений. Профессиональные разработчики программных систем все яснее видят, насколько трудно иметь дело с таким “неоптимальным” наследием. Уже несколько лет эксперты в области объектного программирования применяют расширяющийся набор приемов, призванных улучшить структурную целостность и производительность таких программ. Этот подход, называемый рефакторингом, до сего момента оставался территорией экспертов, поскольку не предпринималось попыток перевести профессиональные знания в форму, доступную всем разработчикам.
n
nВ данной книге Мартин Фаулер показывает, как разработчики программного обеспечения могут реализовать существенные выгоды этой новой технологии, где обычно лежат возможности изменения структуры и как приступить к переделке плохого проекта в хороший. Каждый шаг рефакторинга прост – на первый взгляд слишком прост, чтобы сделать его. Это может быть перемещение поля из одного класса в другой, вынесение какого-то кода из метода и превращение его в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый отдельный шаг может показаться элементарным, но совокупный эффект таких малых изменений в состоянии радикально улучшить проект. Рефакторинг является верным способом предотвращения распада программы.
n
nПомимо описания различных приемов автор предоставляет подробный каталог, включающий более семидесяти рефакторингов, а также полезные указания по их применению, пошаговые инструкции и практические примеры. Примеры написаны на Java, но идеи применимы к любому объектно-ориентированному языку программирования.
n
nПолистать
n
nСодержание
n
nПредисловие
n
n1. Рефакторинг, первый пример
n
nИсходная программа
n
nПервый шаг рефакторинга
n
nДекомпозиция и перераспределение метода statement
n
nЗамена условной логики на полиморфизм
n
nЗаключительные размышления
n
n2. Принципы рефакторинга
n
nОпределение рефакторинга
n
nЗачем нужно проводить рефакторинг?
n
nКогда следует проводить рефакторинг?
n
nКак объяснить это своему руководителю?
n
nПроблемы, возникающие при проведении рефакторинга
n
nРефакторинг и проектирование
n
nРефакторинг и производительность
n
nКаковы истоки рефакторинга?
n
n3. Код с душком
n
nДублирование кода
n
nДлинный метод
n
nБольшой класс
n
nДлинный список параметров
n
nРасходящиеся модификации
n
n”Стрельба дробью”
n
nЗавистливые функции
n
nГруппы данных
n
nОдержимость элементарными типами
n
nОператоры типа switch
n
nПараллельные иерархии наследования
n
nЛенивый класс
n
nТеоретическая общность
n
nВременное поле
n
nЦепочки сообщений
n
nПосредник
n
nНеуместная близость
n
nАльтернативные классы с разными интерфейсами
n
nНеполнота библиотечного класса
n
nКлассы данных
n
nОтказ от наследства
n
nКомментарии
n
n4. Разработка тестов
n
nЦенность самотестирующегося кода
n
nСреда тестирования JUnit
n
nДобавление новых тестов
n
n5. На пути к каталогу методов рефакторинга
n
nФормат методов рефакторинга
n
nПоиск ссылок
n
nНасколько зрелыми являются предлагаемые методы
n
nрефакторинга?
n
n6. Составление методов
n
nВыделение метода (Extract Method)
n
nВстраивание метода (Inline Method)
n
nВстраивание временной переменной (Inline Temp)
n
nЗамена временной переменной вызовом метода
n
n(Replace Temp with Query)
n
nВведение поясняющей переменной (Introduce Explaining
n
nVariable)
n
nРасщепление временной переменной (Split Temporary Variable)
n
nУдаление присваиваний параметрам (Remove Assignments
n
nto Parameters)
n
nЗамена метода объектом методов (Replace Method with Method Object)
n
nЗамещение алгоритма (Substitute Algorithm)
n
n7. Перемещение функций между объектами
n
nПеремещение метода (Move Method)
n
nПеремещение поля (Move Field)
n
nВыделение класса (Extract Class)
n
nВстраивание класса (Inline Class)
n
nСокрытие делегирования (Hide Delegate)
n
nУдаление посредника (Remove Middle Man)
n
nВведение внешнего метода (Introduce Foreign Method)
n
nВведение локального расширения (Introduce Local Extension)
n
n8. Организация данных
n
nСамоинкапсуляция поля (Self Encapsulate Field)
n
nЗамена значения данных объектом (Replace Data Value
n
nwith Object)
n
nЗамена значения ссылкой (Change Value to Reference)
n
nЗамена ссылки значением (Change Reference to Value)
n
nЗамена массива объектом (Replace Array with Object)
n
nДублирование видимых данных (Duplicate Observed Data)
n
nЗамена однонаправленной связи двунаправленной
n
n(Change Unidirectional Association to Bidirectional)
n
nЗамена двунаправленной связи однонаправленной
n
n(Change Bidirectional Association to Unidirectional)
n
nЗамена магического числа символической константой
n
n(Replace Magic Number with Symbolic Constant)
n
nИнкапсуляция поля (Encapsulate Field)
n
nИнкапсуляция коллекции (Encapsulate Collection)
n
nЗамена записи классом данных (Replace Record with Data Class)
n
nЗамена кода типа классом (Replace Type Code with Class)
n
nЗамена кода типа подклассами (Replace Type Code with Subclasses)
n
nЗамена кода типа состоянием/стратегией (Replace Type Code
n
nwith State/Strategy)
n
nЗамена подкласса полями (Replace Subclass with Fields)
n
n9. Упрощение условных выражений
n
nДекомпозиция условного оператора (Decompose Conditional)
n
nКонсолидация условного выражения (Consolidate Conditional
n
nExpression)
n
nКонсолидация дублирующихся условных фрагментов
n
n(Consolidate Duplicate Conditional Fragments)
n
nУдаление управляющего флага (Remove Control Flag)
n
nЗамена вложенных условных операторов граничным
n
nоператором (Replace Nested Conditional with Guard Clauses)
n
nЗамена условного оператора полиморфизмом (Replace Conditional with Polymorphism)
n
nВведение объекта Null (Introduce Null Object)
n
nВведение утверждения (Introduce Assertion)
n
n10. Упрощение вызовов методов
n
nПереименование метода (Rename Method)
n
nДобавление параметра (Add Parameter)
n
nУдаление параметра (Remove Parameter)
n
nРазделение запроса и модификатора (Separate Query from Modifier)
n
nПараметризация метода (Parameterize Method)
n
nЗамена параметра явными методами (Replace Parameter
n
nwith Explicit Methods)
n
nСохранение всего объекта (Preserve Whole Object)
n
nЗамена параметра вызовом метода (Replace Parameter with Method)
n
nВведение граничного объекта (Introduce Parameter Object)
n
nУдаление метода установки значения (Remove Setting Method)
n
nСокрытие метода (Hide Method)
n
nЗамена конструктора фабричным методом (Replace Constructor
n
nwith Factory Method)
n
nИнкапсуляция нисходящего преобразования типа
n
n(Encapsulate Downcast)
n
nЗамена кода ошибки исключительной ситуацией (Replace
n
nError Code with Exception)
n
nЗамена исключительной ситуации проверкой (Replace
n
nException with Test)
n
n11. Решение задач обобщения
n
nПодъем поля (Pull Up Field)
n
nПодъем метода (Pull Up Method)
n
nПодъем тела конструктора (Pull Up Constructor Body)
n
nСпуск метода (Push Down Method)
n
nСпуск поля (Push Down Field)
n
nВыделение подкласса (Extract Subclass)
n
nВыделение родительского класса (Extract Superclass)
n
nВыделение интерфейса (Extract Interface)
n
nСвертывание иерархии (Collapse Hierarchy)
n
nФормирование шаблона метода (Form Template Method)
n
nЗамена наследования делегированием (Replace Inheritance
n
nwith Delegation)
n
nЗамена делегирования наследованием (Replace Delegation
n
nwith Inheritance)
n
n12. Крупные рефакторинги
n
nРазделение наследования (Tease Apart Inheritance)
n
nПреобразование процедурного проекта в объекты
n
n(Convert Procedural Design to Objects)
n
nОтделение предметной области от представления (Separate Domain from Presentation)
n
nВыделение иерархии (Extract Hierarchy)
n
n13. Рефакторинг, повторное использование и реальность
n
nПроверка в реальных условиях
n
nПочему разработчики не хотят применять рефакторинг
n
nк своим программам?
n
nВозращаясь к проверке в реальных условиях
n
nРесурсы и ссылки, относящиеся к рефакторингу
n
nПоследствия повторного использования программного
n
nобеспечения и передачи технологий
n
nЗавершающее замечание
n
nБиблиография
n
n14. Инструментальные средства проведения рефакторинга
n
nРефакторинг с использованием инструментальных средств
n
nТехнические критерии для инструментов проведения рефакторинга
n
nПрактические критерии для инструментов рефакторинга
n
nКраткое заключение
n
n15. Складывая все вместе
n
nБиблиография
n
nСписок примечаний
n
nАлфавитный указатель
n

Також ви можете залишити питанная або відгук про книгу: Рефакторинг. Улучшение существующего кода, Мартин Фаулер

2 отзыва на 549 грн.| Рефакторинг. Улучшение существующего кода Мартин Фаулер

  1. Анастасия (проверенный владелец)

    Заказывала книгу перед НГ. Очень быстрая доставка несмотря на праздники. Качество печати отличное. Все очень понравилось)

  2. Дмитрий

    Это ведь первое издание, с примерами на джаве?

    • Александр Пупкин (проверенный владелец)

      Да, все верно. Это первое издание и примеры на джава

Добавить отзыв

Ваш адрес email не будет опубликован. Обязательные поля помечены *