Рефакторинг тема как известно тонкая, поэтому сразу скажу - к переписыванию работающего продакшен-кода я отношусь
отрицательно, как бы это не называлось. Правило "работает - не трогает" достаточно хорошо проверено временем.
Сейчас постараюсь пояснить, как мыслю. Представьте, что мы на оси времени находимся
в точке А. Единственная объективная реальность - это тот код, который сейчас находится на продакшене
(этим кстати мне нравится гитхаб-флоу, мастер - всегда в продакшене, в ветках -
что хочешь то и делаешь, дело личное, точка опасности - мерж пул реквеста в мастер). Так вот в точке
А, глядя на наш продакшен, мы видим проблемы кода и всегда примерно понимаем как выглядит точка B,
в которой сегодняшний функционал был бы "идеально" выражен в коде.
Я уверен, что большая ошибка начинать движение в точку B (в принципе это и есть рефакторинг -
изменение кодовой базой без изменения функционала). Время то движется вперед
и вы оказываетесь в точке C с устаревшим кодом ("идеальным" кодом на момент A). В процессе движения
выяснится, что точка B - тоже не совсем хороша. В голове - идея была хорошая, а в
реализации оказалось не очень. Тогда начинаете движение в точку B', потом в B'' и так далее. Поэтому переписывание
продакшен кода в моей системе ценности - в большинстве случаев ошибка, это работа на прошлое.
Что я предлагаю вместо этого. Допустим мы продолжим пилить новые фичи как сегодня. То наш код
шатко-валко, вместе с нами, доползет до точки C. И для этого горемыки, так же будет
"идеальный" код - точка D. Естественно это не точка (как и впрочем все остальные точки - не точки), это
облачко возможных хороших реализаций той системы, которая будет в момент C.
Так вот я твердо уверен, что нужно менять не сегодняшний работающий код, а менять
привычки, которые приведут проект в более здоровую точку D.
У меня есть такая аналогия. Допустим человек решил привести себя в форму. Можно поступить хирургически, радикально. Быстро - но
много побочных эффектов, жесткий отходняк. Либо человек меняет привычки: разбирается с режимом дня,
правильно питается, регулярно занимается в зале.
То есть
по факту он ведет себя уже, прямо сейчас, как здоровый человек, но сегодняшнее состояние пока не очень.
Поэтому, как бы код не был плох, я считаю,
что нужно прежде всего разобраться какие привычки довели его до такого состояния и что нужно поменять, чтобы привести его
со временем в порядок.