0
Domain Driven Design           Ismael Santos                           @ifsantosrs
What         is        DDD?     
What is DDD?                
Domain X Software●   Do you know what the software is talking about?                           
Ubiquitous Language              
Ubiquitous Language    ●   Is a programming language?    ●   Is an human language?    ●   WTF is it??                     ...
Ubiquitous Language                 
Model Driven Design    ●   Is important to divide the application domain    ●   The application construction must explain ...
Entities    ●   Everything that needs an identity    ●   Needs to be uniquely referenced    ●   Examples: Order, Product, ...
Value Objects    ●   Elements that dont need an identity    ●   Fast life-cicle    ●   Can be constant    ●   Example: Del...
Agregates    ●   Encapsulate Entities and Value Objects from a         comnon subject, to give easy acess to useful       ...
Factories    ●   Used to construct some elements when it is         complex.    ●   Used in Agregates and Vaue objects    ...
Services    ●   Is an operation that is not part of any Entity or         Value Object    ●   Stateless    ●   Follow the ...
Modules    ●   Are like chapters from a story    ●   Are about model, not about code                               
Repositories    ●   Used to store/retieve Entities and Agregates    ●   Is centralized                              
Global vision              Ubiquitous Language               Model Driven Design        Services                          ...
References    ●   http://domaindrivendesign.org/resources/what_is_ddd    ●   http://en.wikipedia.org/wiki/Domain-driven_de...
Feel free to DDD!           Thank you!                     
Upcoming SlideShare
Loading in...5
×

2011-05-22 Domain Driven Design

352

Published on

Domain Driven Design Lightning talk.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
352
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "2011-05-22 Domain Driven Design"

  1. 1. Domain Driven Design Ismael Santos    @ifsantosrs
  2. 2. What is DDD?   
  3. 3. What is DDD?   
  4. 4. Domain X Software● Do you know what the software is talking about?   
  5. 5. Ubiquitous Language   
  6. 6. Ubiquitous Language ● Is a programming language? ● Is an human language? ● WTF is it??   
  7. 7. Ubiquitous Language   
  8. 8. Model Driven Design ● Is important to divide the application domain ● The application construction must explain about the domain   
  9. 9. Entities ● Everything that needs an identity ● Needs to be uniquely referenced ● Examples: Order, Product, Route, etc.   
  10. 10. Value Objects ● Elements that dont need an identity ● Fast life-cicle ● Can be constant ● Example: Delivery address, Credit card number, Font type, etc.   
  11. 11. Agregates ● Encapsulate Entities and Value Objects from a comnon subject, to give easy acess to useful data Entity Value Object Value Object Entity Agregate   
  12. 12. Factories ● Used to construct some elements when it is complex. ● Used in Agregates and Vaue objects ● Encapsulate the contruction process   
  13. 13. Services ● Is an operation that is not part of any Entity or Value Object ● Stateless ● Follow the Ubiquitous Language   
  14. 14. Modules ● Are like chapters from a story ● Are about model, not about code   
  15. 15. Repositories ● Used to store/retieve Entities and Agregates ● Is centralized   
  16. 16. Global vision Ubiquitous Language Model Driven Design Services Modules Value Objects Entities Factory Agregate Repository   
  17. 17. References ● http://domaindrivendesign.org/resources/what_is_ddd ● http://en.wikipedia.org/wiki/Domain-driven_design ● http://www.infoq.com/minibooks/domain-driven-design-quickly ● http://vimeo.com/3545313 ● Java Magazine, ed. 87   
  18. 18. Feel free to DDD! Thank you!   
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×