Структура пакета Grails - PullRequest
       11

Структура пакета Grails

7 голосов
/ 22 марта 2011

Я подбираю существующую кодовую базу Groovy и Grails, но структура пакета мне кажется очень странной.

Для класса домена они помещают его в следующий пакет com.company.domain, затем для контроллера этого класса это com.company.controller

Мне кажется, что эта структура мне не подходит, поскольку классы домена и контроллера уже организованы в свои собственные папки в папке grails-app.

Мой план состоит в том, чтобы повторить пакеты и группы на основе фактического использования, например com.company.billing и com.company.util.

Есть ли недостатки в моем плане? Есть ли что-то хорошее в текущей структуре пакета, которое мне не хватает?

1 Ответ

10 голосов
/ 22 марта 2011

Я думаю, что имена пакетов должны разделять код, относящийся к различным аспектам бизнеса. Например, сайт покупок, я бы порекомендовал:

  • com.mycompany.myfancywebsite.product ко всем материалам, связанным с продуктом (например, класс домена продукта, ProductDetailController и т. Д.)
  • com.mycompany.myfancywebsite.cart ко всем материалам, связанным с корзиной (например, CartController, ShippingCostCalculationService и т. Д.)
  • com.mycompany.myfancywebsite.payment ко всем вещам, связанным с оплатой

ИМХО не имеет смысла использовать имена пакетов для различения "типа" кода (например, домен, контроллер, служба ...), это просто не добавляет к нему никакого значения.

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

Подробнее читайте в превосходной книге «Чистый код». Также см. http://weblog.dangertree.net/2008/11/22/grails-package-naming/

...