소스 검색

Improved doumentation.

peter_backlund 17 년 전
부모
커밋
eac5d00a8c
3개의 변경된 파일29개의 추가작업 그리고 13개의 파일을 삭제
  1. 14
    10
      dddsample/src/site/apt/architecture.apt
  2. 5
    3
      dddsample/src/site/apt/characterization.apt
  3. 10
    0
      dddsample/src/site/apt/index.apt

+ 14
- 10
dddsample/src/site/apt/architecture.apt 파일 보기

10
 
10
 
11
   There are three vertical layers: interfaces, application and domain, each supported by different kinds of infrastructure.
11
   There are three vertical layers: interfaces, application and domain, each supported by different kinds of infrastructure.
12
 
12
 
13
-* Interfaces
13
+{Interfaces}
14
 
14
 
15
-	This layer holds everythng that interacts with other systems, such as web services, RMI interfaces
15
+	This layer holds everything that interacts with other systems, such as web services, RMI interfaces
16
 	or web applications, and batch processing frontends. It handles interpretation, validation and translation
16
 	or web applications, and batch processing frontends. It handles interpretation, validation and translation
17
 	of incoming data. It also handles serialization of outgoing data, such as HTML or XML across HTTP to
17
 	of incoming data. It also handles serialization of outgoing data, such as HTML or XML across HTTP to
18
 	web browsers or web service clients, or DTO classes and distributed facade interfaces for remote Java clients.
18
 	web browsers or web service clients, or DTO classes and distributed facade interfaces for remote Java clients.
19
 
19
 
20
-* Application
20
+{Application}
21
 
21
 
22
     The application layer is responsible for defining the use cases of the application, operations that can
22
     The application layer is responsible for defining the use cases of the application, operations that can
23
     are interface-independent and can be synchronous or message-driven. This layer is well suited for spanning
23
     are interface-independent and can be synchronous or message-driven. This layer is well suited for spanning
26
     The application layer is thin in terms of domain logic - it merely coordinates the domain layer objects
26
     The application layer is thin in terms of domain logic - it merely coordinates the domain layer objects
27
     perform the actual work.
27
     perform the actual work.
28
 
28
 
29
-* Domain
29
+{Domain}
30
 
30
 
31
 	The domain layer is the heart of the software, and this is where the interesting stuff happens.
31
 	The domain layer is the heart of the software, and this is where the interesting stuff happens.
32
 	There is one package per aggregate, and to each aggregate belongs entities, value objects, domain events,
32
 	There is one package per aggregate, and to each aggregate belongs entities, value objects, domain events,
33
-	a repository interface and sometimes factories. The aggregate roots are Cargo, HandlingEvent, Location and Voyage.
34
-
35
-	Everything about determining whether a handling event should be registered and how the delivery of a cargo
36
-	is affected by handling and belongs in here. The structure and naming of aggregates, classes and methods in
37
-	should follow the ubiquitous language, and you should be able to explain to a domain expert
33
+	a repository interface and sometimes factories. The aggregate roots are
34
+	<<<{{{xref/se/citerus/dddsample/domain/model/cargo/Cargo.html}Cargo}}>>>,
35
+	<<<{{{xref/se/citerus/dddsample/domain/model/handling/HandlingEvent.html}HandlingEvent}}>>>, 
36
+	<<<{{{xref/se/citerus/dddsample/domain/model/location/Location.html}Location}}>>> and
37
+	<<<{{{xref/se/citerus/dddsample/domain/model/voyage/Voyage.html}Voyage}}>>>.
38
+
39
+	The core of the business logic, such as determining whether a handling event should be registered and how the delivery of a cargo
40
+	is affected by handling, belongs in here. The structure and naming of aggregates, classes and methods in
41
+	the domain layer should follow the ubiquitous language, and you should be able to explain to a domain expert
38
 	how this part of the software works by drawing a few simple diagrams and using the actual class- and method names
42
 	how this part of the software works by drawing a few simple diagrams and using the actual class- and method names
39
 	of the source code.
43
 	of the source code.
40
 
44
 
41
-* Infrastructure
45
+{Infrastructure}
42
 
46
 
43
 	In addition to the three vertical layers, there's also the infrastructure. As the the picture shows, it supports
47
 	In addition to the three vertical layers, there's also the infrastructure. As the the picture shows, it supports
44
 	all of the three layers in different ways, facilitating communication between the layers. In simple terms,
48
 	all of the three layers in different ways, facilitating communication between the layers. In simple terms,

+ 5
- 3
dddsample/src/site/apt/characterization.apt 파일 보기

76
     The application services in the sample application are responsible for driving workflow and coordinating
76
     The application services in the sample application are responsible for driving workflow and coordinating
77
     transaction management (by use of the declarative transaction management support in Spring).
77
     transaction management (by use of the declarative transaction management support in Spring).
78
     They also provide a high-level abstraction for clients to use when interacting with the domain.
78
     They also provide a high-level abstraction for clients to use when interacting with the domain.
79
-    These services are typically designed to support specific use cases or fulfill technical requirements (web services, etc).
79
+    These services are typically designed to define or support specific use cases.
80
+    See <<<{{{xref/se/citerus/dddsample/application/impl/BookingServiceImpl.html}BookingService}}>>> or
81
+	<<<{{{xref/se/citerus/dddsample/application/impl/HandlingEventServiceImpl.html}HandlingEventService}}>>>.
80
 
82
 
81
     In some situations, e.g. when dealing with graphs of lazy-loaded
83
     In some situations, e.g. when dealing with graphs of lazy-loaded
82
     domain objects or when passing services' return values over network boundaries, the services are wrapped in facades.
84
     domain objects or when passing services' return values over network boundaries, the services are wrapped in facades.
83
     The facades handle ORM session management issues and/or convert the domain objects to more portable
85
     The facades handle ORM session management issues and/or convert the domain objects to more portable
84
     {{{http://martinfowler.com/eaaCatalog/dataTransferObject.html}Data Transfer Objects}}) that can be tailored
86
     {{{http://martinfowler.com/eaaCatalog/dataTransferObject.html}Data Transfer Objects}}) that can be tailored
85
-    to specific use cases.
86
-    See <<<{{{xref/se/citerus/dddsample/interfaces/booking/facade/internal/BookingServiceFacadeImpl.html}BookingServiceFacadeImpl}}>>> for an example.
87
+    to specific use cases. In that case, we consider the DTO-serializing facade part of the {{{architecture.html#Interfaces}interfaces layer}}.
88
+    See <<<{{{xref/se/citerus/dddsample/interfaces/booking/facade/internal/BookingServiceFacadeImpl.html}BookingServiceFacade}}>>> for an example.

+ 10
- 0
dddsample/src/site/apt/index.apt 파일 보기

13
   implementation of the building block patterns as well as illustrate the
13
   implementation of the building block patterns as well as illustrate the
14
   impact of aggregates and bounded contexts.
14
   impact of aggregates and bounded contexts.
15
 
15
 
16
+News
17
+
18
+  * 2009-03-25: New public release: <<1.1.0>>. See {{{changelog.html}changelog}} for details.
19
+
20
+  * 2009-03-09: Sample application tutorial at the {{{http://qconlondon.com/london-2009/}QCon conference}} in London.
21
+
22
+  * 2009-01-27: Sample application tutorial at the {{{http://www.jfokus.se/jfokus/}JFokus conference}} in Stockholm.
23
+
24
+  * 2008-09-15: First public release: <<1.0>>.
25
+
16
 Purpose
26
 Purpose
17
 
27
 
18
   * A how-to example for implementing a typical DDD application
28
   * A how-to example for implementing a typical DDD application