SlideShare a Scribd company logo
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
          about the domain




                               
Entities

    ●   Everything that needs an identity
    ●   Needs to be uniquely referenced
    ●   Examples: Order, Product, Route, etc.




                               
Value Objects

    ●   Elements that dont need an identity
    ●   Fast life-cicle
    ●   Can be constant
    ●   Example: Delivery address, Credit card
          number, Font type, etc.




                              
Agregates

    ●   Encapsulate Entities and Value Objects from a
         comnon subject, to give easy acess to useful
         data

                     Entity       Value Object




    Value Object     Entity
                                            Agregate

                               
Factories

    ●   Used to construct some elements when it is
         complex.
    ●   Used in Agregates and Vaue objects
    ●   Encapsulate the contruction process




                              
Services

    ●   Is an operation that is not part of any Entity or
         Value Object
    ●   Stateless
    ●   Follow the Ubiquitous Language




                                
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                                           Modules
                       Value Objects       Entities




    Factory
                            Agregate                  Repository

                                        
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




                                     
Feel free to DDD!



           Thank you!




                     

More Related Content

Viewers also liked (13)

PDF
Domain-Driven Design
Thomas Maroschik
 
PDF
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
die.agilen GmbH
 
PDF
Domain Driven Design Mat Holroyd
melbournepatterns
 
PPTX
Introduction To Domain Driven Design
Paul Rayner
 
PPT
Δικανική Υπολογιστών και Δικτύων (Computer and Network Forensics )
KostisFardelas
 
PPTX
Domain-Driven Design
Andriy Buday
 
PDF
Service-Oriented Architecture
Samantha Geitz
 
PDF
Domain-driven design - eine Einführung
die.agilen GmbH
 
PPT
Domain driven design in a nutshell
Toni Esteves
 
PPTX
Urodynamics /Uroflowmetry
Ramayya Pramila
 
PPTX
Predix
Sandeep Shabd
 
PPTX
MongoDB IoT City Tour LONDON: Industrial Internet, Industry 4.0, Smart Factor...
MongoDB
 
PPT
How to present a journal club
sanch1684
 
Domain-Driven Design
Thomas Maroschik
 
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
die.agilen GmbH
 
Domain Driven Design Mat Holroyd
melbournepatterns
 
Introduction To Domain Driven Design
Paul Rayner
 
Δικανική Υπολογιστών και Δικτύων (Computer and Network Forensics )
KostisFardelas
 
Domain-Driven Design
Andriy Buday
 
Service-Oriented Architecture
Samantha Geitz
 
Domain-driven design - eine Einführung
die.agilen GmbH
 
Domain driven design in a nutshell
Toni Esteves
 
Urodynamics /Uroflowmetry
Ramayya Pramila
 
MongoDB IoT City Tour LONDON: Industrial Internet, Industry 4.0, Smart Factor...
MongoDB
 
How to present a journal club
sanch1684
 

Similar to 2011-05-22 Domain Driven Design (20)

PDF
Domain driven design and model driven development
Dmitry Geyzersky
 
PDF
Domain Driven Design
yassin elhadedy
 
PPTX
Domain Driven Design Quickly
Mariam Hakobyan
 
PPTX
Domain Driven Design
Lalit Kale
 
PPTX
Introduction to DDD
Eduards Sizovs
 
PPT
Domain Driven Design Demonstrated
Alan Christensen
 
PDF
Introduction to Domain driven design
Muhammad Ali
 
PDF
D2 domain driven-design
Arnaud Bouchez
 
PPTX
Domain Driven Design
Ryan Riley
 
PPTX
Domain driven design
its_skm
 
PDF
Domain Driven Design
Mojammel Haque
 
PPT
Domain driven design
Yura Taras
 
PPT
Domain Driven Design (DDD)
Tom Kocjan
 
PPTX
Domain Driven Design
Muhammad Ali
 
PPT
Domain driven design
tatyaso
 
PDF
Domain Driven Design - Building Blocks
Mark Windholtz
 
PDF
Domain-Driven Design
Geeks Anonymes
 
PPT
Brief introduction to domain-driven design
Yongqiang Li
 
PDF
Domain Driven Design
Harsh Jegadeesan
 
PPTX
Schibsted Spain - Day 1 - DDD Course
Kevin Mas Ruiz
 
Domain driven design and model driven development
Dmitry Geyzersky
 
Domain Driven Design
yassin elhadedy
 
Domain Driven Design Quickly
Mariam Hakobyan
 
Domain Driven Design
Lalit Kale
 
Introduction to DDD
Eduards Sizovs
 
Domain Driven Design Demonstrated
Alan Christensen
 
Introduction to Domain driven design
Muhammad Ali
 
D2 domain driven-design
Arnaud Bouchez
 
Domain Driven Design
Ryan Riley
 
Domain driven design
its_skm
 
Domain Driven Design
Mojammel Haque
 
Domain driven design
Yura Taras
 
Domain Driven Design (DDD)
Tom Kocjan
 
Domain Driven Design
Muhammad Ali
 
Domain driven design
tatyaso
 
Domain Driven Design - Building Blocks
Mark Windholtz
 
Domain-Driven Design
Geeks Anonymes
 
Brief introduction to domain-driven design
Yongqiang Li
 
Domain Driven Design
Harsh Jegadeesan
 
Schibsted Spain - Day 1 - DDD Course
Kevin Mas Ruiz
 
Ad

Recently uploaded (20)

PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Python basic programing language for automation
DanialHabibi2
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Ad

2011-05-22 Domain Driven Design

  • 1. Domain Driven Design Ismael Santos     @ifsantosrs
  • 2. What is DDD?    
  • 4. Domain X Software ● Do you know what the software is talking about?    
  • 6. Ubiquitous Language ● Is a programming language? ● Is an human language? ● WTF is it??    
  • 8. Model Driven Design ● Is important to divide the application domain ● The application construction must explain about the domain    
  • 9. Entities ● Everything that needs an identity ● Needs to be uniquely referenced ● Examples: Order, Product, Route, etc.    
  • 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. 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. Factories ● Used to construct some elements when it is complex. ● Used in Agregates and Vaue objects ● Encapsulate the contruction process    
  • 13. Services ● Is an operation that is not part of any Entity or Value Object ● Stateless ● Follow the Ubiquitous Language    
  • 14. Modules ● Are like chapters from a story ● Are about model, not about code    
  • 15. Repositories ● Used to store/retieve Entities and Agregates ● Is centralized    
  • 16. Global vision Ubiquitous Language Model Driven Design Services Modules Value Objects Entities Factory Agregate Repository    
  • 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. Feel free to DDD! Thank you!