Как заставить другие команды разработчиков создавать свои собственные бизнес-компоненты в виде тегов jsp, избегая при этом зависимостей? - PullRequest
0 голосов
/ 01 июля 2018

Я не уверен, является ли это принципиальным вопросом дизайна или нет, но я не смог найти решение. Я работаю в команде разработчиков фреймворка, которая отвечает за предоставление фреймворка элементов пользовательского интерфейса для всех остальных групп разработчиков программного обеспечения в нашей компании. У нас есть одностраничное веб-приложение, в котором каждая команда может разработать свой собственный модуль. Таким образом, после входа в систему, если пользователь хочет найти клиента, он видит страницы из приложения crm. Тогда, скажем, она хочет проверить остатки на счетах этого клиента, а затем ответит приложение Controllers in teller. Все проекты построены в Spring mvc, и мы создаем теги jsp, такие как переключатели, флажки со всеми необходимыми атрибутами и готовые к использованию методы Javascript. Однако, так как многие команды присоединяются, им нужно создавать свои собственные теги, особенно бизнес-теги, которые будут созданы путем объединения простых тегов, которые мы предлагаем. У нас есть общий Java-проект, в котором все теги определены в tld-файле, и они (все другие команды разработчиков) добавляют jar-файл этого проекта как maven-зависимость к своим собственным веб-проектам. Кстати, у каждой команды есть свой весенний проект MVC. Например, у казначейской команды есть свой собственный проект Java, который добавляет наш общий проект в качестве зависимости. Таким образом, они могут использовать теги, которые мы разрабатываем, в своих файлах jsp. Поскольку существует файл tld, атрибуты четко определены ниже:

<mycompany:photoTag id=“photoTag” photoSource=“{urlComingFromServer}” />

Но что нам делать, если самой казначейской команде необходимо разработать собственный тег с собственными бизнес-процессами и услугами? Мы подумали, что есть некоторые альтернативы, но мы абсолютно не уверены. Во-первых, у каждой команды может быть свой общий проект. Разрабатывая собственные страницы в своем веб-проекте, они могут перемещать бизнес-теги в общий проект. Но это создаст сложные зависимости, такие как команда crm зависит от команды кассира для своего тега, и, возможно, кассир будет зависеть от другой команды. Другая проблема заключается в том, что при разработке проекта мне не нужно загружать все источники, связанные с тегом выбора учетной записи, в мое рабочее пространство, если я использую тег выбора учетной записи из модуля Teller. Как мы можем создать среду, в которой каждый командный / бизнес-модуль может независимо создавать свой собственный тег jsp, который может легко использоваться любой другой командой в компании?

Спасибо.

1 Ответ

0 голосов
/ 13 июля 2018

Таким образом, концепция довольно проста, поскольку у вас есть система управления зависимостями. Вы можете сделать так, чтобы ваша компания принимала хранилище артефактов, скажем, Sonar Nexus. Каждый разработчик должен иметь этот экземпляр Nexus в качестве своего репозитория выпуска в своем settings.xml.

Скажите, что команда A имеет 2 модуля core и common-taglib, которые core являются их внутренним кодом ядра, а common-taglib предназначены для обмена с другой командой. Они могли бы просто опубликовать артефакт common-taglib в нексусе.

И теперь команда B хочет использовать common-taglib, они могут просто включить taglib в качестве зависимости в pom.xml

<dependency>
    <groupId>your.organization.teama</groupId>
    <artifactId>common-taglib</artifactId>
    <version>1.1.0</version>
<dependency>

При этом они могут даже иметь некоторый контроль версий в управлении релизами. Это был бы полезный блог post . Он использует артефакт JFrog, но концепция такая же, как у apache archive и sonatype nexus

...