2011-08-09 2 views
6

저는 웹 응용 프로그램을 만드는 일반적인 MVC 방식을 보려고 시작했으며 DDD (Domain Driven Design)를 살펴 보았습니다. 혼자 Models있는에서내 DDD 기반 웹 응용 프로그램의 디렉토리 구조 구성?

, 지금 작업하는 내 응용 프로그램에 Collections, Entities, DataMappers & Repositories 있습니다. 본격적인 분리 및 모듈성,하지만 지금은 내 디렉토리 구조는하지만 완전히 엉망이다!

DDD 응용 프로그램을 사용한 적이 한번도 없었으므로 필자의 파일 구조를 구성하는 방법에 대해서는 거의 알지 못합니다.

다음은 적절한 디렉토리 구조입니까?
참고 : PHP5를 사용하고 있지만이 질문은 언어에 구애받지 않습니다.

/application 
    /common 
     /libraries 
     /helpers 
    /temp 
     /cache 
    /domain 
     /collections 
     /entities 
     /datamappers 
     /repositories 
    /ui 
     /controllers 
     /view 

답변

5

는 나는 그들이,에 어떤 레이어가을보다는 무엇 로 모듈을 분리하는 것입니다, 그 말이 생각하지만 것입니다. 당신이 인증 및 인쇄 모듈을 원하는 경우 예를 들어,이 구조에서,이 같은 아마 뭔가 것 :

/common 
     /helpers 
      /Authentication 
       /AuthenticationService.php 
      /Printing 
       /PrintingService.php 
    /domain 
     /entities 
      /Authentication 
       /Identity.php 
      /Printing 
       /Printer.php 
     /datamappers 
      /Authentication 
       /IdentityDataMap.php 
      /Printing 
       /PrinterDataMap.php 

이 같은 시스템에서 일하면서을, 나는 한 가지, 그것은 매우 어려워지고 말할 수있다 인간이 레이어에서 작업하고 있기 때문에 모듈 간의 경계를 인터 메싱으로 유지하고 레이어를 모두 함께 생각하는 것입니다. 조직적인 관점에서 볼 때, 특정 모듈로 작업하기 위해 3 개의 루트 레벨 디렉토리를 열지 않아도되는 것을 좋아하지 않습니다. 우리는 프로젝트를 디렉토리로 정리하여 컴파일러가 아닌 우리가 쉽게 처리 할 수 ​​있도록합니다.

내가 다시하고 있었다면, 나는 한 층에 UI 코드, 한 수준, 다른 것으로 비즈니스 코드를 레이어로 나누어 그 다음에 모듈별로 구분하여 을 구분할 수있었습니다. 내가 생각하는 잡종의 그 이상. 그러나 아마도 그것을 위해 더 좋을 것이다.

/domain 
     /Printing 
      /entities 
      /datamappers 
      /repositories 
     /Auth 
      /entities 
      /datamappers 
      /repositories 
    /ui 
     /controllers 
     /view 
+6

값 개체는 어디에 넣으시겠습니까? – n3wb

관련 문제