Какой-нибудь быстрый способ конвертировать зараженное скриптлетом JSP-приложение в Struts? - PullRequest
1 голос
/ 10 марта 2009

У нас есть устаревшее приложение для поддержки. Это чистый JSP, т. Е. JSP открывает соединения, выполняет бизнес-логику, отправляет формы (обычно в один и тот же JSP) и так далее. Это более 400 страниц, причем некоторые страницы достигают 100 КБ.

Ожидается, что приложение будет расширено и модифицировано в течение следующих нескольких лет, поэтому мы ищем способы разделить презентацию и бизнес-логику, чтобы упростить обслуживание. Как минимум, мы бы хотели перенести его в простую инфраструктуру MVC (Struts - кандидат № 1).

Никто не с энтузиазмом реорганизует каждую страницу вручную. У нас была идея, что где-то может быть инструмент, который выполняет хотя бы частичный рефакторинг, например, создает ActionForm на основе вызовов request.getParameter () в JSP, перемещает весь код Java в Action (хотя и не компилируется), заменяет некоторые «<% if» на теги <c: if и т. д. </p>

Оставшаяся работа все еще очень скучна, но, по крайней мере, имеет гораздо меньшую область применения.

Кто-нибудь знает такой инструмент?

1 Ответ

4 голосов
/ 10 марта 2009

Не думаю, что оно того стоит. Вы говорите, что у вас есть 400+ страниц с более чем 100k?

100k !!!

Вероятно, лучший подход - провести хороший анализ этого веб-приложения и модульно его упорядочить. Вы можете иметь совершенно новые модули, написанные на других платформах, и при этом использовать их вместе.

Для страниц размером 100 КБ они являются хорошими кандидатами для своих собственных модулей.

На самом деле я не вижу никакого преимущества в простом переводе всего беспорядка JSP в какой-то другой фреймворк. То, что случится, - то, что это просто сломается на части, и никому не захочется их починить.

Хорошая часть? Какие модули пойдут первыми? Что другое не должно измениться?

Я бы начал с тех, у кого было больше изменений за последние месяцы. Тот факт, что размер файла составляет 100 КБ, означает лишь необходимость добавления новых функций, но модель была настолько плохо спроектирована, что вместо создания новых объектов некоторый код просто копировался / вставлялся и помещался с помощью if (я почти чувствую, что уже видел ваш код) и файл растет и растет.

Некоторые части, кажется, легко переносятся, но источник контроля сообщает, что никто не трогал в течение 2 лет. Оставь их.

Больше, чем просто использование хорошего фреймворка. Вы должны перенести и переписать наиболее уязвимые части системы, и на этот раз создать контрольные примеры.

Кроме того, вы должны создать стиль проекта и автоматически проверить его с помощью чего-то вроде checkstyle, чтобы никто не отправлял новые быстрые патчи.

В конце концов, не все приложение будет перенесено, но новые изменения будут проще выполнять, а приложение будет проще в обслуживании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...