Рефакторинг

Материал из Викиверситета

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

Зачем нужно проводить рефакторинг?[править]

  1. Рефакторинг улучшает композицию ПО
  2. Рефакторинг облегчает понимание ПО
  3. Рефакторинг помогает найти ошибки в ПО
  4. Рефакторинг позволяет быстрее реализовать ПО

Симптомы, когда нужно провести рефакторинг[править]

Рефакторинг полезно проводить в ряде определенных случаев. Если его своевременно не провести, это грозит ухудшением качества ПО, которое состоит в частности из хорошей декомпозиции кода, понимания кода, отсутствия ошибок, гибкости и скорости разработки (т.е. собственно того для чего проводится рефакторинг). Эти случаи практически можно принять как аксиомы, и лишь применяя рефакторинг станет ясно почему нужно придерживаться этих аксиом. Итак проблемы возникают когда:

  1. Дублируется код
  2. Существует длинный метод
  3. Существует большой класс
  4. Имеется длинный список параметров
  5. Имеются расходящиеся модификации
  6. Существует т.н. "стрельба дробью"
  7. Имеются "завистливые функции"
  8. Имеется класс "посредник"
  9. Между классами существует "неуместная близость"
  10. Существуют "классы данных" или "группы данных"



Примечания[править]

  1. Рефакторинг, М. Фаулер (2003), стр. 61-62