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
280
Domain Driven Design
Buzzvil
December 12, 2018
Tweet
Share
More Decks by Buzzvil
See All by Buzzvil
220903_GFS
buzzvil
0
470
Git 해부하기 2 + 3
buzzvil
0
37
Metastable Failure
buzzvil
0
230
Git 해부하기
buzzvil
0
48
Introduction to Plate Solving
buzzvil
0
39
Airbnb Minerva
buzzvil
0
320
Shape up 방법론
buzzvil
0
950
Buzzvil Billing Data Pipeline
buzzvil
0
550
Journey of Dash's release-cycle
buzzvil
0
180
Featured
See All Featured
Balancing Empowerment & Direction
lara
1
340
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Music & Morning Musume
bryan
46
6.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Facilitating Awesome Meetings
lara
54
6.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Statistics for Hackers
jakevdp
799
220k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Faster Mobile Websites
deanohume
307
31k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
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!