11.12.2018. Лекция №14. Рефакторинг (ч.3).
Решение задач обобщения
.
- Подъем поля (Pull up field).
- Подъем метода (Pull up method).
- Спуск метода (Push down method).
- Спуск поля (Push down field).
- Извлечение подкласса (Extract subclass).
- Извлечение суперкласса (Extract superclass).
- Извлечение интерфейса (Extract interface).
- Свертывание иерархии (Collapse hierarchy).
- Замена наследования делегированием (Replace Inheritance with delegation).
- Замена делегирования наследованием (Replace delegation with inheritance).
Раздувальщики (сode smells)
.
- Длинный метод (Long method).
- Большой класс (Large class).
- Одержимость элементарными типами (Primitive obsession).
- Длинный список параметров (Long parameter list).
- Группы данных (Data clumps).
Утяжелители изменений (code smells)
.
- Расходящиеся модификации (Divergent change).
- Стрельба дробью (Shotgun surgery).
Замусориватели (code smells)
.
- Комментарии (Comments).
- Дублирование кода (Duplicate code).
- Мертвый код (Dead code).
- Теоретическая общность (Speculate generality).
Опутыватели связями (code smells)
.
- Завистливые функции (Feature envy).
- Неуместная близость (Inappropriate intimacy).
- Цепочка вызовов (Message chains).
- Посредник (Middle man).
Действия