我正在使用Groovy和Grails的现有代码库,但是对我来说包结构似乎很奇怪。
对于域类,他们将它放在com.company.domain的以下包中,然后对于该类的控制器,它是com.company.controller
由于域和控制器类已经在grails-app文件夹中的自己的文件夹下组织,因此该结构对我来说非常不合适。
我的计划是根据实际用途重做软件包和组,例如com.company.billing和com.company.util。
我的计划有任何不利之处吗?我缺少当前的包结构有什么好处吗?
答案 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/