SlideShare una empresa de Scribd logo
1 de 85
Descargar para leer sin conexión
quot;Everything
should
be
made

as
simple
as
possible,

but
not
simpler.quot;

Albert Einstein
Chaos
Order
Focus
Create a world
with laws
Be aware of the
environment
Basic types for the world
Value objects
Value objects
• Represents a value

• No identity

• immutable

• Equality by value
good example
...or not
All the same
Entities
 Meet Bob
Hi, my name is
     Bob
I'm 32 years old
...and I'm a
starshiptrooper
Meet bob
Hi, my name is
    Bob too
I'm also 32
 years old
...and also a
starshiptrooper
Identity
Identity
• Combination of properties

• Personal number
Aggregate Root
Domain
Model by
Example
Student
Student




          Class
Student




Teacher             Class
Mayor         Address


                  Student




Teacher                           Class
Mayor         Address


                  Student




Teacher                                      Class


                                  Location           Material
Mayor         Address


                                 Student




         Teacher                                            Class


Schema         Payroll                           Location           Material
Mayor         Address


                                 Student




         Teacher                                            Class


Schema         Payroll                           Location           Material
Mayor         Address


                                 Student




         Teacher                                            Class


Schema         Payroll                           Location           Material
Mayor         Address


                                 Student




         Teacher                                            Class


Schema         Payroll                           Location           Material
Mayor         Address


                                 Student




         Teacher                                            Class


Schema         Payroll                           Location           Material
Validation
Validation
•  Validatable objects

•  !invariant object
Validatable object
•  Default ctor
•  Supported by a lot of frameworks
•  Flexible

•  Naive
!Invariant object
•  No default ctor, most of the time
•  Nonflexible

•  Strict!
distortion
Active-Passive
Repositories
Storage
Services
Tight, small and focused
Service
layer?
Service layers are c00l
•  Support multiple application

•  Your domain is in the center
   of the world

•  Huge enviroments

•  Read DTO's
•  Write command
Service layers are bad, mkay
•  Domain logic is boxed

•  Logic duplication

•  No direct feedback

•  Databinding support!
Bootstrapping
Overview
Domain
DB




Domain
DB




UI   Domain
Service             DB




               Storage




UI             Domain
Service             DB




               Storage




UI             Domain




               Logging
Service             DB




               Storage




                              Service
UI             Domain          bus




               Logging
Service             DB




               Storage




                              Service
UI             Domain          bus




               Logging
Service             DB




                           Storage


 UI




          UI                              Service
         model
                           Domain          bus



Beheer



                           Logging
Service             DB




                                 Storage


 UI




          UI                                    Service
         model
                 WCF             Domain          bus



Beheer



                                 Logging
Inversion of control
You only want beer
Learn more
DISCUSSION
You were great!
  Really, I already knew it when creating this slide

Más contenido relacionado

Más de Pieter Joost van de Sande (7)

Introduction to CQRS
Introduction to CQRSIntroduction to CQRS
Introduction to CQRS
 
Introduction to (n)CQRS
Introduction to (n)CQRSIntroduction to (n)CQRS
Introduction to (n)CQRS
 
Rethink your architecture with CQRS
Rethink your architecture with CQRSRethink your architecture with CQRS
Rethink your architecture with CQRS
 
Introduction to Spec#
Introduction to Spec#Introduction to Spec#
Introduction to Spec#
 
C#, What Is Next?
C#, What Is Next?C#, What Is Next?
C#, What Is Next?
 
XNA presentation
XNA presentationXNA presentation
XNA presentation
 
Domain Driven Design In C#3.0
Domain Driven Design In C#3.0Domain Driven Design In C#3.0
Domain Driven Design In C#3.0
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Domain Driven Design fundamentals