Grails包结构

Grails包结构,grails,packages,Grails,Packages,我选择了Groovy和Grails这两个现有的代码库,但是包结构对我来说非常奇怪 对于域类,他们将其放入以下包com.company.domain中,然后对于该类的控制器,它是com.company.controller 这种结构对我来说似乎很不合适,因为域和控制器类已经组织在grails app文件夹中它们自己的文件夹下 我的计划是根据实际使用情况重做包和组,例如com.company.billing和com.company.util 我的计划有什么缺点吗?当前的包结构有什么好的方面是我缺少的

我选择了Groovy和Grails这两个现有的代码库,但是包结构对我来说非常奇怪

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

这种结构对我来说似乎很不合适,因为域和控制器类已经组织在grails app文件夹中它们自己的文件夹下

我的计划是根据实际使用情况重做包和组,例如com.company.billing和com.company.util


我的计划有什么缺点吗?当前的包结构有什么好的方面是我缺少的吗?

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

  • com.mycompany.myfancywebsite.product
    到所有与产品相关的内容(例如产品域类、ProductDetailController等)
  • com.mycompany.myfancywebsite.cart
    到所有与购物车相关的东西(例如CartController、ShippingCostCalculationService等)
  • com.mycompany.myfancywebsite.payment
    所有与支付相关的东西
尽管使用包名来区分代码的“类型”(例如域、控制器、服务…)没有意义,但这只是没有增加任何价值

我还建议在包名中小心地使用
util
,这可能表明您的代码没有得到足够的关注


要进一步阅读,请参阅优秀的书籍“Clean code”。另请参见

谢谢,我主要是将util放在那里,尝试使用一些通用的东西。我查看了链接,它看起来很棒,并且它确实明确指出不要对代码类型使用包。+1表示建议“干净的代码”。。这真是一本了不起的书:)上面的链接已被删除。这是存档链接