Обновить

Комментарии 4

Встречал соотношение стоимости изменений 5:1 в разных проектах.

Число 500 (прописью: "пятьсот") с ошибкой написано.

P.S.: Ладно-ладно, такую дичь я всего лишь дважды вживую наблюдал. Один раз - в SCADA-системе, под управлением которой работали заводы в Германии, Канаде и Китае; вроде загнулась по итогу. Второй - крупный международный финтех, живущий и поныне; там ещё были классы в 65000 строк, методы в 2500 и строки, которые целиком помещались на 23"-экране только при масштабе 3%.

Очень классная статья. Затрагивает целый спектр проблем, связанных с легасм-кодом.

Как понять, что дешевле и удобнее сделать реинжениринг? Или проще написать проект с нуля на свежем техническом стейке, изредка просматривая в старый код и в старые постановки задач?

Ещё вопрос - как часто следует делать реинжениринг?

И как с помощью реинжениринга отследить ветки кода, которые уже больше не используются? В легаси проекте условно может быть до 30% кода, который вообще уже устарел и никогда не используется при обработке данных, так как что-то поменялось.

что дешевле и удобнее сделать реинжениринг? Или проще написать проект с нуля на свежем техническом стейке, изредка просматривая в старый код и в старые постановки задач?

И то и другое дорого. Стоимость примерно равна стоимости создания старой плюс стоимость её сопровождения и доработок за все годы.

Плюс рефакторинга

  • делается механически

  • старый конь борозды не испортит, но и глубоко не вспашет ©

Плюс реинжиниринга:

  • можно переписать только часть

  • можно смотреть на старый код и тестами проверять что поведение новой части в точности совпадает с поведением старой, даже если оно кажется странным, это не сломает контракты, интеграцию, пользовательский опыт

Плюс переписывания:

  • можно не тащить совместимость поведения, но пользователей переобучать, интеграцию проверять

  • требований меньше, код проще, иногда в разы

И как с помощью реинжениринга отследить ветки кода, которые уже больше не используются?

В общем случае никак. Если код не использовался нет гарантий что он не будет использоваться потом. Но если код отключили это видно: нет входящей цепочки вызовов.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации