Главная страница
Мифический человеко-месяц или как создаются программные системы. Изд.2
Мифический человеко-месяц или как создаются программные сист - Фредерик Брукс
Перед вами юбилейное, дополненное и исправленное издание книги "Мифический человеко-месяц или Как создаются программные системы" - признанной всеми ра...
Цена: 161.84 грн
+ получите 8.09 грн на бонусный счет
О компании Доставка и оплата Помощь Контакты
Войти на сайт

  Логин (Регистрация)


  Пароль(Забыли?)

Закрыть [x]

Компьютерная литература >> Программирование >> Алгоритмы

Рефакторинг: улучшение существующего кода - Мартин Фаулер, К.Бек, Д. Брант, Д. Робертс, У. Ап

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

Издательство: Символ

Артикул: 6807

цена: 286.33 грн


наличие книги

Другие издания этой книги:

2010
Издание 0
286.33 грн

купить книгу: Рефакторинг: улучшение существующего кода | Мартин Фаулер, К.Бек, Д. Брант, Д. Робертс, У. Ап (WebMoney: 37,19 wmz)

Зарегистрированные пользователи получают 5% на бонусный счет от каждого заказа 14.32 грн. на бонусный счет!

Год издания: 2011
Номер издания: 0
В наличии: 7 шт.
ISBN:
Количество страниц: 432
Формат:
Вес книги: 0
Обложка: Мягкий

Лучшая книга издательства Top 500 рейтинга Букзон

Специальное предложение!

Нашли книгу в других интернет-магазинах дешевле? Отправьте нам ссылку и мы оплатим разницу! подробнее

Ссылка:     Цена:     Ваш email: 

Описание книги

Рефакторинг - улучшение структурной целостности и производительности существующих программ. Труд "Рефакторинг: улучшение существующего кода" - это must have любого уважающего себя профессионального программиста; творение, формирующее сознание разработчика; универсальная классическая книга, достойная быть настольной! Это первый подобный труд, проливший свет не на поверхность, но на саму суть: на технологии и подходы к процессу.

Каждый шаг рефакторинга прост. Это может быть перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и превращение его в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый отдельный шаг может показаться элементарным, но совокупный эффект таких малых изменений в состоянии радикально улучшить проект или даже предотвратить распад плохо спроектированной программы. 
 
Мартин Фаулер с соавторами во всех тонкостях описали принципы и лучшие приемы осуществления рефакторинга, указав, где и когда следует начинать углубленное изучение кода с целью его улучшения. Основу книги "Рефакторинг: улучшение существующего кода" составляет подробный перечень более 70 методов рефакторинга, для каждого из которых описываются мотивация и техника испытанного на практике преобразования кода с примерами на Java. Рассмотренные в книге методы позволяют поэтапно модифицировать код, внося каждый раз небольшие изменения, благодаря чему снижается риск, связанный с развитием проекта. 
 
Содержание
 
Предисловие
 
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. Складывая все вместе 
 
Библиография
Список примечаний
Алфавитный указатель

С этой книгой хорошо покупать

          

           565,82 грн
Совершенный код

(Экономьте 28.29 грн на следующей покупке)


Отзывы

Татьяна

В основном каталоге стоит значок "распродажа". А в чём заключается распродажа? Цена осталась прежней, бонусы не увеличились. Это же касается и других книг. Получила по почте рекламу, распродажа мол. Зашла - всё то же самое, не вижу отличий.

2010-12-22 09:50:39


муж Татьяны

Таня, я тебе потом разницу покажу. А ваще распродажа заключатеся не в том, что продают дешевле, а что гланое об оэтом заявить. До вечера, дорогая.

2011-01-12 16:41:35


теща (мать Татьяны)

Ты где лазил окаянный? Танюша написала 22 декабря, ты гад только через 3 недели объявилсо.

2011-01-14 19:57:08


Мазай Алексей (администратор сайта)

Господа, не ссорьтесь!
Если на книге стоит лейба распродажа, то она продается по специальной цене, но не всегда стоит отметка со старой ценой. Такие значки были и до новогодней распродажи, будут и после.


2011-01-21 19:55:00


Zalk

Товарищи! А теперь по делу. Книга будет крайне полезна программистам, которые хотят писать гибкие и легко изменяемые приложения, а не одноразовый индусский код. Маст рид для каждого профессионала.

2011-08-17 11:53:46


Алексей

Еще рекомендую "Чистый код" - тоже из этой серии

2011-08-22 15:30:03


Данила

Дорого же...

2011-10-19 23:58:16


Виктор

В описании указано, что обложка твёрдая. На самом деле присылают книгу с мягкой обложкой. Несоответствие, однако!

2012-02-07 13:23:30


Ваше имя:
Комментарий:
Введите символы на картинке:



Обратите внимание

Алгоритмы

Совершенный код - 279.49
Изучаем Python Изд.4 - 410.82
ActionScript 3.0. Шаблоны проектирования - 327.83

Стив Макконнелл

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

Марк Лутц

Изучаем Python Изд.4

Уильям Сандерс, Чандима Кумаранатунг

ActionScript 3.0. Шаблоны проектирования



Подпишитесь на RSS каналы и узнавайте о новинках первыми!

rssКомпьютерная литература

rssПрограммирование

rssАлгоритмы

Вверх страницы ▲


 

О Букзоне

Как оплатить покупку
Как получить
Контакты и схема проезда

Cкидки

Бесплатная доставка
Скидки от УкрСиббанка
Партнерская программа

Кабинет

Личный кабинет
Книга отзывов
Помощь


© 2003 — 2012 Интернет-магазин «Букзон»