SlideShare a Scribd company logo
1 of 15
Download to read offline
Domain-Driven Design—
Up and Running
Vaughn Vernon
Principal Architect
ShiftMETHOD
Email: vvernon at shiftmethod dot com
Web: www.shiftmethod.com
Copyright © 2008 ShiftMETHOD. All rights reserved.
Topic Outline
● Background
● Domain-Driven Design Meets Reality
● Frameworks and Tools
● Solution Patterns
● Realizing Domain-Driven Design
With DomainMETHOD
Vaughn Vernon Domain-Driven Design—Up and Running page 3
Background
● Experience: 26 years in software development
● Around 20 years in object-oriented
● Around 20 years in domain modeling, domain-
driven design, and object-oriented development
● Experience has more or less followed Eric Evans' and
Martin Fowler's core patterns, but with some departures
● Re-tuned my patterns to harmonize with Evans and
Fowler
Vaughn Vernon Domain-Driven Design—Up and Running page 4
Domain-Driven Design Meets Reality
● Domain-Driven Design is a large space
● Core Implementation Patterns and Concepts
● Entity
● Aggregate
● Value Object
● Services (Domain)
● Factory
● Repository
● Persistence and Queries
● High-level available from Evans and Fowler
● Evans' book is awesome, but large and abstract
● Confusion: How do you actually implement?
Vaughn Vernon Domain-Driven Design—Up and Running page 5
Reality: Repository
● Repository
● “I sort of know what a repository is supposed to do, but
what does it really look like, how does it work, and how do
I use it?”
● Repository “Is a” Collection
● “Does that mean it follows/implements Collection
interface?”
● “Are there finder methods on Collection?”
● “Do add or do I save?”
● “Do I remove or do I delete?”
● “Can I use object-relational mapping and a tool?”
● “What else?”
● Flushing, evicting, etc.
● “Where does it live, and from where can I use it?”
Vaughn Vernon Domain-Driven Design—Up and Running page 6
Reality: Non-Domain Layers and ORM
● Confusion About Non-Domain Layers
● “What about using my domain model in my web user
interface?”
● Data Transfer Objects
● “How do I design my MVC Controller?”
● “How do I design my Application Service Layer?”
● O-R Mapping Is a Huge Help, But...
● “Will it really work with Domain-Driven Design?”
● “What about lazy-loading?”
● “Must I expose entity property setters for my ORM tool?”
● “How do I deal with domain model validation?”
Vaughn Vernon Domain-Driven Design—Up and Running page 7
Frameworks and Tools
● Evans and DDD community may speak against
● Rebecca Wirfs-Brock: 'I don't like object-relational
mapping tools'
● Such statements sometimes made by:
● Pure designers
● Those with very, very flush clients
● Reality dictates that we use frameworks and tools
● Cost
● Time to market
● UML
● Hibernate and NHibernate
● DomainMETHOD
Vaughn Vernon Domain-Driven Design—Up and Running page 8
Solution Patterns
● Execution Context, Speaks To:
● “How do I design my MVC Controller?”
● “How do I design my Application Service Layer?”
● Domain Dependency Resolver, Speaks To:
● “What about lazy-loading?”
● Domain Payload Object, Speaks To:
● “What about using my domain model in my web user
interface?”
● Atomic Model Change, Speaks To:
● “Must I expose entity property setters for my ORM tool?”
● “How do I deal with domain model validation?”
Vaughn Vernon Domain-Driven Design—Up and Running page 9
Execution Context
● Provides a context between a client and a service
that is limited in scope only to the current execution
bounds and that facilitates the safe access to
crosscutting parameters to various application
layers.
Vaughn Vernon Domain-Driven Design—Up and Running page 10
Domain Dependency Resolver
● Define a strategy for resolving the dependencies
that a use case or user story has on the domain
model by ensuring that any lazy-loaded entity
objects of a given aggregate required by the client
are read from persistent storage while the required
storage mechanisms are still available.
Vaughn Vernon Domain-Driven Design—Up and Running page 11
Domain Payload Object
● A coarse-grained object that transports whole
domain objects between architectural layers in
order to reduce the number of necessary method
invocations.
Vaughn Vernon Domain-Driven Design—Up and Running page 12
Atomic Model Change
● Facilitates the full application of needed changes on
a domain object while protecting the integrity of the
model and providing validation.
Vaughn Vernon Domain-Driven Design—Up and Running page 13
Realizing DDD With DomainMETHOD
● Tool for Applying Domain-Driven Design
● Supports Rapid Development
● Based on
● Domain-Specific Language (DSL)
● Meta Data
● Declarative
● Not UML; Text-based source syntax
● Project-based parser and source-level generator
● Core of full MVC generator
● Currently available with services
● Considering open-source licensing
Vaughn Vernon Domain-Driven Design—Up and Running page 14
DomainMETHOD
● Platforms
● Current: Java EE, Spring, Hibernate, MySQL
● Next: Oracle
● Next: .NET, C#, NHibernate, MS SQL Server
● Potential
● Relatively unlimited platforms, languages, frameworks
● Walk-through
● DSL syntax
● Features: Entities, Value Objects, Services
● Features: Properties, Validators, Finders, Traits
● Features: Source code generation
Vaughn Vernon Domain-Driven Design—Up and Running page 15
Conclusion
● Mini Book:
● Domain-Drive Design Quickly
● http://www.infoq.com/minibooks/domain-driven-design-
quickly
● Patterns:
● http://www.shiftmethod.com
● Publications > Patterns (General)
● Patterns:
● http://www.shiftmethod.com
● Publications > Patterns (General)
● Email: vvernon at shiftmethod dot com
● Consulting
● Questions?

More Related Content

What's hot

Effective presentation skills
Effective presentation skillsEffective presentation skills
Effective presentation skillsRajat Jaiswal
 
Noun phrase for EFL classes
Noun phrase for EFL classesNoun phrase for EFL classes
Noun phrase for EFL classesAmi Parmilah
 
Anleitung zum Ruinieren eines Scrum Teams
Anleitung zum Ruinieren eines Scrum TeamsAnleitung zum Ruinieren eines Scrum Teams
Anleitung zum Ruinieren eines Scrum TeamsUdo Wiegärtner
 
Dita Release Management
Dita Release ManagementDita Release Management
Dita Release Managementjlborie
 
Sentence Variety
Sentence VarietySentence Variety
Sentence Varietyjenniferwu
 
Formation au métier de Product owner
Formation au métier de Product ownerFormation au métier de Product owner
Formation au métier de Product ownerYannick Quenec'hdu
 
Agile vs waterfall
Agile vs waterfallAgile vs waterfall
Agile vs waterfallLohet Ramesh
 
Run End-to-End Tests with the UI Testing Model (UTAM), Phillipe Ozil
Run End-to-End Tests with the UI Testing Model (UTAM), Phillipe OzilRun End-to-End Tests with the UI Testing Model (UTAM), Phillipe Ozil
Run End-to-End Tests with the UI Testing Model (UTAM), Phillipe OzilCzechDreamin
 
Sentence, clause and phrase
Sentence, clause and phraseSentence, clause and phrase
Sentence, clause and phraseAznil Azwandie
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development OverviewStewart Rogers
 
Waterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project ManagementWaterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project ManagementJonathan Donado
 
Continuous Deployment: Beyond Continuous Delivery
Continuous Deployment: Beyond Continuous DeliveryContinuous Deployment: Beyond Continuous Delivery
Continuous Deployment: Beyond Continuous DeliveryTimothy Fitz
 
What does a Scrum Master do, or should do, all day?
What does a Scrum Master do, or should do, all day? What does a Scrum Master do, or should do, all day?
What does a Scrum Master do, or should do, all day? Stefania Marinelli
 
Scrum PAL Test 4.docx
Scrum PAL Test 4.docxScrum PAL Test 4.docx
Scrum PAL Test 4.docxColeTrotta
 

What's hot (20)

Effective presentation skills
Effective presentation skillsEffective presentation skills
Effective presentation skills
 
Noun phrase for EFL classes
Noun phrase for EFL classesNoun phrase for EFL classes
Noun phrase for EFL classes
 
Chapter 10
Chapter 10Chapter 10
Chapter 10
 
Anleitung zum Ruinieren eines Scrum Teams
Anleitung zum Ruinieren eines Scrum TeamsAnleitung zum Ruinieren eines Scrum Teams
Anleitung zum Ruinieren eines Scrum Teams
 
Dita Release Management
Dita Release ManagementDita Release Management
Dita Release Management
 
Presentations: Focus
Presentations: FocusPresentations: Focus
Presentations: Focus
 
Neutral accent
Neutral accent Neutral accent
Neutral accent
 
Sentence Variety
Sentence VarietySentence Variety
Sentence Variety
 
Agile Scrum Framework vs Kanban Method
Agile Scrum Framework  vs Kanban MethodAgile Scrum Framework  vs Kanban Method
Agile Scrum Framework vs Kanban Method
 
Formation au métier de Product owner
Formation au métier de Product ownerFormation au métier de Product owner
Formation au métier de Product owner
 
Agile vs waterfall
Agile vs waterfallAgile vs waterfall
Agile vs waterfall
 
Run End-to-End Tests with the UI Testing Model (UTAM), Phillipe Ozil
Run End-to-End Tests with the UI Testing Model (UTAM), Phillipe OzilRun End-to-End Tests with the UI Testing Model (UTAM), Phillipe Ozil
Run End-to-End Tests with the UI Testing Model (UTAM), Phillipe Ozil
 
Sentence, clause and phrase
Sentence, clause and phraseSentence, clause and phrase
Sentence, clause and phrase
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development Overview
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
 
Waterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project ManagementWaterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project Management
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
Continuous Deployment: Beyond Continuous Delivery
Continuous Deployment: Beyond Continuous DeliveryContinuous Deployment: Beyond Continuous Delivery
Continuous Deployment: Beyond Continuous Delivery
 
What does a Scrum Master do, or should do, all day?
What does a Scrum Master do, or should do, all day? What does a Scrum Master do, or should do, all day?
What does a Scrum Master do, or should do, all day?
 
Scrum PAL Test 4.docx
Scrum PAL Test 4.docxScrum PAL Test 4.docx
Scrum PAL Test 4.docx
 

Viewers also liked

Domain Driven Design - DDDSydney 2011
Domain Driven Design - DDDSydney 2011Domain Driven Design - DDDSydney 2011
Domain Driven Design - DDDSydney 2011thinkddd
 
Unleash Your Domain With Greg Young @ DDD-Day
Unleash Your Domain With Greg Young @ DDD-DayUnleash Your Domain With Greg Young @ DDD-Day
Unleash Your Domain With Greg Young @ DDD-DayDotNetMarche
 
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Alberto Brandolini
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven DesignAndré Borgonovo
 
Projections explained
Projections explainedProjections explained
Projections explainedYves Reynhout
 
Greg Young on Architectural Innovation: Eventing, Event Sourcing
Greg Young on Architectural Innovation: Eventing, Event SourcingGreg Young on Architectural Innovation: Eventing, Event Sourcing
Greg Young on Architectural Innovation: Eventing, Event SourcingSkills Matter
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
 
Socrates BE - Projections Explained
Socrates BE - Projections ExplainedSocrates BE - Projections Explained
Socrates BE - Projections ExplainedYves Reynhout
 

Viewers also liked (13)

DDDesign Challenges
DDDesign ChallengesDDDesign Challenges
DDDesign Challenges
 
Event sourcing
Event sourcingEvent sourcing
Event sourcing
 
Domain Driven Design - DDDSydney 2011
Domain Driven Design - DDDSydney 2011Domain Driven Design - DDDSydney 2011
Domain Driven Design - DDDSydney 2011
 
Event based modeling - eng
Event based modeling - engEvent based modeling - eng
Event based modeling - eng
 
Unleash Your Domain With Greg Young @ DDD-Day
Unleash Your Domain With Greg Young @ DDD-DayUnleash Your Domain With Greg Young @ DDD-Day
Unleash Your Domain With Greg Young @ DDD-Day
 
DDD Dirty Harry style
DDD Dirty Harry styleDDD Dirty Harry style
DDD Dirty Harry style
 
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven Design
 
Model storming
Model stormingModel storming
Model storming
 
Projections explained
Projections explainedProjections explained
Projections explained
 
Greg Young on Architectural Innovation: Eventing, Event Sourcing
Greg Young on Architectural Innovation: Eventing, Event SourcingGreg Young on Architectural Innovation: Eventing, Event Sourcing
Greg Young on Architectural Innovation: Eventing, Event Sourcing
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
 
Socrates BE - Projections Explained
Socrates BE - Projections ExplainedSocrates BE - Projections Explained
Socrates BE - Projections Explained
 

Similar to Domain Driven Design Up And Running

Full Stack Web Developer (MERN STACK Developer.pptx
Full Stack Web Developer (MERN STACK Developer.pptxFull Stack Web Developer (MERN STACK Developer.pptx
Full Stack Web Developer (MERN STACK Developer.pptxRamudgarYadav
 
Web-Development-ppt (1).pptx
Web-Development-ppt (1).pptxWeb-Development-ppt (1).pptx
Web-Development-ppt (1).pptxRaihanUddin57
 
Web-Development-ppt.pptx
Web-Development-ppt.pptxWeb-Development-ppt.pptx
Web-Development-ppt.pptxEleenaJha
 
AD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web DevelopmentAD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web DevelopmentShean McManus
 
From server generated pages to client app in a micro-services world
From server generated pages to client app in a micro-services worldFrom server generated pages to client app in a micro-services world
From server generated pages to client app in a micro-services worldAssaf Gannon
 
Mean Stack - An Overview
Mean Stack - An OverviewMean Stack - An Overview
Mean Stack - An OverviewNaveen Pete
 
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014Alexandre Morgaut
 
How to Become a MERN Stack Developer_.pptx
How to Become a MERN Stack Developer_.pptxHow to Become a MERN Stack Developer_.pptx
How to Become a MERN Stack Developer_.pptxNextskill Technologies
 
Mobile Website or Responsive Design? The Answer is NEITHER.
Mobile Website or Responsive Design? The Answer is NEITHER.Mobile Website or Responsive Design? The Answer is NEITHER.
Mobile Website or Responsive Design? The Answer is NEITHER.TWG
 
Should I Build a Separate Mobile Site or a Responsive Site? Neither! with Der...
Should I Build a Separate Mobile Site or a Responsive Site? Neither! with Der...Should I Build a Separate Mobile Site or a Responsive Site? Neither! with Der...
Should I Build a Separate Mobile Site or a Responsive Site? Neither! with Der...FITC
 
Introduction to HTML, CSS, and JavaScript for Web Development
Introduction to HTML, CSS, and JavaScript for Web DevelopmentIntroduction to HTML, CSS, and JavaScript for Web Development
Introduction to HTML, CSS, and JavaScript for Web DevelopmentQurinom Solutions
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stackAshok Raj
 
Amit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JSAmit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JSAmit Kumar
 
Tips To Hire Full Stack Developers In 2022
Tips To Hire Full Stack Developers In 2022Tips To Hire Full Stack Developers In 2022
Tips To Hire Full Stack Developers In 2022ForceBolt
 
Forge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserForge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserAutodesk
 
Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023Netizens Technologies
 

Similar to Domain Driven Design Up And Running (20)

Full Stack Web Developer (MERN STACK Developer.pptx
Full Stack Web Developer (MERN STACK Developer.pptxFull Stack Web Developer (MERN STACK Developer.pptx
Full Stack Web Developer (MERN STACK Developer.pptx
 
amanWeb.ppt.pptx
amanWeb.ppt.pptxamanWeb.ppt.pptx
amanWeb.ppt.pptx
 
Web-Development-ppt (1).pptx
Web-Development-ppt (1).pptxWeb-Development-ppt (1).pptx
Web-Development-ppt (1).pptx
 
Web-Development-ppt.pptx
Web-Development-ppt.pptxWeb-Development-ppt.pptx
Web-Development-ppt.pptx
 
AD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web DevelopmentAD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web Development
 
From server generated pages to client app in a micro-services world
From server generated pages to client app in a micro-services worldFrom server generated pages to client app in a micro-services world
From server generated pages to client app in a micro-services world
 
Mean Stack - An Overview
Mean Stack - An OverviewMean Stack - An Overview
Mean Stack - An Overview
 
DOT NET FULL STACK.pptx
DOT NET FULL STACK.pptxDOT NET FULL STACK.pptx
DOT NET FULL STACK.pptx
 
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
 
How to Become a MERN Stack Developer_.pptx
How to Become a MERN Stack Developer_.pptxHow to Become a MERN Stack Developer_.pptx
How to Become a MERN Stack Developer_.pptx
 
Mobile Website or Responsive Design? The Answer is NEITHER.
Mobile Website or Responsive Design? The Answer is NEITHER.Mobile Website or Responsive Design? The Answer is NEITHER.
Mobile Website or Responsive Design? The Answer is NEITHER.
 
Should I Build a Separate Mobile Site or a Responsive Site? Neither! with Der...
Should I Build a Separate Mobile Site or a Responsive Site? Neither! with Der...Should I Build a Separate Mobile Site or a Responsive Site? Neither! with Der...
Should I Build a Separate Mobile Site or a Responsive Site? Neither! with Der...
 
Introduction to HTML, CSS, and JavaScript for Web Development
Introduction to HTML, CSS, and JavaScript for Web DevelopmentIntroduction to HTML, CSS, and JavaScript for Web Development
Introduction to HTML, CSS, and JavaScript for Web Development
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stack
 
The Decoupled CMS in Financial Services
The Decoupled CMS in Financial ServicesThe Decoupled CMS in Financial Services
The Decoupled CMS in Financial Services
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
 
Amit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JSAmit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JS
 
Tips To Hire Full Stack Developers In 2022
Tips To Hire Full Stack Developers In 2022Tips To Hire Full Stack Developers In 2022
Tips To Hire Full Stack Developers In 2022
 
Forge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserForge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the Browser
 
Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023
 

More from IASA

Building Feedback Loops
Building Feedback LoopsBuilding Feedback Loops
Building Feedback LoopsIASA
 
Risk Centric Architecture George Fairbanks
Risk Centric Architecture George FairbanksRisk Centric Architecture George Fairbanks
Risk Centric Architecture George FairbanksIASA
 
Resource-Oriented Architecture (ROA) and REST
Resource-Oriented Architecture (ROA) and RESTResource-Oriented Architecture (ROA) and REST
Resource-Oriented Architecture (ROA) and RESTIASA
 
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4IASA
 
Business and Strategic Alignment in EA – Practical Guidelines Based on Indust...
Business and Strategic Alignment in EA – Practical Guidelines Based on Indust...Business and Strategic Alignment in EA – Practical Guidelines Based on Indust...
Business and Strategic Alignment in EA – Practical Guidelines Based on Indust...IASA
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With LiquibaseIASA
 
Rethinking Object Orientation
Rethinking Object OrientationRethinking Object Orientation
Rethinking Object OrientationIASA
 
Making Architecture Business Value Driven
Making Architecture Business Value DrivenMaking Architecture Business Value Driven
Making Architecture Business Value DrivenIASA
 

More from IASA (8)

Building Feedback Loops
Building Feedback LoopsBuilding Feedback Loops
Building Feedback Loops
 
Risk Centric Architecture George Fairbanks
Risk Centric Architecture George FairbanksRisk Centric Architecture George Fairbanks
Risk Centric Architecture George Fairbanks
 
Resource-Oriented Architecture (ROA) and REST
Resource-Oriented Architecture (ROA) and RESTResource-Oriented Architecture (ROA) and REST
Resource-Oriented Architecture (ROA) and REST
 
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4
 
Business and Strategic Alignment in EA – Practical Guidelines Based on Indust...
Business and Strategic Alignment in EA – Practical Guidelines Based on Indust...Business and Strategic Alignment in EA – Practical Guidelines Based on Indust...
Business and Strategic Alignment in EA – Practical Guidelines Based on Indust...
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With Liquibase
 
Rethinking Object Orientation
Rethinking Object OrientationRethinking Object Orientation
Rethinking Object Orientation
 
Making Architecture Business Value Driven
Making Architecture Business Value DrivenMaking Architecture Business Value Driven
Making Architecture Business Value Driven
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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 slidevu2urc
 
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 SolutionsEnterprise Knowledge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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...Neo4j
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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 DevelopmentsTrustArc
 
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.pptxKatpro Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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...Martijn de Jong
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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 MountPuma Security, LLC
 
[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.pdfhans926745
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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...Miguel Araújo
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
[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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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...
 

Domain Driven Design Up And Running

  • 1. Domain-Driven Design— Up and Running Vaughn Vernon Principal Architect ShiftMETHOD Email: vvernon at shiftmethod dot com Web: www.shiftmethod.com Copyright © 2008 ShiftMETHOD. All rights reserved.
  • 2. Topic Outline ● Background ● Domain-Driven Design Meets Reality ● Frameworks and Tools ● Solution Patterns ● Realizing Domain-Driven Design With DomainMETHOD
  • 3. Vaughn Vernon Domain-Driven Design—Up and Running page 3 Background ● Experience: 26 years in software development ● Around 20 years in object-oriented ● Around 20 years in domain modeling, domain- driven design, and object-oriented development ● Experience has more or less followed Eric Evans' and Martin Fowler's core patterns, but with some departures ● Re-tuned my patterns to harmonize with Evans and Fowler
  • 4. Vaughn Vernon Domain-Driven Design—Up and Running page 4 Domain-Driven Design Meets Reality ● Domain-Driven Design is a large space ● Core Implementation Patterns and Concepts ● Entity ● Aggregate ● Value Object ● Services (Domain) ● Factory ● Repository ● Persistence and Queries ● High-level available from Evans and Fowler ● Evans' book is awesome, but large and abstract ● Confusion: How do you actually implement?
  • 5. Vaughn Vernon Domain-Driven Design—Up and Running page 5 Reality: Repository ● Repository ● “I sort of know what a repository is supposed to do, but what does it really look like, how does it work, and how do I use it?” ● Repository “Is a” Collection ● “Does that mean it follows/implements Collection interface?” ● “Are there finder methods on Collection?” ● “Do add or do I save?” ● “Do I remove or do I delete?” ● “Can I use object-relational mapping and a tool?” ● “What else?” ● Flushing, evicting, etc. ● “Where does it live, and from where can I use it?”
  • 6. Vaughn Vernon Domain-Driven Design—Up and Running page 6 Reality: Non-Domain Layers and ORM ● Confusion About Non-Domain Layers ● “What about using my domain model in my web user interface?” ● Data Transfer Objects ● “How do I design my MVC Controller?” ● “How do I design my Application Service Layer?” ● O-R Mapping Is a Huge Help, But... ● “Will it really work with Domain-Driven Design?” ● “What about lazy-loading?” ● “Must I expose entity property setters for my ORM tool?” ● “How do I deal with domain model validation?”
  • 7. Vaughn Vernon Domain-Driven Design—Up and Running page 7 Frameworks and Tools ● Evans and DDD community may speak against ● Rebecca Wirfs-Brock: 'I don't like object-relational mapping tools' ● Such statements sometimes made by: ● Pure designers ● Those with very, very flush clients ● Reality dictates that we use frameworks and tools ● Cost ● Time to market ● UML ● Hibernate and NHibernate ● DomainMETHOD
  • 8. Vaughn Vernon Domain-Driven Design—Up and Running page 8 Solution Patterns ● Execution Context, Speaks To: ● “How do I design my MVC Controller?” ● “How do I design my Application Service Layer?” ● Domain Dependency Resolver, Speaks To: ● “What about lazy-loading?” ● Domain Payload Object, Speaks To: ● “What about using my domain model in my web user interface?” ● Atomic Model Change, Speaks To: ● “Must I expose entity property setters for my ORM tool?” ● “How do I deal with domain model validation?”
  • 9. Vaughn Vernon Domain-Driven Design—Up and Running page 9 Execution Context ● Provides a context between a client and a service that is limited in scope only to the current execution bounds and that facilitates the safe access to crosscutting parameters to various application layers.
  • 10. Vaughn Vernon Domain-Driven Design—Up and Running page 10 Domain Dependency Resolver ● Define a strategy for resolving the dependencies that a use case or user story has on the domain model by ensuring that any lazy-loaded entity objects of a given aggregate required by the client are read from persistent storage while the required storage mechanisms are still available.
  • 11. Vaughn Vernon Domain-Driven Design—Up and Running page 11 Domain Payload Object ● A coarse-grained object that transports whole domain objects between architectural layers in order to reduce the number of necessary method invocations.
  • 12. Vaughn Vernon Domain-Driven Design—Up and Running page 12 Atomic Model Change ● Facilitates the full application of needed changes on a domain object while protecting the integrity of the model and providing validation.
  • 13. Vaughn Vernon Domain-Driven Design—Up and Running page 13 Realizing DDD With DomainMETHOD ● Tool for Applying Domain-Driven Design ● Supports Rapid Development ● Based on ● Domain-Specific Language (DSL) ● Meta Data ● Declarative ● Not UML; Text-based source syntax ● Project-based parser and source-level generator ● Core of full MVC generator ● Currently available with services ● Considering open-source licensing
  • 14. Vaughn Vernon Domain-Driven Design—Up and Running page 14 DomainMETHOD ● Platforms ● Current: Java EE, Spring, Hibernate, MySQL ● Next: Oracle ● Next: .NET, C#, NHibernate, MS SQL Server ● Potential ● Relatively unlimited platforms, languages, frameworks ● Walk-through ● DSL syntax ● Features: Entities, Value Objects, Services ● Features: Properties, Validators, Finders, Traits ● Features: Source code generation
  • 15. Vaughn Vernon Domain-Driven Design—Up and Running page 15 Conclusion ● Mini Book: ● Domain-Drive Design Quickly ● http://www.infoq.com/minibooks/domain-driven-design- quickly ● Patterns: ● http://www.shiftmethod.com ● Publications > Patterns (General) ● Patterns: ● http://www.shiftmethod.com ● Publications > Patterns (General) ● Email: vvernon at shiftmethod dot com ● Consulting ● Questions?