Главная    Ex Libris    Книги    Журналы    Статьи    Серии    Каталог    Wanted    Загрузка    ХудЛит    Справка    Поиск по индексам    Поиск    Форум   
blank
Авторизация

       
blank
Поиск по указателям

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



Обсудите книгу на научном форуме



Нашли опечатку?
Выделите ее мышкой и нажмите Ctrl+Enter


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

Авторы: Фаулер М., Бек К., Брант Д., Апдайк У., Робертс Д.

Аннотация:

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


Язык: ru

Статус предметного указателя: Готов указатель с номерами страниц

ed2k: ed2k stats

Год издания: 2003

Количество страниц: 432

Добавлена в каталог: 18.05.2005

Операции: Положить на полку | Скопировать ссылку для форума | Скопировать ID
blank
Предметный указатель
Код ошибки, замена исключительной ситуацией, пример      313
Код ошибки, замена исключительной ситуацией, пример, непроверяемые, техника      313
Код с душком      99
Код самотестирующийся      101—104
Код типа, замена классом      223—228
Код типа, замена классом, мотивировка      224
Код типа, замена классом, пример      228
Код типа, замена классом, техника      224
Код типа, замена подклассами      228—231
Код типа, замена подклассами, мотивировка      229
Код типа, замена подклассами, пример      231
Код типа, замена подклассами, техника      229
Код типа, замена состоянием/стратегией      231—236
Код типа, замена состоянием/стратегией, мотивировка      232
Код типа, замена состоянием/стратегией, пример      236
Код типа, замена состоянием/стратегией, техника      232
Код цены, замена условной логики      60
Код цены, изменение методов доступа movie      54
Код, дублирование      86—87
Код, переименование      32
Код, рефакторинг и приведение кода в порядок      62
Код, рефакторинг уменьшает объем кода      46
Комментарии      99
Константа, замена магического числа символической      211—212
Константа, замена магического числа символической, мотивировка      212
Константа, замена магического числа символической, техника      212
Конструктор, замена фабричным методом      306—309
Конструктор, замена фабричным методом, мотивировка      306
Конструктор, замена фабричным методом, пример      307
Конструктор, замена фабричным методом, пример, создание подклассов с помощью строки      309
Конструктор, замена фабричным методом, пример, создание подклассов явными методами      309
Конструктор, замена фабричным методом, техника      306
Конструктор, подъем тела      326—328
Конструктор, подъем тела, мотивировка      326
Конструктор, подъем тела, пример      328
Конструктор, подъем тела, техника      326
Косвенность и рефакторинг      70—71
Ленивый класс      94
Локальное расширение, введение      174—178
Локальное расширение, введение, использование оболочек      178
Локальное расширение, введение, использование подклассов      177
Локальное расширение, введение, примеры      178
Локальное расширение, введение, техника      175
Локальные переменные      30
Локальные переменные, использование      127
Локальные переменные, отсутствие      126
Локальные переменные, присваивание нового значения      128
Магические числа, замена символической константой      211—212
Магические числа, замена символической константой, мотивировка      212
Магические числа, замена символической константой, техника      212
Массивы, замена объектом      194—196
Массивы, замена объектом, мотивировка      194
Массивы, замена объектом, пример      196
Массивы, замена объектом, техника      195
Массивы, инкапсуляция      221—222
Методы и объекты      33
Методы рефакторинга, каталог      122
Методы рефакторинга, каталог, зрелость предлагаемых методов рефакторинга      122
Методы рефакторинга, каталог, поиск ссылок      120
Методы, вместо параметра      294—297
Методы, встраивание      131—132
Методы, выделение      124—130
Методы, выделение при отсутствии локальных переменных      126
Методы, выделение с использованием локальных переменных      127
Методы, выделение, мотивировка      124
Методы, выделение, присваивание нового значения локальной переменной      128
Методы, выделение, техника      125
Методы, длинный      88
Методы, замена конструктора фабричным      306—309
Методы, замена конструктора фабричным, мотивировка      306
Методы, замена конструктора фабричным, пример, создание подклассов с помощью строки      309
Методы, замена конструктора фабричным, пример, создание подклассов явными методами      309
Методы, замена конструктора фабричным, техника      306
Методы, замена параметра явными      291
Методы, нахождение всех ссылок на старый      34
Методы, параметризация      286
Методы, параметризация, мотивировка      286
Методы, параметризация, пример      287
Методы, параметризация, техника      286
Методы, переименование      277
Методы, переименование, мотивировка      277
Методы, переименование, пример      278
Методы, переименование, техника      278
Методы, перемещение      154—158
Методы, перемещение, мотивировка      154
Методы, перемещение, пример      158
Методы, перемещение, техника      156
Методы, подъем      323—325
Методы, подъем, мотивировка      324
Методы, подъем, пример      325
Методы, подъем, техника      324
Методы, создание замещающего      57
Методы, создание подклассов явными      309
Методы, сокрытие, мотивировка      305
Методы, сокрытие, техника      305
Методы, составление      123—151
Методы, спуск      328—329
Методы, спуск, мотивировка      328
Методы, спуск, техника      329
Методы, установки значения, удаление      302—304
Методы, установки значения, удаление, мотивировка      302
Методы, установки значения, удаление, пример      304
Методы, формирование шаблона      344—351
Методы, формирование шаблона, мотивировка      345
Методы, формирование шаблона, пример      351
Методы, формирование шаблона, техника      345
Модель      368
Модификатор, отделение от запроса      282—285
Модификации, расходящиеся»      90
Модулей и функциональные тесты      110
Наследование      52
Наследование вместо делегирования      354— 356
Наследование вместо делегирования, мотивировка      355
Наследование вместо делегирования, пример      356
Наследование вместо делегирования, техника      355
Наследование, замена делегированием      352—354
Наследование, замена делегированием, мотивировка      352
Наследование, замена делегированием, пример      354
Наследование, замена делегированием, техника      353
Наследование, разделение      360—365
Наследование, разделение, мотивировка      361
Наследование, разделение, примеры      365
Наследование, разделение, техника      361
Наследство, отказ от      98—99
Начисление бонусов, выделение в метод      38
Неуместная близость      97
Нисходящее преобразование типа инкапсуляция      310—311
Нулевой объект      262—269
Нулевой объект, мотивировка      264
Нулевой объект, пример      268
Нулевой объект, техника      264
Обобщение, методы реализации      321—356
Обобщение, методы реализации, выделение интерфейса      341—343
Обобщение, методы реализации, выделение подкласса      330—335
Обобщение, методы реализации, замена делегирования наследованием      354—356
Обобщение, методы реализации, замена наследования делегированием      352—354
Обобщение, методы реализации, подъем метода      323—325
Обобщение, методы реализации, подъем поля      322—323
Обобщение, методы реализации, подъем тела конструктора      326—328
Обобщение, методы реализации, свертывание иерархия      343—344
Обобщение, методы реализации, спуск метода      328
Обобщение, методы реализации, спуск поля      329
Обобщение, методы реализации, формирование шаблона метода      344—351
Оболочки, использование      178
Обратный указатель, определение      205
Общность, теоретическая      95
Объект вместо значения данных      184—187
Объект вместо значения данных, пример      187
Объект вместо значения данных, техника      185
Объект вместо массива      195—196
Объект вместо массива, мотивировка      194
Объект вместо массива, пример      196
Объект вместо массива, техника      195
Объект вместо методов      148—151
Объект вместо методов, мотивировка      148
Объект вместо методов, пример      148
Объект вместо методов, техника      148
Объект граничный, введение      297—302
Объект граничный, введение, мотивировка      297
Объект и методы      33
Объект, преобразование процедурного проекта в объектный      366—367
Объект, преобразование процедурного проекта в объектный, мотивировка      366
Объект, преобразование процедурного проекта в объектный, пример      367
Объект, преобразование процедурного проекта в объектный, техника      367
Объект, сохранение целиком      291— 294
Объект, сохранение целиком, механика      292
Объект, сохранение целиком, мотивировка      292
Объект, сохранение целиком, пример      294
Однонаправленная связь, замена двунаправленной      204—207
Однонаправленная связь, замена двунаправленной, мотивировка      205
Однонаправленная связь, замена двунаправленной, пример      207
Однонаправленная связь, замена двунаправленной, техника      205
Опубликованные интерфейсы      73
Особенности языка, затрудняющие рефакторинг      384—386
Отказ от наследства      98—99
Ошибки и боязнь написания тестов      114
Ошибки, выявление в тестах модулей      110
Ошибки, детектор и комплект тестов      103
Ошибки, рефакторинг помогает находить      65
Ошибки, рефакторинг, при исправлении      67
Параметризация метода      287
Параметры, добавление      279—280
Параметры, добавление, механика      280
Параметры, добавление, мотивировка      279
Параметры, замена методом      294—297
Параметры, замена методом, мотивировка      295
Параметры, замена методом, пример      297
Параметры, замена методом, техника      295
Параметры, замена явными методами      288—291
Параметры, замена явными методами, мотивировка      289
Параметры, замена явными методами, пример      291
Параметры, замена явными методами, техника      289
Параметры, удаление      280—281
Параметры, удаление присваиваний      144—147
Параметры, удаление, мотивировка      281
Параметры, удаление, техника      281
Паттерны банды четырех      52
Передача по значению в Java      144
Передача технологии      395—397
Переименование кода      32
Переменные временные      37
Переменные локальные      30 38
Переменные, введение поясняющих      137—140
Переменные, введение поясняющих, мотивировка      137
Переменные, введение поясняющих, пример      138
Переменные, введение поясняющих, техника      138
Переменные, расщепление временных      141—143
Переменные, расщепление временных, мотивировка      141
Переменные, расщепление временных, пример      142
Переменные, расщепление временных, техника      141
Поведение, перемещение в класс      219—220
Подкласс вместо кода типа      229—231
Подкласс вместо кода типа, мотивировка      229
Подкласс вместо кода типа, пример      231
Подкласс вместо кода типа, техника      229
Подкласс, выделение      330—335
Подкласс, выделение, мотивировка      330
Подкласс, выделение, пример      335
Подкласс, выделение, техника      331
Подкласс, замена полями      236—239
Подкласс, замена полями, мотивировка      236
Подкласс, замена полями, пример      239
Подкласс, замена полями, техника      237
Подкласс, использование      177
Подкласс, создание явными методами      309
Подъем метода      324—325
Подъем метода, мотивировка      324
Подъем метода, пример      325
Подъем метода, техника      324
Подъем тела конструктора      326—328
Поле временное      95
Поле, замена поля кода цены полем цены      54
Поле, инкапсуляция      212—213
Поле, инкапсуляция, мотивировка      213
Поле, инкапсуляция, техника      213
Поле, перемещение      158—161
Поле, перемещение, мотивировка      158
Поле, перемещение, применение самоинкапсуляции      161
Поле, перемещение, пример      160
Поле, перемещение, техника      159
Поле, подъем      322
Поле, подъем, мотивировка      322
Поле, подъем, техника      322
Поле, самоинкапсуляция      184—184
Поле, спуск      330
Поле, спуск, мотивировка      329
Поле, спуск, техника      330
Полиморфизм вместо условного оператора      259—262
Полиморфизм вместо условного оператора, мотивировка      259
Полиморфизм вместо условного оператора, пример      262
Полиморфизм вместо условного оператора, техника      260
Полиморфизм, замена условной логики      49— 60
Полужирный шрифт в коде      119
Посредник      96
Посредник, удаление      171—172
Посредник, удаление, мотивировка      171
Посредник, удаление, пример      172
Посредник, удаление, техника      171
Правило трех ударов      66
Предварительное проектирование      76
Предметная область, отделение от представления      368—372
Предметная область, отделение от представления, мотивировка      368
Предметная область, отделение от представления, пример      372
Предметная область, отделение от представления, техника      368
Представление      368
Присваивание параметрам, удаление      144—146
Присваивание параметрам, удаление, мотивировка      144
Присваивание параметрам, удаление, передача по значению в Java      145
Присваивание параметрам, удаление, пример      145
Присваивание параметрам, удаление, техника      144
Проверка кода возврата, вместо исключительных ситуаций      317—320
Проверка кода возврата, вместо исключительных ситуаций, пример      320
Проверка кода возврата, вместо исключительных ситуаций, техника      317
Программирование экстремальное      81
Программирование, стили, затрудняющие рефакторинг      384—386
Программирование, ускорение      65
Программное обеспечение и рефакторинг      66
Программное обеспечение, повторное использование      395—397
Программное обеспечение, рефакторинг не меняет видимого поведения      62
Программное обеспечение, рефакторинг улучшает композицию      63
Проект процедурный, преобразование в объекты      366—367
Проект процедурный, преобразование в объекты, мотивировка      366
Проект процедурный, преобразование в объекты, пример      367
Проект процедурный, преобразование в объекты, техника      367
Проектирование предварительное      76
Проектирование, изменения дизайна, трудные для рефакторинга      75
Проектирование, рефакторинг и      79
Производительность и рефакторинг      81
Разбор кода, рефакторинг при      67
Расходящиеся модификации      90
Расчеты, бонусы      50
Расчеты, перемещение для суммы      32
Расширение, введение локального      174—178
Расширение, введение локального, использование оболочек      177
Расширение, введение локального, использование подклассов      176
Расширение, введение локального, мотивировка      174
Расширение, введение локального, примеры      176
Расширение, введение локального, техника      175
Рефакторинг безопасный      390—393
Рефакторинг позволяет быстрее писать программы      65
1 2 3
blank
Реклама
blank
blank
HR
@Mail.ru
       © Электронная библиотека попечительского совета мехмата МГУ, 2004-2025
Электронная библиотека мехмата МГУ | Valid HTML 4.01! | Valid CSS! О проекте