3 заметки с тегом
Refactoring
24 октября 2017, 18:55
Раздувальщики
- Длинный метод
- Большой класс
- Одержимость элементарными типами
- Длинный список параметров/аргументов
- Группы данных
Утяжелители изменений
- Расходящиеся модификации
- Стрельба дробью
- Параллельные иерархии классов
Замусориватели
- Комментарии
- Дублирование кода
- Ленивый класс
- Класс данных
- Мёртвый код
- Теоретическая общность
Опутыватели связями
- Завистливые функции
- Неуместная близость
- Цепочка вызовов
- Посредник
24 октября 2017, 13:45
Временные абстрации
Временную переменную заменяем на вызов метода (выделение метода)
23 октября 2017, 2:16
Код повторяется
Метод слишком велик
Цикл слишком велик или слишком глубоко вложен в другие циклы
Класс имеет плохую связность
Интерфейс класса не формирует согласованную абстракцию
Метод принимает слишком много параметров
Отдельные части класса изменяются независимо от других частей
При изменении программы требуется параллельно изменять несколько классов
Вам приходится параллельно изменять несколько иерархий наследования
Вам приходится параллельно изменять несколько блоков case
Родственные элементы данных, используемые вместе, не организованы в классы
Метод использует больше элементов другого класса, чем своего собственного
Элементарный тип данных перегружен
Класс имеет слишком ограниченную функциональность
По цепи методов передаются бродячие данные
Объект посредник ничего не делает
Один класс слишком много знает о другом классе
Метод имеет неудачное имя
Данные члены сделаны открытыми
Подкласс использует только малую долю методов своих предков
Сложный код объясняется при помощи комментариев
Код содержит глобальные переменные
Перед вызовом метода выполняется подготовительный код (после вызова метода выполняется код «уборки»)
Программа содержит код, который может когда нибудь понадобиться
Refactoring