refactoring for domain driven design
DESCRIPTION
This talk goes from refactoring into some of the basics about Domain Driven Design.TRANSCRIPT
![Page 1: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/1.jpg)
Refactoring towardsDomain Driven Design
DAV ID BERL INER
![Page 2: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/2.jpg)
The sources of all knowledge:
![Page 3: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/3.jpg)
Who am I ?Developer at BetTech.I've been coding for a decade.@manatok
![Page 4: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/4.jpg)
“…is a disciplined technique for restructuring an existing body of code,
altering its internal structure without changing its external behavior.…”
Martin Fowler
![Page 5: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/5.jpg)
![Page 6: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/6.jpg)
![Page 7: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/7.jpg)
+ Adding features
+ Shortcuts and hacks
+ Team growth
= increased complexity
![Page 8: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/8.jpg)
No thanks!We're
too busy.
![Page 9: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/9.jpg)
TIME
CU
MU
LATI
VE F
UN
CTI
ON
ALIT
Y
NO DESIGN
GOOD DESIGN
DESIGN PAY-OFF LINE
![Page 10: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/10.jpg)
So...how do we do it?
![Page 11: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/11.jpg)
![Page 12: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/12.jpg)
![Page 13: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/13.jpg)
Refactoring requires prioritisation
![Page 14: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/14.jpg)
Boyscout refactoring
![Page 15: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/15.jpg)
What is considered “code litter”?
![Page 16: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/16.jpg)
![Page 17: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/17.jpg)
![Page 18: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/18.jpg)
DomainDriven
Design
![Page 19: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/19.jpg)
Ubiquitous language
Bounded context
![Page 20: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/20.jpg)
![Page 21: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/21.jpg)
![Page 22: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/22.jpg)
![Page 23: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/23.jpg)
![Page 24: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/24.jpg)
![Page 25: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/25.jpg)
![Page 26: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/26.jpg)
![Page 27: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/27.jpg)
![Page 28: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/28.jpg)
Ubiquitous
Language
Define
model
with
Identify
model
with
Process
model
with
Express
model
with
MODEL DRIVEN DESIGN
Express
model
with
Isolate
domain
with
Express
state change
with
Bounded
ContextsServices Entities
Value
Objects
Layered
ArchitectureEvents
![Page 29: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/29.jpg)
![Page 30: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/30.jpg)
![Page 31: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/31.jpg)
AN
TI-
CO
RR
UP
TIO
N L
AY
ER
![Page 32: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/32.jpg)
AN
TI-
CO
RR
UP
TIO
N L
AY
ER
![Page 33: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/33.jpg)
final thoughts
![Page 34: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/34.jpg)
+ You don’t have to drink ALL the kool-aid to benefit
+ See the good side of a messy system
+ Be consistent
![Page 35: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/35.jpg)
Thankyou
![Page 36: Refactoring for Domain Driven Design](https://reader033.vdocuments.mx/reader033/viewer/2022042521/5474e9b4b4af9f980a8b5846/html5/thumbnails/36.jpg)