Комментарии 4
Встречал соотношение стоимости изменений 5:1 в разных проектах.
Число 500 (прописью: "пятьсот") с ошибкой написано.
P.S.: Ладно-ладно, такую дичь я всего лишь дважды вживую наблюдал. Один раз - в SCADA-системе, под управлением которой работали заводы в Германии, Канаде и Китае; вроде загнулась по итогу. Второй - крупный международный финтех, живущий и поныне; там ещё были классы в 65000 строк, методы в 2500 и строки, которые целиком помещались на 23"-экране только при масштабе 3%.
Очень классная статья. Затрагивает целый спектр проблем, связанных с легасм-кодом.
Как понять, что дешевле и удобнее сделать реинжениринг? Или проще написать проект с нуля на свежем техническом стейке, изредка просматривая в старый код и в старые постановки задач?
Ещё вопрос - как часто следует делать реинжениринг?
И как с помощью реинжениринга отследить ветки кода, которые уже больше не используются? В легаси проекте условно может быть до 30% кода, который вообще уже устарел и никогда не используется при обработке данных, так как что-то поменялось.
что дешевле и удобнее сделать реинжениринг? Или проще написать проект с нуля на свежем техническом стейке, изредка просматривая в старый код и в старые постановки задач?
И то и другое дорого. Стоимость примерно равна стоимости создания старой плюс стоимость её сопровождения и доработок за все годы.
Плюс рефакторинга
делается механически
старый конь борозды не испортит, но и глубоко не вспашет ©
Плюс реинжиниринга:
можно переписать только часть
можно смотреть на старый код и тестами проверять что поведение новой части в точности совпадает с поведением старой, даже если оно кажется странным, это не сломает контракты, интеграцию, пользовательский опыт
Плюс переписывания:
можно не тащить совместимость поведения, но пользователей переобучать, интеграцию проверять
требований меньше, код проще, иногда в разы
И как с помощью реинжениринга отследить ветки кода, которые уже больше не используются?
В общем случае никак. Если код не использовался нет гарантий что он не будет использоваться потом. Но если код отключили это видно: нет входящей цепочки вызовов.


Рефакторинг и реинжиниринг легаси