SlideShare a Scribd company logo
Domain-Driven Design
          A Collaboration Between
  Domain Experts and Software Practitioners
The Book




           http://domaindrivendesign.org/books/evans_2003
do·main
dōˈmān n.
a sphere of knowledge,
in uence, or activity




      "domain." Merriam-Webster.com. 2011. http://www.merriam-webster.com/dictionary/domain (17 October 2011).
Core Domain
Core Domain
• complexity is in the domain, not the technology
Core Domain
• complexity is in the domain, not the technology
• let technology play a supporting role
Core Domain
• complexity is in the domain, not the technology
• let technology play a supporting role
• uncover your core domain and distill this core
The   Model*




        *In   domain-driven design, the model is not the classes or objects representing concepts within the model.
The    Model*

• a model is a tool for solving speci c problems within a domain




              *In   domain-driven design, the model is not the classes or objects representing concepts within the model.
The    Model*

• a model is a tool for solving speci c problems within a domain
• “the map is not the territory” —Alfred Korzybski




              *In   domain-driven design, the model is not the classes or objects representing concepts within the model.
The    Model*

• a model is a tool for solving speci c problems within a domain
• “the map is not the territory” —Alfred Korzybski
• collaborative explore the model with both domain experts
 and software practitioners




              *In   domain-driven design, the model is not the classes or objects representing concepts within the model.
Bounded Context
Bounded Context
• there are always multiple models
Bounded Context
• there are always multiple models
• explicitly de ne a bounded context to which a model applies
Bounded Context
• there are always multiple models
• explicitly de ne a bounded context to which a model applies
• speak a ubiquitous language within a bounded context
ZendCon 2011 UnCon Domain-Driven Design
Building Blocks
Entity
Entity
• de ned by a thread of continuity and identity
Entity
• de ned by a thread of continuity and identity
• only responsibilities should be around identity and life cycle
Entity
• de ned by a thread of continuity and identity
• only responsibilities should be around identity and life cycle
• may be composed of other entities and/or value objects
Value Object
Value Object
• de ned by its encapsulated attributes
Value Object
• de ned by its encapsulated attributes
• treat value objects as immutable
Value Object
• de ned by its encapsulated attributes
• treat value objects as immutable
• delegate business logic to value objects
De ning an object as an entity or a
value object is context-dependent.
Aggregate
Aggregate
• a group of related entities and value objects
Aggregate
• a group of related entities and value objects
• useful when de ning transaction, distribution and
 concurrency boundaries
Aggregate
• a group of related entities and value objects
• useful when de ning transaction, distribution and
    concurrency boundaries
•   designate one entity as the aggregate root
Aggregate
• a group of related entities and value objects
• useful when de ning transaction, distribution and
    concurrency boundaries
•   designate one entity as the aggregate root
•   allow external references to only the aggregate root
Aggregate
• a group of related entities and value objects
• useful when de ning transaction, distribution and
    concurrency boundaries
•   designate one entity as the aggregate root
•   allow external references to only the aggregate root
•   delegate persistence of an aggregate root to a repository
Domain Event




               1. http://martinfowler.com/eaaDev/EventSourcing.html
Domain Event
• something important that happens within the domain that
 may lead to a state change in a domain object




                                     1. http://martinfowler.com/eaaDev/EventSourcing.html
Domain Event
• something important that happens within the domain that
    may lead to a state change in a domain object
•   current state can be computed by looking at all currently
    known domain events (a.k.a. event sourcing[1])




                                         1. http://martinfowler.com/eaaDev/EventSourcing.html
Domain Event
• something important that happens within the domain that
    may lead to a state change in a domain object
•   current state can be computed by looking at all currently
    known domain events (a.k.a. event sourcing[1])
•   domain events can trigger other domain events (e.g. three
    strikes triggers an out)




                                        1. http://martinfowler.com/eaaDev/EventSourcing.html
Supple Design
Closure of Operations
Closure of Operations
• have a method on a value object that returns an instance
 of the same type of value object
Closure of Operations
• have a method on a value object that returns an instance
    of the same type of value object
•   any method arguments should also be the same type as
    the value object
Closure of Operations
• have a method on a value object that returns an instance
    of the same type of value object
•   any method arguments should also be the same type as
    the value object
•   example: 2 + 3 = 5
Closure of Operations
• have a method on a value object that returns an instance
    of the same type of value object
•   any method arguments should also be the same type as
    the value object
•   example: 2 + 3 = 5
    • “2” is a value object of type number
Closure of Operations
• have a method on a value object that returns an instance
    of the same type of value object
•   any method arguments should also be the same type as
    the value object
•   example: 2 + 3 = 5
    • “2” is a value object of type number
    • number has an add method
Closure of Operations
• have a method on a value object that returns an instance
    of the same type of value object
•   any method arguments should also be the same type as
    the value object
•   example: 2 + 3 = 5
    • “2” is a value object of type number
    • number has an add method
    • add method accepts an argument of type number
Closure of Operations
• have a method on a value object that returns an instance
    of the same type of value object
•   any method arguments should also be the same type as
    the value object
•   example: 2 + 3 = 5
    • “2” is a value object of type number
    • number has an add method
    • add method accepts an argument of type number
    • add method returns a number
Other Techniques
• intention-revealing interfaces
• side-effect free functions
• assertions
Strategic Design
Context Map
Context Map
• draw a context map of the current bounded contexts
Context Map
• draw a context map of the current bounded contexts
• map what actually exists—not what you wish existed!
Context Map
• draw a context map of the current bounded contexts
• map what actually exists—not what you wish existed!
• identify relationships between contexts
Relationship Patterns
                   customer/            anticorruption
  partnership       supplier                 layer




shared kernel   big ball of         separate ways
                   mud




    open host          conformist           published
     service                                language
Distillation
Multiple Models
Multiple Models
• there are always multiple models
Multiple Models
• there are always multiple models
• a model my represent:
Multiple Models
• there are always multiple models
• a model my represent:
  • your core domain
Multiple Models
• there are always multiple models
• a model my represent:
  • your core domain
  • a supporting domain
Multiple Models
• there are always multiple models
• a model my represent:
  • your core domain
  • a supporting domain
  • a generic subdomain
Multiple Models
• there are always multiple models
• a model my represent:
   • your core domain
   • a supporting domain
   • a generic subdomain
• focus your modeling efforts on the core domain
Identifying the Core Domain
Ask organizational leaders and domain experts:
  • What keeps you awake at night?
  • What makes your system worth writing?
  • Why not buy it off the shelf?
  • Why not outsource it?
Don’t settle on not having
access to a domain expert!
Thank You
                                    @BradleyHolt
                               http://bradley-holt.com
                                 http://joind.in/4003




Copyright © 2011 Bradley Holt. All rights reserved.

More Related Content

What's hot (20)

PDF
Domain-Driven Design (Artur Trosin Product Stream)
IT Arena
 
PPTX
Domain Driven Design - DDDSydney 2011
thinkddd
 
PPTX
How to Implement Domain Driven Design in Real Life SDLC
Abdul Karim
 
PDF
Domain-Driven Design
Geeks Anonymes
 
PPT
Domain Driven Design Demonstrated
Alan Christensen
 
PPT
Domain Driven Design (DDD)
Tom Kocjan
 
PDF
DDD Basics - Context mapping
Stijn Volders
 
PPTX
Domain driven design
Amit Mukherjee
 
PPTX
Domain driven design
Mustafa Dağdelen
 
PPTX
Domain Driven Design
Ryan Riley
 
PDF
Domain-Driven Design Basics
Mathias Verraes
 
PPTX
Brownfield Domain Driven Design
Nicolò Pignatelli
 
PDF
Introduction to Domain Driven Design
Christos Tsakostas
 
PDF
Code & Cannoli - Domain Driven Design
Frank Levering
 
PPTX
Domain Driven Design(DDD) Presentation
Oğuzhan Soykan
 
PPTX
Implementing DDD with C#
Pascal Laurin
 
PPTX
Domain Driven Design Introduction
wojtek_s
 
PDF
Introduction to-ddd
John Ferguson Smart Limited
 
PDF
Domain-Driven Design with ASP.NET MVC
Steven Smith
 
PPTX
Domain Driven Design
Lalit Kale
 
Domain-Driven Design (Artur Trosin Product Stream)
IT Arena
 
Domain Driven Design - DDDSydney 2011
thinkddd
 
How to Implement Domain Driven Design in Real Life SDLC
Abdul Karim
 
Domain-Driven Design
Geeks Anonymes
 
Domain Driven Design Demonstrated
Alan Christensen
 
Domain Driven Design (DDD)
Tom Kocjan
 
DDD Basics - Context mapping
Stijn Volders
 
Domain driven design
Amit Mukherjee
 
Domain driven design
Mustafa Dağdelen
 
Domain Driven Design
Ryan Riley
 
Domain-Driven Design Basics
Mathias Verraes
 
Brownfield Domain Driven Design
Nicolò Pignatelli
 
Introduction to Domain Driven Design
Christos Tsakostas
 
Code & Cannoli - Domain Driven Design
Frank Levering
 
Domain Driven Design(DDD) Presentation
Oğuzhan Soykan
 
Implementing DDD with C#
Pascal Laurin
 
Domain Driven Design Introduction
wojtek_s
 
Introduction to-ddd
John Ferguson Smart Limited
 
Domain-Driven Design with ASP.NET MVC
Steven Smith
 
Domain Driven Design
Lalit Kale
 

Similar to ZendCon 2011 UnCon Domain-Driven Design (20)

PDF
Software design with Domain-driven design
Allan Mangune
 
PDF
Domain-Driven Design
Bradley Holt
 
PDF
Advanced guide to develop ajax applications using dojo
Fu Cheng
 
PPTX
Attain Clean Code in Sitecore Solutions using Design Patterns
Michael Reynolds
 
PPTX
Software Development: Beyond Training wheels
Naveenkumar Muguda
 
PDF
Functional Domain Modeling - The ZIO 2 Way
Debasish Ghosh
 
KEY
Drupalcon cph
cyberswat
 
PDF
walkmod - JUG talk
walkmod
 
PDF
Javascript classes and scoping
Patrick Sheridan
 
PPTX
CBD.pptx
RahulGautam663736
 
PDF
Implementing Conceptual Search in Solr using LSA and Word2Vec: Presented by S...
Lucidworks
 
PPTX
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
Stefan Adam
 
PPTX
Learning About JavaScript (…and its little buddy, JQuery!)
Julie Meloni
 
PDF
33rd degree talk: open and automatic coding conventions with walkmod
walkmod
 
PPT
Design Patterns.ppt
TanishaKochak
 
PPTX
Design Pattern lecture 2
Julie Iskander
 
PPTX
Reactive GUI Implemented in Clojure
denyslebediev
 
KEY
Project Tools in Web Development
kmloomis
 
PPTX
Online TechTalk  "Patterns in Embedded SW Design"
GlobalLogic Ukraine
 
PPTX
Atlanta Drupal User Group (ADUG)
Mediacurrent
 
Software design with Domain-driven design
Allan Mangune
 
Domain-Driven Design
Bradley Holt
 
Advanced guide to develop ajax applications using dojo
Fu Cheng
 
Attain Clean Code in Sitecore Solutions using Design Patterns
Michael Reynolds
 
Software Development: Beyond Training wheels
Naveenkumar Muguda
 
Functional Domain Modeling - The ZIO 2 Way
Debasish Ghosh
 
Drupalcon cph
cyberswat
 
walkmod - JUG talk
walkmod
 
Javascript classes and scoping
Patrick Sheridan
 
Implementing Conceptual Search in Solr using LSA and Word2Vec: Presented by S...
Lucidworks
 
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
Stefan Adam
 
Learning About JavaScript (…and its little buddy, JQuery!)
Julie Meloni
 
33rd degree talk: open and automatic coding conventions with walkmod
walkmod
 
Design Patterns.ppt
TanishaKochak
 
Design Pattern lecture 2
Julie Iskander
 
Reactive GUI Implemented in Clojure
denyslebediev
 
Project Tools in Web Development
kmloomis
 
Online TechTalk  "Patterns in Embedded SW Design"
GlobalLogic Ukraine
 
Atlanta Drupal User Group (ADUG)
Mediacurrent
 
Ad

More from Bradley Holt (15)

PDF
Domain-Driven Design at ZendCon 2012
Bradley Holt
 
PDF
Entity Relationships in a Document Database at CouchConf Boston
Bradley Holt
 
KEY
CouchConf NYC CouchApps
Bradley Holt
 
KEY
ZendCon 2011 Learning CouchDB
Bradley Holt
 
KEY
jQuery Conference Boston 2011 CouchApps
Bradley Holt
 
KEY
OSCON 2011 CouchApps
Bradley Holt
 
KEY
OSCON 2011 Learning CouchDB
Bradley Holt
 
KEY
Load Balancing with Apache
Bradley Holt
 
PDF
CouchDB at New York PHP
Bradley Holt
 
KEY
Intermediate PHP
Bradley Holt
 
PDF
New Features in PHP 5.3
Bradley Holt
 
PDF
Introduction to PHP
Bradley Holt
 
PDF
Resource-Oriented Web Services
Bradley Holt
 
PDF
Zend Framework Quick Start Walkthrough
Bradley Holt
 
ODP
Burlington, VT PHP Users Group Subversion Presentation
Bradley Holt
 
Domain-Driven Design at ZendCon 2012
Bradley Holt
 
Entity Relationships in a Document Database at CouchConf Boston
Bradley Holt
 
CouchConf NYC CouchApps
Bradley Holt
 
ZendCon 2011 Learning CouchDB
Bradley Holt
 
jQuery Conference Boston 2011 CouchApps
Bradley Holt
 
OSCON 2011 CouchApps
Bradley Holt
 
OSCON 2011 Learning CouchDB
Bradley Holt
 
Load Balancing with Apache
Bradley Holt
 
CouchDB at New York PHP
Bradley Holt
 
Intermediate PHP
Bradley Holt
 
New Features in PHP 5.3
Bradley Holt
 
Introduction to PHP
Bradley Holt
 
Resource-Oriented Web Services
Bradley Holt
 
Zend Framework Quick Start Walkthrough
Bradley Holt
 
Burlington, VT PHP Users Group Subversion Presentation
Bradley Holt
 
Ad

Recently uploaded (20)

PPTX
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
PPTX
Enabling the Digital Artisan – keynote at ICOCI 2025
Alan Dix
 
PDF
GDG Cloud Southlake #44: Eyal Bukchin: Tightening the Kubernetes Feedback Loo...
James Anderson
 
PPTX
Wondershare Filmora Crack Free Download 2025
josanj305
 
PDF
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
PDF
5 Things to Consider When Deploying AI in Your Enterprise
Safe Software
 
PDF
Simplify Your FME Flow Setup: Fault-Tolerant Deployment Made Easy with Packer...
Safe Software
 
PDF
How to Comply With Saudi Arabia’s National Cybersecurity Regulations.pdf
Bluechip Advanced Technologies
 
PDF
Understanding AI Optimization AIO, LLMO, and GEO
CoDigital
 
PDF
“Scaling i.MX Applications Processors’ Native Edge AI with Discrete AI Accele...
Edge AI and Vision Alliance
 
PPTX
Practical Applications of AI in Local Government
OnBoard
 
PDF
“A Re-imagination of Embedded Vision System Design,” a Presentation from Imag...
Edge AI and Vision Alliance
 
PDF
Darley - FIRST Copenhagen Lightning Talk (2025-06-26) Epochalypse 2038 - Time...
treyka
 
PPTX
Mastering Authorization: Integrating Authentication and Authorization Data in...
Hitachi, Ltd. OSS Solution Center.
 
PDF
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
PDF
Dev Dives: Accelerating agentic automation with Autopilot for Everyone
UiPathCommunity
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 
PDF
TrustArc Webinar - Navigating APAC Data Privacy Laws: Compliance & Challenges
TrustArc
 
PPTX
Smart Factory Monitoring IIoT in Machine and Production Operations.pptx
Rejig Digital
 
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
Enabling the Digital Artisan – keynote at ICOCI 2025
Alan Dix
 
GDG Cloud Southlake #44: Eyal Bukchin: Tightening the Kubernetes Feedback Loo...
James Anderson
 
Wondershare Filmora Crack Free Download 2025
josanj305
 
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
5 Things to Consider When Deploying AI in Your Enterprise
Safe Software
 
Simplify Your FME Flow Setup: Fault-Tolerant Deployment Made Easy with Packer...
Safe Software
 
How to Comply With Saudi Arabia’s National Cybersecurity Regulations.pdf
Bluechip Advanced Technologies
 
Understanding AI Optimization AIO, LLMO, and GEO
CoDigital
 
“Scaling i.MX Applications Processors’ Native Edge AI with Discrete AI Accele...
Edge AI and Vision Alliance
 
Practical Applications of AI in Local Government
OnBoard
 
“A Re-imagination of Embedded Vision System Design,” a Presentation from Imag...
Edge AI and Vision Alliance
 
Darley - FIRST Copenhagen Lightning Talk (2025-06-26) Epochalypse 2038 - Time...
treyka
 
Mastering Authorization: Integrating Authentication and Authorization Data in...
Hitachi, Ltd. OSS Solution Center.
 
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
Dev Dives: Accelerating agentic automation with Autopilot for Everyone
UiPathCommunity
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 
TrustArc Webinar - Navigating APAC Data Privacy Laws: Compliance & Challenges
TrustArc
 
Smart Factory Monitoring IIoT in Machine and Production Operations.pptx
Rejig Digital
 

ZendCon 2011 UnCon Domain-Driven Design

  • 1. Domain-Driven Design A Collaboration Between Domain Experts and Software Practitioners
  • 2. The Book http://domaindrivendesign.org/books/evans_2003
  • 3. do·main dōˈmān n. a sphere of knowledge, in uence, or activity "domain." Merriam-Webster.com. 2011. http://www.merriam-webster.com/dictionary/domain (17 October 2011).
  • 5. Core Domain • complexity is in the domain, not the technology
  • 6. Core Domain • complexity is in the domain, not the technology • let technology play a supporting role
  • 7. Core Domain • complexity is in the domain, not the technology • let technology play a supporting role • uncover your core domain and distill this core
  • 8. The Model* *In domain-driven design, the model is not the classes or objects representing concepts within the model.
  • 9. The Model* • a model is a tool for solving speci c problems within a domain *In domain-driven design, the model is not the classes or objects representing concepts within the model.
  • 10. The Model* • a model is a tool for solving speci c problems within a domain • “the map is not the territory” —Alfred Korzybski *In domain-driven design, the model is not the classes or objects representing concepts within the model.
  • 11. The Model* • a model is a tool for solving speci c problems within a domain • “the map is not the territory” —Alfred Korzybski • collaborative explore the model with both domain experts and software practitioners *In domain-driven design, the model is not the classes or objects representing concepts within the model.
  • 13. Bounded Context • there are always multiple models
  • 14. Bounded Context • there are always multiple models • explicitly de ne a bounded context to which a model applies
  • 15. Bounded Context • there are always multiple models • explicitly de ne a bounded context to which a model applies • speak a ubiquitous language within a bounded context
  • 19. Entity • de ned by a thread of continuity and identity
  • 20. Entity • de ned by a thread of continuity and identity • only responsibilities should be around identity and life cycle
  • 21. Entity • de ned by a thread of continuity and identity • only responsibilities should be around identity and life cycle • may be composed of other entities and/or value objects
  • 23. Value Object • de ned by its encapsulated attributes
  • 24. Value Object • de ned by its encapsulated attributes • treat value objects as immutable
  • 25. Value Object • de ned by its encapsulated attributes • treat value objects as immutable • delegate business logic to value objects
  • 26. De ning an object as an entity or a value object is context-dependent.
  • 28. Aggregate • a group of related entities and value objects
  • 29. Aggregate • a group of related entities and value objects • useful when de ning transaction, distribution and concurrency boundaries
  • 30. Aggregate • a group of related entities and value objects • useful when de ning transaction, distribution and concurrency boundaries • designate one entity as the aggregate root
  • 31. Aggregate • a group of related entities and value objects • useful when de ning transaction, distribution and concurrency boundaries • designate one entity as the aggregate root • allow external references to only the aggregate root
  • 32. Aggregate • a group of related entities and value objects • useful when de ning transaction, distribution and concurrency boundaries • designate one entity as the aggregate root • allow external references to only the aggregate root • delegate persistence of an aggregate root to a repository
  • 33. Domain Event 1. http://martinfowler.com/eaaDev/EventSourcing.html
  • 34. Domain Event • something important that happens within the domain that may lead to a state change in a domain object 1. http://martinfowler.com/eaaDev/EventSourcing.html
  • 35. Domain Event • something important that happens within the domain that may lead to a state change in a domain object • current state can be computed by looking at all currently known domain events (a.k.a. event sourcing[1]) 1. http://martinfowler.com/eaaDev/EventSourcing.html
  • 36. Domain Event • something important that happens within the domain that may lead to a state change in a domain object • current state can be computed by looking at all currently known domain events (a.k.a. event sourcing[1]) • domain events can trigger other domain events (e.g. three strikes triggers an out) 1. http://martinfowler.com/eaaDev/EventSourcing.html
  • 39. Closure of Operations • have a method on a value object that returns an instance of the same type of value object
  • 40. Closure of Operations • have a method on a value object that returns an instance of the same type of value object • any method arguments should also be the same type as the value object
  • 41. Closure of Operations • have a method on a value object that returns an instance of the same type of value object • any method arguments should also be the same type as the value object • example: 2 + 3 = 5
  • 42. Closure of Operations • have a method on a value object that returns an instance of the same type of value object • any method arguments should also be the same type as the value object • example: 2 + 3 = 5 • “2” is a value object of type number
  • 43. Closure of Operations • have a method on a value object that returns an instance of the same type of value object • any method arguments should also be the same type as the value object • example: 2 + 3 = 5 • “2” is a value object of type number • number has an add method
  • 44. Closure of Operations • have a method on a value object that returns an instance of the same type of value object • any method arguments should also be the same type as the value object • example: 2 + 3 = 5 • “2” is a value object of type number • number has an add method • add method accepts an argument of type number
  • 45. Closure of Operations • have a method on a value object that returns an instance of the same type of value object • any method arguments should also be the same type as the value object • example: 2 + 3 = 5 • “2” is a value object of type number • number has an add method • add method accepts an argument of type number • add method returns a number
  • 46. Other Techniques • intention-revealing interfaces • side-effect free functions • assertions
  • 49. Context Map • draw a context map of the current bounded contexts
  • 50. Context Map • draw a context map of the current bounded contexts • map what actually exists—not what you wish existed!
  • 51. Context Map • draw a context map of the current bounded contexts • map what actually exists—not what you wish existed! • identify relationships between contexts
  • 52. Relationship Patterns customer/ anticorruption partnership supplier layer shared kernel big ball of separate ways mud open host conformist published service language
  • 55. Multiple Models • there are always multiple models
  • 56. Multiple Models • there are always multiple models • a model my represent:
  • 57. Multiple Models • there are always multiple models • a model my represent: • your core domain
  • 58. Multiple Models • there are always multiple models • a model my represent: • your core domain • a supporting domain
  • 59. Multiple Models • there are always multiple models • a model my represent: • your core domain • a supporting domain • a generic subdomain
  • 60. Multiple Models • there are always multiple models • a model my represent: • your core domain • a supporting domain • a generic subdomain • focus your modeling efforts on the core domain
  • 61. Identifying the Core Domain Ask organizational leaders and domain experts: • What keeps you awake at night? • What makes your system worth writing? • Why not buy it off the shelf? • Why not outsource it?
  • 62. Don’t settle on not having access to a domain expert!
  • 63. Thank You @BradleyHolt http://bradley-holt.com http://joind.in/4003 Copyright © 2011 Bradley Holt. All rights reserved.

Editor's Notes