2011-05-22 Domain Driven Design

509 views

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
509
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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!   

×