Рефакторинг — различия между версиями
Admin (обсуждение | вклад) (Новая страница: «'''Рефакторинг''' (англ. refactoring), или перепроектирование кода, переработка кода, равносильн…») |
Admin (обсуждение | вклад) |
||
Строка 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);
- Замена кода стек в рекурсию и обратно;