Git Hub
коротко
3 заметки с тегом

Refactoring

Запахи кода

24 октября 2017, 18:55

Раздувальщики

  • Длинный метод
  • Большой класс
  • Одержимость элементарными типами
  • Длинный список параметров/аргументов
  • Группы данных

Утяжелители изменений

  • Расходящиеся модификации
  • Стрельба дробью
  • Параллельные иерархии классов

Замусориватели

  • Комментарии
  • Дублирование кода
  • Ленивый класс
  • Класс данных
  • Мёртвый код
  • Теоретическая общность

Опутыватели связями

  • Завистливые функции
  • Неуместная близость
  • Цепочка вызовов
  • Посредник
Refactoring   Рефакторинг

Методы рефакторинга

24 октября 2017, 13:45

Временные абстрации
Временную переменную заменяем на вызов метода (выделение метода)

Refactoring   Рефакторинг

Предпосылки к рефакторингу

23 октября 2017, 2:16

Код повторяется
Метод слишком велик
Цикл слишком велик или слишком глубоко вложен в другие циклы
Класс имеет плохую связность
Интерфейс класса не формирует согласованную абстракцию
Метод принимает слишком много параметров
Отдельные части класса изменяются независимо от других частей
При изменении программы требуется параллельно изменять несколько классов
Вам приходится параллельно изменять несколько иерархий наследования
Вам приходится параллельно изменять несколько блоков case
Родственные элементы данных, используемые вместе, не организованы в классы
Метод использует больше элементов другого класса, чем своего собственного
Элементарный тип данных перегружен
Класс имеет слишком ограниченную функциональность
По цепи методов передаются бродячие данные
Объект посредник ничего не делает
Один класс слишком много знает о другом классе
Метод имеет неудачное имя
Данные члены сделаны открытыми
Подкласс использует только малую долю методов своих предков
Сложный код объясняется при помощи комментариев
Код содержит глобальные переменные
Перед вызовом метода выполняется подготовительный код (после вызова метода выполняется код «уборки»)
Программа содержит код, который может когда нибудь понадобиться

Refactoring