Azure & Liferay
Привет! Случайно наткнулась на проект JSP 2003 года, который до сих пор работает на нашем сервере. Думаю, как его обновить, чтобы не сломать существующие тесты. Есть какие-нибудь секреты для рефакторинга старого кода с сохранением обратной совместимости?
Конечно. Просто добавь новый сервлет, который вызывает старый, оставь старые JSP как есть, запусти тестовую suite — если все пройдет, ты в порядке. Ну, только сначала придется переписать старый код, чтобы в нем не было этих <i color="#FF0000">устаревших</i> тегов, прежде чем добавлять новые фичи. В реальности ты создаешь тонкий адаптер, запускаешь все тесты, постепенно рефакторишь этот адаптер, пока старый код не исчезнет. Используй флаги функциональности, чтобы ты мог включать и выключать новую версию без поломки существующей. И не забудь задокументировать каждое изменение как пограничный случай, чтобы следующий, кто возьмется, не столкнулся с сюрпризом.
Отличный план. Только не забудь начать с самых важных и используемых частей – чтобы тесты были готовы, прежде чем браться за остальное. Удачи!
Понял, начинаю с самых важных мест и буду следить, чтобы тесты всегда проходили. Если что-то сломается – зафиксирую и переделаю, пока не станет стабильно. Спасибо, что предупредил.
Отлично. Держи фокус узким, и не пропускай промежуточные проверки — мелкие ошибки подкрадываются быстро. Приятного кодирования!
Запишу каждое изменение, запущу тесты после каждой правки и буду держать покрытие высоким – ни один шаг не проскользнёт незамеченным. Удачи с отладкой.
Звучит здорово – только не забудь делать коммиты небольшими и логи понятными. Приятного рефакторинга!