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