Многоразовое управление архитектурным кодом - PullRequest
3 голосов
/ 04 мая 2010

Наш код написан на Java и Javascript (библиотеки AJAX). У нас есть обертки / многократно используемый код вокруг существующих библиотек для выполнения рутинных задач, таких как: соединения с БД, управление сеансами, ведение журнала, настройки гибернации, базовая структура, некоторый многоразовый код для многопользовательской работы и т. Д. С конца JavaScript у нас есть инициализаторы страниц, компоненты макета пользовательского интерфейса , пользовательские объекты js и немного нашей собственной логики.

У нас есть несколько проектов, в которых этот код можно использовать повторно, но в то же время этот код развивается вместе с приложением. Поэтому, если мы найдем общий способ сделать это, мы можем переместить его в код инфраструктуры и позволить другим проектам также извлечь из этого пользу. Если / когда мы обнаружим ошибку в базовом коде, мы можем исправить ее в одном месте и зафиксировать, и все другие проекты получат изменения (а не все, кто вносит изменения локально).

Если это просто java-файлы, мы можем сохранить его как отдельный проект и включить его в качестве зависимого модуля в eclipse / maven и включить его в виде jar-файла по мере необходимости. Эта часть проста в обращении, но теперь у нас также есть повторно используемый javascript в коде, который точно не может быть jar (ed). Нам нужны некоторые предложения о том, как должен быть написан код, чтобы мы могли повторно использовать его через maven (время развертывания) и через eclipse (время разработки), не проходя слишком много циклов.

Прежде чем написать это, я наткнулся на несколько статей о stackoverflow, в которых действительно говорится о многократно используемом коде и методологиях, которые хороши, но не совсем так, как управлять ими с помощью svn, maven, eclipse и т. Д.

Связав их, для справки.

В некоторых наших старых проектах мы поддерживали ant-файлы, которые копировали файлы из базовых локаций в финальную войну, поэтому все было доступно. Но с течением времени по мере роста проекта, даже для простой проверки, нам пришлось перестраивать всю войну и развертывать для тестирования на компьютере разработчика. Который отнимал 5 минут каждый раз.

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

1 Ответ

0 голосов
/ 17 мая 2010

Я бы предложил использовать для таких задач компонентно-ориентированную веб-инфраструктуру Java. Калитка сразу приходит на ум. (Но JSF, Гобелен и т. Д. Будут работать одинаково хорошо)

В калитке все является компонентом, и компоненты могут быть упакованы с поведением (которое может включать в себя javascript, css и т. Д.)

Таким образом, у вас будет общий проект - проект, в котором вы поддерживаете повторно используемый код java и javascript.

Преимущества очевидны, это в значительной степени именно то, что вы просили. С другой стороны, недостатки заключаются в том, что содержимое javascript и css находится внутри ваших jar-файлов и будет обслуживаться сервером приложений, а не статическим веб-сервером или CDN.

Sean

...