2011-03-22 3 views
7

Groovy와 Grails 인 기존 코드베이스를 선택하고 있지만 패키지 구조가 이상하게 보입니다. 그들이 그 클래스의 컨트롤러에 대해 다음 패키지 com.company.domain에 넣어 도메인 클래스에 대한Grails 패키지 구조체

그것은 그 구조가 도메인 컨트롤러 때문에 매우 나에게 떨어져 보인다 com.company.controller

입니다 클래스는 이미 grails-app 폴더에있는 자신의 폴더 아래에 구성되어 있습니다.

내 계획은 com.company.billing 및 com.company.util과 같은 실제 사용을 기반으로 패키지와 그룹을 다시 실행하는 것입니다.

내 계획에 어떤 단점이 있습니까? 누락 된 현재 패키지 구조에 대해 좋은 점이 있습니까?

답변

10

패키지 이름은 다른 비즈니스 측면에 속하는 코드를 구분해야한다고 생각합니다. 예 : 쇼핑 웹 사이트는 내가 권하고 싶습니다 :

  • com.mycompany.myfancywebsite.product 모든 제품 관련 물건에 (예를 들어, 제품 도메인 클래스, ProductDetailController 등) 모든 쇼핑 카트와 관련된 물건 (예를 들어 CartController, ShippingCostCalculationService 등)에
  • com.mycompany.myfancywebsite.cart
  • 모든 지불과 관련된 것들
  • com.mycompany.myfancywebsite.payment
  • 이럴

는 코드의 "유형"을 구분하는 패키지 이름을 사용하는 이해가되지 않습니다 (예 : 도메인 컨트롤러, 서비스 ...),이 단순히 N 추가 그것에 가치.

또한 패키지 이름에 util을 신중하게 사용하는 것이 좋습니다. 이는 코드에 충분한 초점이 맞춰지지 않았 음을 나타내는 기호 일 수 있습니다.

자세한 내용은 우수 도서 "코드 삭제"를 참조하십시오. 또한 참조 http://weblog.dangertree.net/2008/11/22/grails-package-naming/

+0

고마워, 나는 거기에 일반적으로 무언가를 시도하고 사용하는 유틸리티 던져 버렸어. –

+0

링크가 멋지게 보이고 코드 유형에 맞는 패키지를 사용하지 않도록 명시 적으로 설명합니다. –

+2

+1 "깨끗한 코드"제안 ... 정말 놀라운 책입니다 :) – lucke84