Domain-driven design - tactical patterns
-
Upload
tom-janssens -
Category
Software
-
view
485 -
download
0
Transcript of Domain-driven design - tactical patterns
![Page 1: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/1.jpg)
Domain-driven design
Tactical patternsby @tojans
![Page 2: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/2.jpg)
AGILE
![Page 3: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/3.jpg)
1 BASIC
![Page 4: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/4.jpg)
Make the
implicit
EXPLICIT
![Page 5: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/5.jpg)
Language
Boundaries
Code
![Page 6: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/6.jpg)
Language
Boundaries
Code
![Page 7: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/7.jpg)
Language
Boundaries
Code
![Page 8: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/8.jpg)
![Page 9: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/9.jpg)
A languagedefines – and is defined by
A CONTEXT
![Page 10: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/10.jpg)
“Language comes first.
It's not that language
grows out of consciousness,
if you haven't got language,
you can't be conscious.”- Alan Moore -
![Page 11: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/11.jpg)
Language
Boundaries
Code
![Page 12: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/12.jpg)
Language
Boundaries
Code
![Page 13: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/13.jpg)
Language
Boundaries
Code
![Page 14: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/14.jpg)
![Page 15: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/15.jpg)
Proper
Boundaries
![Page 16: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/16.jpg)
Language
Lifecycle
DimensionsOrganisational
DependenciesContracts
AvailabilityRace conditions
![Page 17: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/17.jpg)
Modules
Event sourcing
EntitiesServices
Value objectsFactories
RepositoriesAggregates
CQS / CQRS
![Page 18: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/18.jpg)
Language
Boundaries
Code
![Page 19: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/19.jpg)
Language
Boundaries
Code
![Page 20: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/20.jpg)
Language
Boundaries
Code
![Page 21: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/21.jpg)
![Page 22: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/22.jpg)
Signal/Noise
![Page 23: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/23.jpg)
![Page 24: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/24.jpg)
![Page 25: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/25.jpg)
![Page 26: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/26.jpg)
Language
Boundaries
Code
![Page 27: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/27.jpg)
Language
Boundaries
Code
![Page 28: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/28.jpg)
Make the
implicit
EXPLICIT
![Page 29: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/29.jpg)
Pop Quiz
![Page 30: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/30.jpg)
![Page 31: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/31.jpg)
Gedanken
experiment- Albert Einstein -
![Page 32: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/32.jpg)
![Page 33: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/33.jpg)
Software development
is a learning process
Working code
is a side effect.- Alberto Brandolini- -
![Page 34: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/34.jpg)
![Page 35: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/35.jpg)
“When we set out to write software,
we never know enough.”- Eric Evans -
![Page 36: Domain-driven design - tactical patterns](https://reader035.fdocuments.us/reader035/viewer/2022062901/58f0fbb91a28ab95468b45d1/html5/thumbnails/36.jpg)
Questions?@tojans