Grails包结构

时间:2011-03-22 13:10:49

标签: grails packages

我正在使用Groovy和Grails的现有代码库,但是对我来说包结构似乎很奇怪。

对于域类,他们将它放在com.company.domain的以下包中,然后对于该类的控制器,它是com.company.controller

由于域和控制器类已经在grails-app文件夹中的自己的文件夹下组织,因此该结构对我来说非常不合适。

我的计划是根据实际用途重做软件包和组,例如com.company.billing和com.company.util。

我的计划有任何不利之处吗?我缺少当前的包结构有什么好处吗?

1 个答案:

答案 0 :(得分:10)

我认为软件包名称应该将属于不同业务方面的代码分开。对于例如一个购物网站,我建议:

  • com.mycompany.myfancywebsite.product所有与产品相关的内容(例如Product domain class,ProductDetailController等)
  • com.mycompany.myfancywebsite.cart与所有购物车相关的内容(例如CartController,ShippingCostCalculationService等)
  • com.mycompany.myfancywebsite.payment所有与付款相关的内容

恕我直言,使用包名来区分代码的“类型”(例如域,控制器,服务......)是没有意义的,这根本不会给它增加任何价值。

我还建议您在软件包名称中谨慎使用util,这可能表明您的代码没有集中注意力。

如需进一步阅读,请参阅优秀的书籍“清洁代码”。另请参阅http://weblog.dangertree.net/2008/11/22/grails-package-naming/