2011-03-22 64 views
7

我正在選擇Groovy和Grails的現有代碼庫,但是對於我來說,包的結構看起來很奇怪。Grails包結構

因爲他們把它放在後面的包裝com.company.domain則該類的控制器域類是com.company.controller

該結構似乎很關到我,因爲域控制器和類已經被組織在grails-app文件夾下的自己的文件夾下。

我的計劃是根據實際用途(如com.company.billing和com.company.util)重做軟件包和組。

我的計劃有什麼缺點嗎?我錯過了目前的包裝結構有什麼好處嗎?

回答

10

我認爲軟件包名稱應該分開屬於不同業務方面的代碼。對於例如購物網站,我建議:

  • com.mycompany.myfancywebsite.product所有產品相關的東西(例如產品領域類,ProductDetailController等)
  • com.mycompany.myfancywebsite.cart到所有的購物車相關的東西(如CartController,ShippingCostCalculationService等)
  • com.mycompany.myfancywebsite.payment所有支付相關的事情

恕我直言沒有意義用包名來區分代碼「類型」(如域控制器,服務......),這只是將n添加o對它的價值。

我也建議在軟件包名稱中謹慎使用util,這可能表示您的代碼不夠集中。

如需進一步閱讀,請參閱優秀書籍「Clean code」。另請參閱http://weblog.dangertree.net/2008/11/22/grails-package-naming/

+0

謝謝,我主要在那裏嘗試使用一些通用的util。 – 2011-03-22 13:40:57

+0

我檢查出它看起來很棒的鏈接,它明確地呼籲不要使用包的代碼類型。 – 2011-03-22 13:44:33

+2

+1表示「乾淨的代碼」..它真的是一本了不起的書:) – lucke84 2011-03-22 13:58:42