Рефакторинг
Рефакторинг (англ. refactoring) — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы[1]. В основе рефакторинга лежит последовательность небольших эквивалентных (то есть сохраняющих поведение) преобразований. Поскольку каждое преобразование маленькое, программисту легче проследить за его правильностью, и в то же время вся последовательность может привести к существенной перестройке программы и улучшению её согласованности и четкости.
Зачем нужно проводить рефакторинг?
[править]- Рефакторинг улучшает композицию ПО
- Рефакторинг облегчает понимание ПО
- Рефакторинг помогает найти ошибки в ПО
- Рефакторинг позволяет быстрее реализовать ПО
Симптомы, когда нужно провести рефакторинг
[править]Рефакторинг полезно проводить в ряде определенных случаев. Если его своевременно не провести, это грозит ухудшением качества ПО, которое состоит в частности из хорошей декомпозиции кода, понимания кода, отсутствия ошибок, гибкости и скорости разработки (т.е. собственно того для чего проводится рефакторинг). Эти случаи практически можно принять как аксиомы, и лишь применяя рефакторинг станет ясно почему нужно придерживаться этих аксиом. Итак проблемы возникают когда:
- Дублируется код
- Существует длинный метод
- Существует большой класс
- Имеется длинный список параметров
- Имеются расходящиеся модификации
- Существует т.н. "стрельба дробью"
- Имеются "завистливые функции"
- Имеется класс "посредник"
- Между классами существует "неуместная близость"
- Существуют "классы данных" или "группы данных"
Примечания
[править]- ↑ Рефакторинг, М. Фаулер (2003), стр. 61-62