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
Technically DDD
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
pelshoff
July 06, 2017
Programming
150
1
Share
Technically DDD
pelshoff
July 06, 2017
More Decks by pelshoff
See All by pelshoff
Push your side effects to the edge
pelshoff
0
130
Testing Absolute Units
pelshoff
0
110
Confidently Insured
pelshoff
0
220
Final Class Aggregate
pelshoff
0
270
Technically DDD v10
pelshoff
0
170
From Conversation to Software v3
pelshoff
0
150
TDD, DDD & Teamwork v2
pelshoff
0
230
Technically DDD C# v10
pelshoff
1
280
A Practical Introduction to Domain Driven Design
pelshoff
4
330
Other Decks in Programming
See All in Programming
過去のレビュー知見をSkillsで資産化した話
pkshadeck
PRO
1
1k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
100
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1k
Kingdom of the Machine
yui_knk
2
1.4k
🦞OpenClaw works with AWS
licux
1
330
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
140
Firefoxにコントリビューションして得られた学び
ken7253
2
150
Making the RBS Parser Faster
soutaro
0
660
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
420
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
190
Back to the roots of date
jinroq
0
670
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
250
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
280
Accessibility Awareness
sabderemane
1
110
The SEO Collaboration Effect
kristinabergwall1
1
440
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Facilitating Awesome Meetings
lara
57
6.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
170
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
The Language of Interfaces
destraynor
162
26k
Rails Girls Zürich Keynote
gr2m
96
14k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
380
Transcript
None
Technically DDD DDDDeventer, 2017-07-06 19:45:00.000000
Pim Elshoff developer.procurios.com @pelshoff
None
None
Questions?
None
Context
Value objects
None
None
Value objects • Express a value • Business rules here
• Immutable • Easy to unit test
Entities
None
Entities • Have identity • More than the sum of
their attributes • Evolve over time • If there really really really is no VO possible, then business rules here • Slightly harder to test
Services
None
Services • No identity or attributes (Not a “thing”) •
Cross-concern operations • Business rules that need more data than any single entity knows • Harder to test
Aggregates
None
Aggregates • Collection of objects • Interaction through root •
If there really really really is no VO possible, then business rules here • Harder to test
Repositories
Repositories • Collection of all objects of a type
final class Address
final class BicycleService
final class StreetAddress
final class Investment
None
None
Meetings cannot end before they start
None
None
None
None
None
Program slots cannot occur in the same room at the
same time
None
None
None
None
None
None
None
None
Program slots must occur within the duration of the meeting
None
Pim Elshoff developer.procurios.com @pelshoff