Лучшая практика для модульного большого приложения Grails? - PullRequest
8 голосов
/ 23 мая 2010

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

Как лучше распределить приложение Grails на несколько модулей? В частности, я хотел бы создать пакет классов домена + соответствующие сервисы и использовать его в приложении в качестве модуля. Это возможно? Возможно ли это сделать с помощью плагинов ?

Ответы [ 3 ]

9 голосов
/ 23 мая 2010

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

 grails.plugin.location."<plugin-name>" = "<path to plugin dir>" 

на ваше приложение grails-app/conf/BuildConfig.groovy. При этом вам больше не нужно запускать package-plugin и install-plugin после каждой модификации внутри плагина.

Подробнее об использовании плагинов см. Справочные документы Grails или одну из доступных книг: «Полное руководство по Grails» или «Grails в действии». Оба абсолютно стоят своих затрат.

4 голосов
/ 23 мая 2010

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

Да, вы сэкономите немного времени из-за кэшированияплагин для цели развертывания, но вы заплатите за это дополнительными сложностями в коде, тестировании и управлении версиями самих плагинов.

Тем не менее, я делаю думаю поставитьплагин domain + services - хороший модуль для повторного использования - мы только что сделали это, - но он более вреден, чем помог с развертыванием проблем.

IMO, «лучшая практика» дляБольшое приложение Grails должно было бы подумать о том, чтобы разделить приложение на более мелкие приложения с помощью связи либо через базу данных, либо через memcache, либо через какую-то форму обмена сообщениями.eaner для «не нужно заново развертывать все» и стремится к лучшей масштабируемости.Используйте плагины в каждом приложении, где требуется повторное использование кода / дизайна или изоляция схемы, и их будет достаточно для повторного использования, чтобы оправдать различные издержки.

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

Согласен, плагины являются приемлемым способом сделать это. Это поможет вам управлять вашим графом зависимостей кода и разбить ваше приложение на разделы, которые легче протестировать и понять самостоятельно. Тем не менее, при развертывании плагины по-прежнему должны объединяться в одно приложение. Я не уверен, какой шаблон вы ищете для развертывания.

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