Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Domain Driven Design
Search
Buzzvil
December 12, 2018
0
230
Domain Driven Design
Buzzvil
December 12, 2018
Tweet
Share
More Decks by Buzzvil
See All by Buzzvil
220903_GFS
buzzvil
0
330
Git 해부하기 2 + 3
buzzvil
0
17
Metastable Failure
buzzvil
0
140
Git 해부하기
buzzvil
0
28
Introduction to Plate Solving
buzzvil
0
9
Airbnb Minerva
buzzvil
0
190
Shape up 방법론
buzzvil
0
790
Buzzvil Billing Data Pipeline
buzzvil
0
420
Journey of Dash's release-cycle
buzzvil
0
130
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
RailsConf 2023
tenderlove
8
550
Docker and Python
trallard
35
2.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
1.9k
Designing for Performance
lara
602
67k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
Building Flexible Design Systems
yeseniaperezcruz
320
37k
YesSQL, Process and Tooling at Scale
rocio
165
13k
Git: the NoSQL Database
bkeepers
PRO
423
63k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
20
1.6k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Transcript
DOMAIN DRIVEN DESIGN DDD
BY ERIC EVANS
150 PAGES
WHAT IS DOMAIN? • Business or whatever activity we are
trying to assist with the software
• Assembly parts != Car • Vision • Specification •
Architecture
• Communication between experts & developers • Develop model together
UBIQUITOUS LANGUAGE • Model driven: Based on the Domain Model
• Building up a common, rigorous language between developers and users • UML • Software doesn't cope well with ambiguity
BOUNDED CONTEXT • Model gets bigger • Bound context •
Domain & sub domain Domain Sub Domain Service Sub Domain Service Sub Domain Service
• Product in Catalog domain • Product in Stock Management
domain Product image, title, price product code, storage
• Subdomain has its own model • Each model has
bounded context
BUILDING BLOCKS Model Driven Development
LAYERED ARCHITECTURE
ENTITY • Not defined by their attributes • Continuity •
Identity
VALUE OBJECT • These objects describe characteristics of a thing.
• Immutable during lifecycle
SERVICE • oo manger • significant process or transformation in
the domain is not a responsibility of an ENTITY or VALUE OBJECT, add SERVICE • The interface is defined in terms of other elements in the domain model • Stateless
MODULE • Highly cohesive • Low coupling • Derived from
the Ubiquitous Language
AGGREGATE • Logical boundary for things that can change in
a business transaction of a given context. • Reduce many to many relationship • Root: outside objects holds references to
AGGREGATE
FACTORY • Produces complicated aggregates or sometimes also entities and
value objects
REPOSITORY • Interfaces for storing and retrieving Aggregate Roots
• Refactoring • Maintaining model integrity • …
THANK YOU!