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

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

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



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



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


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

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

Аннотация:

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


Язык: ru

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

ed2k: ed2k stats

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

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

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

Операции: Положить на полку | Скопировать ссылку для форума | Скопировать ID
blank
Предметный указатель
Account, класс      300—302
amountFor, метод      30 31
API, интерфейс.      74
ASCII (American Standard Code for Information Interchange), стандарт      42 48
AWT (Abstract Windows Toolkit), пакет абстрактных классов для реализации оконного интерфейса      89
BSD (Berkeley Software Distribution), файловая система      387
C-++ программы, рефакторинг      383—386
C-++ программы, рефакторинг, завершающие комментарии      386
C-++ программы, рефакторинг, особенности языка, затрудняющие рефакторинг      384—386
C-++ программы, рефакторинг, стили программирования, затрудняющие рефакторинг      384—386
case, предложение в родительском классе      57
ChildrensPrice, класс      57
Customenstatement, метод      36
Customer, класс      24 35 39 42 265 347
Customer, класс реализует интерфейс Nullable      266
DateRange, класс      299
Department, класс      339
Department.getTotalAnnualCost, метод      338
double getPrice, метод      135—137
double, тип      30
each, переменная      27
Employee, класс      260 332 337—339
Employee.getAnnualCost, метод      337
EmployeeType, класс      261
EndFieId_FocusLost, метод      199
Engineer, класс      261
Entry, класс      298
FileReaderTester, класс      104—106
frequentRenterPoints, временная переменная      38 42—43
getCharge, метод      49^50 55—56
getFrequeutRenterPomts, метод      50 58
getPriceCode      54
GUI (Graphical User Interface), графический интерфейс пользователя      197 200 368
GUI, класс      89 180
HTML, язык разметки      25—26 27 42
HtmlStatement, класс      348—349
htmlStatement, метод      48
IntervalWindow, класс      201
Java, язык Java 1.1      220—221
Java, язык Java 2      216—218
Java, язык передача по значению в      145
Jobltem, класс      335
JUnit, среда тестирования      104—110
JUnit, среда тестирования, тесты модулей и функциональные тесты      109—110
LaborItem, класс      334—335
LengthField_FocusLost, метод      199—200
MasterTester, класс      114
Movie, класс      23 49 51 52—53 53—55 58
Movie, класс, использование наследования с      52
Movie, класс, подклассы      52
MVC (Model-View-Controller), шаблон создания пользовательского интерфейса «модель-представление-контроллер»      198 368
NewReleasePrice, класс      57 58
Null, объект, пример, тестирующий интерфейс      269
Null, объект, различные особые случаи      269
NullCustomer, класс      266. 267
Party, класс      339
Price, класс      55—56 58
Price, класс, перемещение метода в      58
Price.getCharge, метод      57
RegularPrice, класс      57
Rental, класс      23 39 49—51
Rental-getCharge, метод      36
Salesman, класс      262
Site, класс      265 266
StartField_FocusLost, метод      199
Statement, класс      350
statement, метод, декомпозиция и перераспределение      27—48
switch, операторы      93
testEmptyRead, метод      112
testRead, метод      107
testReadAtEnd, метод      111
testReadBoundaries() throws IOЕхсерtion, возбуждение исключений      112
TextStatement, класс      347—349
thisAmount, переменная      27 37
totalAmoimt, переменная      42
totalAmoimt, переменная замена      43
UML (Unified Modeling Language), унифицированный язык моделирования      118
UML (Unified Modeling Language), унифицированный язык моделирования диаграммы      41
Алгоритм, замена      151—152
База данных, проблемы с      72—73
База данных, программы      404
Библиотечный класс, неполный      97
Близость, неуместная      96—97
Большой класс      88—89
Бонусы, выделение в метод.      38
Бонусы, начисление      50
Броузер рефахсторинга      402
Вложенные условные операторы, замена граничным оператором      253—257
Вложенные условные операторы, замена граничным оператором, мотивировка      254
Вложенные условные операторы, замена граничным оператором, пример      256
Вложенные условные операторы, замена граничным оператором, пример, обращение условий      257
Вложенные условные операторы, замена граничным оператором, техника      254
Внешний метод, введение      172—174
Внешний метод, введение, мотивировка      173
Внешний метод, введение, пример      174
Внешний метод, введение, техника      173
Временная переменная      37
Временная переменная, встраивание      132—133
Временная переменная, замена вызовом метода      133—137
Временная переменная, замена вызовом метода, мотивировка      133
Временная переменная, замена вызовом метода, пример      135
Временная переменная, замена вызовом метода, техника      134
Временная переменная, замена запросом      133
Временная переменная, расщепление      143
Временная переменная, удаление      42
Временное поле      95
Выделение интерфейса      341—343
Выделение интерфейса, мотивировка      342
Выделение интерфейса, пример      343
Выделение интерфейса, техника      342
Выделение класса      161—165
Выделение класса, мотивировка      162
Выделение класса, пример      165
Выделение класса, техника      162
Выделение метода      30 38 124—130 139
Выделение подкласса      330—335
Выделение подкласса, мотивировка      330
Выделение подкласса, пример      335
Выделение подкласса, техника      331
Выделение родительского класса      336—340
Выделение родительского класса, мотивировка      336
Выделение родительского класса, пример      340
Выделение родительского класса, техника      337
Вызов метода, вместо временной переменной      37 133—137
Вызовы методов      320
Выражения условные      273
Граничные операторы вместо вложенных условных операторов      253—257
Граничные операторы вместо вложенных условных операторов, пример      256
Граничные операторы вместо вложенных условных операторов, пример, обращение условий      256
Граничные операторы вместо вложенных условных операторов, техника      254
Граничные условия      112
Граничный объект      297—302
Граничный объект, пример      298
Группы данных      92
Данные группы      92
Данные, дублирование видимых      198—204
Данные, дублирование видимых, мотивировка      198
Данные, дублирование видимых, пример      204
Данные, дублирование видимых, техника      199
Данные, класс      98
Данные, организация      179—239
Данные, организация, дублирование видимых      197—204
Данные, организация, замена двунаправленной связи однонаправленной      207—211
Данные, организация, замена записи классом данных      222—227
Данные, организация, замена значения данных объектом      184—187
Данные, организация, замена значения ссылкой      187—191
Данные, организация, замена кода типа классом      223—228
Данные, организация, замена кода типа подклассами      228—231
Данные, организация, замена кода типа состоянием/стратегией      231—236
Данные, организация, замена магического числа символической константой      211—212
Данные, организация, замена массива объектом      194—196
Данные, организация, замена однонаправленной связи двунаправленной      204—207
Данные, организация, замена подкласса полями      236—239
Данные, организация, замена ссылки значением      191—193
Данные, организация, инкапсуляция коллекции      214—222
Данные, организация, инкапсуляция поля      212—213
Данные, организация, использование слушателей событий      204
Данные, организация, самоинкапсуляция поля      181—184
Двунаправленная связь, замена однонаправленной      207—211
Двунаправленная связь, замена однонаправленной, мотивировка      208
Двунаправленная связь, замена однонаправленной, пример      211
Двунаправленная связь, замена однонаправленной, техника      209
Делегирование вместо наследования      352—354
Делегирование вместо наследования, мотивировка      352
Делегирование вместо наследования, пример      354
Делегирование вместо наследования, техника      353
Делегирование, замена наследованием      354—356
Делегирование, замена наследованием, мотивировка      355
Делегирование, замена наследованием, пример      356
Делегирование, замена наследованием, техника      355
Делегирование, сокрытие      168—170
Делегирование, сокрытие, мотивировка      168
Делегирование, сокрытие, пример      170
Делегирование, сокрытие, техника      169
Дерево синтаксического разбора      405
Диаграммы, UML (Unified Modeling Language)      40—41
Длинный метод      87—88
Длинный список параметров      89—90
Дублирование кода      86—87
Завистливые функции      91
Замена временной переменной totalAmount      43
Замена ссылки значением      191—193
Замена ссылки значением, мотивировка      192
Замена ссылки значением, пример      193
Замена ссылки значением, техника      192
Замена ссылкой      187—191
Замена ссылкой, мотивировка      188
Замена ссылкой, пример      191
Замена ссылкой, техника      188
Запись, замена классом данных      222
Запрос, мотивировка      282
Запрос, отделение от модификатора      282—285
Запрос, пример      285
Запрос, проблемы параллельного выполнения      285
Запрос, техника      283
Значение, замена данных объектом      184—187
Значение, замена данных объектом, мотивировка      184
Значение, замена данных объектом, пример      187
Значение, замена данных объектом, техника      185
Зрелость методов рефакторинга      122
Иерархии наследования, параллельные      94
Иерархия, выделение      372—375
Иерархия, выделение, мотивировка      373
Иерархия, выделение, пример      375
Иерархия, выделение, техника      374
Иерархия, свертывание      343—344
Иерархия, свертывание, мотивировка      343
Иерархия, свертывание, техника      344
Инкапсуляция коллекции      214—222
Инкапсуляция коллекции, мотивировка      214
Инкапсуляция коллекции, перемещение поведения в класс      220
Инкапсуляция коллекции, примеры      215
Инкапсуляция коллекции, примеры, Java 1.1      221
Инкапсуляция коллекции, примеры, Java 2      218
Инкапсуляция коллекции, примеры, инкапсулирование массивов      221
Инкапсуляция коллекции, техника      215
Инкапсуляция нисходящего преобразования типа      311
Инкапсуляция нисходящего преобразования типа, мотивировка      310
Инкапсуляция нисходящего преобразования типа, пример      311
Инкапсуляция нисходящего преобразования типа, техника      311
Инкапсуляция поля      212—213
Инкапсуляция поля, мотивировка      213
Инкапсуляция поля, само-      181—184
Инкапсуляция поля, техника      213
Инструменты для рефакторинга      401—407
Инструменты для рефакторинга технические критерии      405
Инструменты для рефакторинга точность      405
Инструменты для рефакторинга, база данных программы      404
Инструменты для рефакторинга, деревья синтаксического разбора      405
Инструменты для рефакторинга, краткое заключение      407
Инструменты для рефакторинга, практические критерии      407
Инструменты для рефакторинга, практические критерии, интеграция с другими инструментами      407
Инструменты для рефакторинга, практические критерии, отмена      407
Инструменты для рефакторинга, практические критерии, скорость      406
Интерфейсы опубликованные      73
Интерфейсы, альтернативные классы с разными      97
Интерфейсы, выделение      342—343
Интерфейсы, выделение, мотивировка      342
Интерфейсы, выделение, пример      343
Интерфейсы, выделение, техника      342
Интерфейсы, изменение      75
Исключительные ситуации вместо кода ошибки      312—317
Исключительные ситуации вместо кода ошибки, пример      313
Исключительные ситуации вместо кода ошибки, техника      313
Исключительные ситуации непроверяемые      315
Исключительные ситуации проверяемые      317
Исключительные ситуации тесты и      113
Исключительные ситуации, замена проверкой      317—320
Исключительные ситуации, замена проверкой, мотивировка      317
Исключительные ситуации, замена проверкой, пример      320
Исключительные ситуации, замена проверкой, техника      317
Истоки рефакторинга      83
Класс Account      302
Класс ChildrensPrice      57
Класс Customer      24 35 39 42 265 347
Класс Customer реализует интерфейс Nullable      266
Класс DateRange      299
Класс Department      339
Класс Employee      260 332 339
Класс EmployeeType      261
Класс Engineer      261
Класс Entry      298
Класс FileReaderTester      106
Класс GUI      89 180
Класс HtmlStatement      349
Класс IntervalWindow      199 201
Класс JobItem      335
Класс LaborItem      335
Класс MasterTester      114
Класс Movie      23 49 51 53 55 58
Класс NewReleasePrice      57 58
Класс NullCustomer      266 267
Класс Party      339
Класс Price      56 58
Класс RegularPrice      57
Класс Rental      23 39 51
Класс Salesman      262
Класс Site      266
Класс Statement      350
Класс TextStatement      349
Класс большой      88—89
Классы      265
Классы альтернативные      97
Классы библиотечные неполные      97
Классы вместо кода типа      222— 228
Классы данных      93
Классы данных вместо записи      222
Классы данных вместо записи, мотивировка      222
Классы ленивые      94
Классы, встраивание      165—167
Классы, встраивание, мотивировка      165
Классы, встраивание, пример      167
Классы, встраивание, техника      166
Классы, выделение      161—165
Классы, выделение, мотивировка      162
Классы, выделение, пример      165
Классы, выделение, техника      162
Классы, перемещение поведения в      219—220
Код ошибки, замена исключительной ситуацией      312—317
Код ошибки, замена исключительной ситуацией, мотивировка      312
1 2 3
blank
Реклама
blank
blank
HR
@Mail.ru
       © Электронная библиотека попечительского совета мехмата МГУ, 2004-2024
Электронная библиотека мехмата МГУ | Valid HTML 4.01! | Valid CSS! О проекте