Рефакторинг — различия между версиями

(Новая страница: «'''Рефакторинг''' (англ. refactoring), или перепроектирование кода, переработка кода, равносильн…»)
 
 
Строка 22: Строка 22:
 
* Замена кода стек в рекурсию и обратно;
 
* Замена кода стек в рекурсию и обратно;
  
[[:Категория: Практики]]
+
[[Категория: Практики]]

Текущая версия на 18:17, 17 августа 2019

Рефакторинг (англ. refactoring), или перепроектирование кода, переработка кода, равносильное преобразование алгоритмов — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. В основе рефакторинга лежит последовательность небольших эквивалентных (то есть сохраняющих поведение) преобразований. Поскольку каждое преобразование маленькое, программисту легче проследить за его правильностью, и в то же время вся последовательность может привести к существенной перестройке программы и улучшению её согласованности и чёткости.

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

Наиболее употребимые методы рефакторинга:

  • Изменение сигнатуры метода (change method signature);
  • Инкапсуляция поля (encapsulate field);
  • Выделение класса (extract class);
  • Выделение интерфейса (extract interface);
  • Выделение локальной переменной (extract local variable);
  • Выделение метода (extract method);
  • Генерализация типа (generalize type);
  • Встраивание (inline);
  • Введение фабрики (introduce factory);
  • Введение параметра (introduce parameter);
  • Подъём метода (pull up method);
  • Спуск метода (push down method);
  • Переименование метода (rename method);
  • Перемещение метода (move method);
  • Замена условного оператора полиморфизмом (replace conditional with polymorphism);
  • Замена наследования делегированием (replace inheritance with delegation);
  • Замена кода типа подклассами (replace type code with subclasses);
  • Замена кода стек в рекурсию и обратно;