Сопоставление Liferay ServiceBuilder с другими инструментами генерации кода, такими как AndroMDA

Я начал копаться в фреймворке liferay 6.x ServiceBuilder и мне очень понравился его подход к генерации кода. Простой файл service.xml может генерировать готовые к использованию мощные сервисы даже без написания одной строки кода.

Я также попытался изучить AndroMDA, которая может генерировать аналогичные сервисы из модели UML, что звучит еще более интересно, поскольку она будет напрямую связывать мою бизнес-модель, и мне не нужно будет изучать новую конфигурацию xml для service.xml (в случае liferay ServiceBuilder)

Сейчас я нахожусь в процессе принятия решения, какой инструмент использовать. Исходя из вашего опыта работы с любым из этих инструментов, пожалуйста, дайте мне знать, каковы плюсы / минусы использования любой из этих библиотек,

Мне интересно знать эти аспекты, а также ваши собственные мысли

  1. Что лучше для поддержания моей продуктивности в долгосрочной перспективе.
  2. Если я использую ServiceBuilder, я смогу использовать службы вне env портала (скажем, запуск той же службы с сервера приложений, не являющегося порталом).
  3. Всегда ли UML-ориентированный подход хорош или есть некоторые практические минусы / проблемы?
  4. Знаете ли вы о какой-либо другой библиотеке генерации кода, которая лучше этих двух для разработки liferay 6.x? Я также проверил эти темы

2 ответа

Следующие несколько проблем, с которыми я столкнулся при работе с Servicebuilder (я использую liferay 5.2.3):

  1. Не в состоянии использовать ORM Framework. Нет способа создать отношения между объектами. Из-за этого я эффективно работаю только объектным картографом. Это не порождает один вид отношений
  2. Не может использовать базовые объектно-ориентированные вещи, такие как наследование с доменом или сервисами
  3. Довольно сложно писать тестовые примеры
  4. Я так и не понял, зачем нужна сложная доменная структура
  5. Я чувствую, что код, который он генерирует, может быть быстро написан с использованием IDE

Но, безусловно, у него есть свои преимущества, как сказал Эгар, он специально создан для Liferay. Так что он может быстро сгенерировать все, что нужно для liferay. Я слышал, что в последних версиях liferay исправлены некоторые из вышеперечисленных проблем.

В целом, это зависит от ваших требований. Если вам нужен больший контроль над уровнем ORM и у вас сложная бизнес-логика, требующая большого количества модульного тестирования, выберите обычные весенние сервисы, которые могут быть представлены в виде веб-сервисов или сервисов REST для ваших портлетов.

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

Есть важный факт, о котором вы должны знать. ServiceBuilder был использован для построения самого портала, и он тесно интегрирован в него. Вы не можете использовать его вне Liferay... Я имею в виду, что, вероятно, его можно было бы взять и изменить для общего использования, но я сомневаюсь, что это имело бы смысл.

Самое главное, потому что Portal и каждый разрабатываемый плагин имеют свой собственный контекст веб-приложения в контейнере сервлета - у каждого есть свой загрузчик классов. Плагины используют Portal Classloader и службы портала и т. Д. И т. Д.

Проще говоря, сгенерированный код ServiceBuilder и контекст Spring могут существовать, только если есть веб-приложение /ROOT/, которое представляет собой Liferay Portal с загрузчиком классов портала и т. Д.

AndroMDA - это платформа MDA для общего пользования. Я не очень много знаю, так что я не собираюсь сравнивать. Сила ServiceBuilder заключается в том, что он не является платформой для общего использования - тем мощнее он для разработки плагинов Liferay.

Другие вопросы по тегам