Pull to refresh

Отличия рефакторинга от переписывания

Рефакторинг — это изменение с сохранением поведения. Также, пишут что это именно небольшое изменение, а большое — это реинжиниринг. Я бы скорее акцентировал внимание, что это изменение в замкнутой области.

Основное отличие от переписывания — внесённые изменения не требуют менять смежные модули, которые не подвергались рефакторингу.

Примерно как ремонт квартиры — после ремонта окна и двери стоят на том же месте, несущие стены и коммуникации не затронуты, а внутри стало приятнее.

И тут же признаки того, что рефакторинг пошёл не по плану:

  • Забыли какой‑то ранее работающий функционал.

  • Полезли ошибки в других местах.

При правильном планировании и последовательном проведении рефакторинга допустить такие ошибки довольно сложно.

План работ определяет область для изменений и её границы, в результате получаем набор точек (методов), которые останутся неизменными. Это границы изменяемого кода.

Если внешние обращения изменяются, иногда бывает полезным новый код писать отдельно от старого, и главная фишка тут в том, что можно по готовности переключать пограничные точки со старого кода на новый. А перед удалением старого кода ещё раз проверить, что весь старый код отключили и ничего не упустили.

Таким образом, в каждый момент времени код сохраняет свою работоспособность и не теряет связанности.

Total votes 3: ↑3 and ↓0+3
Comments0

Articles