Купить книги Ешь, двигайся, спи Чек-лист. Как избежать глупых ошибок, ведущих к фатальным последствиям Телефоны Бизбук - c 10 до 18 по будним дням
 
Наши проекты:
Вход для зарегистрированных пользователей
Регистрация нового пользователя
Главная Новинки Анонсы Мои заказы Рассылка Оплата и Доставка Контакты
АУДИОКНИГИ ПО БИЗНЕСУ ЭКОНОМИЧЕСКАЯ ЛИТЕРАТУРА КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА ДЕТСКАЯ ЛИТЕРАТУРА
ДОМ, БЫТ, ДОСУГ ЕСТЕСТВЕННЫЕ НАУКИ ИНОСТРАННЫЕ ЯЗЫКИ ИСКУССТВО, ЖИВОПИСЬ
ОБЩЕСТВЕННЫЕ И ГУМАНИТАРНЫЕ НАУКИ ПОДАРОЧНАЯ ЛИТЕРАТУРА ПСИХОЛОГИЯ ТЕХНИЧЕСКАЯ ЛИТЕРАТУРА
ХУДОЖЕСТВЕННАЯ и ПОПУЛЯРНАЯ ЛИТЕРАТУРА ЭЛЕКТРОНИКА РАСПРОДАЖА. СУПЕРСКИДКИ !!!  
Вы находитесь в разделе каталога:
• Рефакторинг: улучшение проекта существующего кода, Мартин Фаулер, Кент Бек, Джон Брант, Уильям Опдайк, Дон Робертс

Рефакторинг: улучшение проекта существующего кода
Книга Рефакторинг: улучшение проекта существующего кода
рекомендуем
Мартин Фаулер, Кент Бек, Джон Брант, Уильям Опдайк, Дон Робертс
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
ISBN: 978-5-9909445-1-0
Переплёт: твердый
448 страниц
Цена: 765.00 грн.
Есть в наличии
в корзину

Instant Purshare Только 1 книга
Доставка: по Киеву - в течение суток*
                по Украине - от 2 до 10 суток*

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

В книге "Рефакторинг: улучшение проекта существующего кода" (оригинал: "Refactoring: Improving the Design of Existing Code") Мартин Фаулер и другие высококлассные специалисты в области объектно-ориентированного программирования, принявшие участие в написании этой книги, изложили принципы и наиболее эффективные методики выполнения различных рефакторингов и показали, когда и как следует тщательно изучать код с целью его улучшения. В книге подробно описано более 70 методов рефакторинга, причем приведено не только их теоретическое описание, но и практические примеры на языке программирования Java.

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

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

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

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

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

Предисловие к "Рефакторинг: улучшение существующего кода" написал Эрих Гамма, автор книги "Приемы объектно-ориентированного проектирования. Паттерны проектирования".

Об авторах книги "Рефакторинг: улучшение проекта существующего кода":
Мартин Фаулер - независимый консультант, который применяет объектные технологии для решения насущных проблем бизнеса около сорока лет. Он давал консультации по программным системам в таких областях, как здравоохранение, торговля и финансы. Среди его клиентов были Chrysler, Citibank, Министерство здравоохранения Великобритании, Andersen Consulting и Netscape Communications. Кроме того, Фаулер часто делает доклады по объектным технологиям, унифицированному языку моделирования UML и проектным шаблонам. Сам о себе он пишет так: "Автор, консультант, лектор и просто крикун в области разработки программного обеспечения. Сферой моих интересов является разработка крупномасштабного программного обеспечения, где особую роль играет хорошее проектирование". Фаулер - автор таких бестселлеров, как "Шаблоны корпоративных приложений", "NoSQL: новая методология разработки нереляционных баз данных", и других изданий .
Кент Бек - известный программист, тестировщик ПО, специалист по рефакторингу, автор книг и игрок на банджо.
Джон Брант и Дон Робертс - авторы инструментария для автоматизированного выполнения рефакторингов Refactoring Browser for Smalltalk. Они также являются консультантами, около тридцати лет изучавшие практические и теоретические аспекты рефакторинга.
Диссертационная работа Уильяма Опдайка "Исследования по оптимизации объектно-ориентированных структур", выполненная в Университете Иллинойса, привела к первой важной публикации по этой теме. В настоящее время он работает в Lucent Technologies/Bell Laboratories.

 


Содержание книги Мартин Фаулер, Кент Бек, Джон Брант, Уильям Опдайк, Дон Робертс "Рефакторинг: улучшение проекта существующего кода"

 


Предисловие

Глава 1. Первый пример рефакторинга
Исходная программа
Первый шаг рефакторинга
Декомпозиция и перераспределение метода statement
Замена условной логики на полиморфизм
Заключительные размышления

Глава 2. Принципы рефакторинга
Определение рефакторинга
Зачем нужно проводить рефакторинг?
Когда следует проводить рефакторинг?
Как объяснить это своему руководителю?
Проблемы, возникающие при проведении рефакторинга
Рефакторинг и проектирование
Рефакторинг и производительность
Каковы истоки рефакторинга?

Глава 3. Код с душком
Дублирование кода
Длинный метод
Большой класс
Длинный список параметров
Расходящиеся модификации
"Стрельба дробью"
Завистливые функции
Группы данных
Одержимость элементарными типами
Операторы типа switch
Параллельные иерархии наследования
Ленивый класс
Теоретическая общность
Временное поле
Цепочки сообщений
Посредник
Неуместная близость
Альтернативные классы с разными интерфейсами
Неполнота библиотечного класса
Классы данных
Отказ от наследства
Комментарии

Глава 4. Создание тестов
Ценность самотестирующегося кода
Среда тестирования JUnit
Добавление новых тестов

Глава 5. На пути к каталогу рефакторингов
Формат методов рефакторинга
Поиск ссылок
Насколько зрелыми являются предлагаемые методы
рефакторинга?

Глава 6. Составление методов
Выделение метода (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. Перенос функциональности между объектами
Перемещение метода (Move Method)
Перемещение поля (Move Field)
Выделение класса (Extract Class)
Встраивание класса (Inline Class)
Сокрытие делегирования (Hide Delegate)
Удаление посредника (Remove Middle Man)
Введение внешнего метода (Introduce Foreign Method)
Введение локального расширения (Introduce Local Extension)

Глава 8. Организация данных
Самоинкапсуляция поля (Self Encapsulate Field)
Замена значения данных объектом (Replace Data Value
with Object)
Замена значения ссылкой (Change Value to Reference)
Замена ссылки значением (Change Reference to Value)
Замена массива объектом (Replace Array with Object)
Дублирование видимых данных (Duplicate Observed Data)
Замена однонаправленной связи двунаправленной
(Change Unidirectional Association to Bidirectional)
Замена двунаправленной связи однонаправленной
(Change Bidirectional Association to Unidirectional)
Замена магического числа символической константой
(Replace Magic Number with Symbolic Constant)
Инкапсуляция поля (Encapsulate Field)
Инкапсуляция коллекции (Encapsulate Collection)
Замена записи классом данных (Replace Record with Data Class)
Замена кода типа классом (Replace Type Code with Class)
Замена кода типа подклассами (Replace Type Code with Subclasses)
Замена кода типа состоянием/стратегией (Replace Type Code
with State/Strategy)
Замена подкласса полями (Replace Subclass with Fields)

Глава 9. Упрощение условных выражений
Декомпозиция условного оператора (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. Упрощение вызовов методов
Переименование метода (Rename Method)
Добавление параметра (Add Parameter)
Удаление параметра (Remove Parameter)
Разделение запроса и модификатора (Separate Query from Modifier)
Параметризация метода (Parameterize Method)
Замена параметра явными методами (Replace Parameter
with Explicit Methods)
Сохранение всего объекта (Preserve Whole Object)
Замена параметра вызовом метода (Replace Parameter with Method)
Введение граничного объекта (Introduce Parameter Object)
Удаление метода установки значения (Remove Setting Method)
Сокрытие метода (Hide Method)
Замена конструктора фабричным методом (Replace Constructor
with Factory Method)
Инкапсуляция нисходящего преобразования типа
(Encapsulate Downcast)
Замена кода ошибки исключительной ситуацией (Replace
Error Code with Exception)
Замена исключительной ситуации проверкой (Replace
Exception with Test)

Глава 11. Работа с обобщенностью
Подъем поля (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. Крупномасштабные рефакторинги
Разделение наследования (Tease Apart Inheritance)
Преобразование процедурного проекта в объекты
(Convert Procedural Design to Objects)
Отделение предметной области от представления (Separate Domain from Presentation)
Выделение иерархии (Extract Hierarchy)

Глава 13. Рефакторинг, повторное использование и реальность
Проверка в реальных условиях
Почему разработчики не хотят применять рефакторинг
к своим программам?
Возращаясь к проверке в реальных условиях
Ресурсы и ссылки, относящиеся к рефакторингу
Последствия повторного использования программного
обеспечения и передачи технологий
Завершающее замечание
Библиография

Глава 14. Инструментарий для выполнения рефакторинга
Рефакторинг с использованием инструментальных средств
Технические критерии для инструментов проведения рефакторинга
Практические критерии для инструментов рефакторинга
Краткое заключение

Глава 15. Заключение

Библиография
Список примечаний
Алфавитный указатель


С этой книгой чаще всего покупают:
Предметно-ориентированные языки программирования

Предметно-ориентированные языки программирования

рекомендуем
Мартин Фаулер
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
Временно отсутствует   Оставить заявку
 
Рефакторинг SQL-приложений

Рефакторинг SQL-приложений

Стефан Фаро, Паскаль Лерми
Год выпуска: 2009
Изд-во: Символ
в корзину
Только 1 книга
Цена: 525.00 грн. 
 
Цена: 542.00 грн. 
Рефакторинг баз данных: эволюционное проектирование

Рефакторинг баз данных: эволюционное проектирование

Скотт В. Эмблер, Прамодку
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
Временно отсутствует   Оставить заявку
 
Шаблоны тестирования xUnit: рефакторинг кода тестов

Шаблоны тестирования xUnit: рефакторинг кода тестов

рекомендуем
Джерард Месарош
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
в корзину
Только 1 книга
Цена: 525.00 грн. 
 
Цена: 1025.00 грн. 
Шаблоны корпоративных приложений

Шаблоны корпоративных приложений

рекомендуем
Мартин Фаулер
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
в корзину
Только 1 книга
 
Адаптивный код: гибкое кодирование с помощью паттернов проектирования и принципов SOLID

Адаптивный код: гибкое кодирование с помощью паттернов проектирования и принципов SOLID

рекомендуем
Гэри Маклин Холл
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
в корзину
Только 1 книга
Цена: 855.00 грн. 
 
Цена: 765.00 грн. 
Совершенный код

Совершенный код

Стив Макконнелл
Год выпуска: 2016
Изд-во: Русская редакция
в корзину
Только 1 книга
 
Эффективная работа с унаследованным кодом

Эффективная работа с унаследованным кодом

рекомендуем
Майкл Физерс
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
в корзину
Только 1 книга
Цена: 960.00 грн. 
 
Цена: 765.00 грн. 
Непрерывная интеграция: улучшение качества программного обеспечения и снижение риска

Непрерывная интеграция: улучшение качества программного обеспечения и снижение риска

рекомендуем
Поль М. Дюваль, Стивен М. Матиас III, Эндрю Гловер
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
Временно отсутствует   Оставить заявку
 
Идеальный программист. Как стать профессионалом разработки ПО

Идеальный программист. Как стать профессионалом разработки ПО

Мартин Р.
Год выпуска: 2016
Изд-во: Питер
в корзину
Только 1 книга
Цена: 409.00 грн. 
 
Цена: 320.00 грн. 

Хотите оставить отзыв? У Вас возникли вопросы о книге "Рефакторинг: улучшение проекта существующего кода, Мартин Фаулер, Кент Бек, Джон Брант, Уильям Опдайк, Дон Робертс" ? Пишите:

* Текст сообщения:
 
  Отправить
Сайт по косметолгии
Поиск по каталогу
 поиск в аннотациях
Искать

* Подробнее об условиях доставки смотрите в разделе "Оплата и Доставка" нашего магазина.
Если у Вас возникли вопросы как подобрать и купить книги в нашем интернет-магазине звоните с 9 до 18 по будним дням: Киев 331-04-53, МТС (050) 809-56-66, Киевстар (067) 408-26-36, Лайф (063) 227-24-47, Интертелеком (094) 831-04-53 или пишите нам