Introduction to DDD
-
Upload
ferose-j -
Category
Technology
-
view
218 -
download
0
description
Transcript of Introduction to DDD
![Page 1: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/1.jpg)
Introduction to Domain Driven Design
Ferose Khan J
![Page 2: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/2.jpg)
01 WHY BOTHER ABOUT DOMAIN?
![Page 3: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/3.jpg)
Domain
“Every software program relates to some activity or interest of its user. That subject area to which the user applies the program is the DOMAIN of the software.”
![Page 4: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/4.jpg)
Story…
![Page 5: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/5.jpg)
02 IS UNDERSTANDING DOMAIN EASY?
![Page 6: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/6.jpg)
Let’s have some fun
![Page 7: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/7.jpg)
What I wanted
![Page 8: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/8.jpg)
Crunching Knowledge
• Brainstorming• Continuous learning• Effective modeling• Make concepts explicit
![Page 9: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/9.jpg)
Language…
![Page 10: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/10.jpg)
Communication
• Ubiquitous language• Model out loud• One team one language• Documents & diagram aid
communication
![Page 11: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/11.jpg)
03 HOW TO BIND MODEL & IMPLEMENTATION?
![Page 12: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/12.jpg)
Problem
Analysis Model Design model
![Page 13: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/13.jpg)
Analysis model
Module1
Module2
Module3 Module4
Module3 Module8 Module9
Module5 Module6
![Page 14: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/14.jpg)
Design model
![Page 15: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/15.jpg)
Where’s the problem?
![Page 16: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/16.jpg)
Ivory tower architect
No feedback from team
![Page 17: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/17.jpg)
Results in brave speeches in the end
![Page 18: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/18.jpg)
Solutions is hands-on modelers
![Page 19: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/19.jpg)
Do Model Driven Design
• One model• Analysis and design one iterative
loop• Design a little• Make code an expression of model
![Page 20: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/20.jpg)
04 WHAT ABOUT OTHER TECHNICAL REQUIREMENTS?
![Page 21: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/21.jpg)
Isolate the domain from them
![Page 22: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/22.jpg)
Model lives @Domain layer
![Page 23: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/23.jpg)
05 HOW TO EXPRESS MODEL IN S/W?
![Page 24: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/24.jpg)
Entities
![Page 25: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/25.jpg)
Value Objects
![Page 26: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/26.jpg)
Associations
![Page 27: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/27.jpg)
Services
![Page 28: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/28.jpg)
06 WHAT ABOUT THE LIFE CYCLE OF DOMAIN OBJECT?
![Page 29: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/29.jpg)
Aggregates
![Page 30: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/30.jpg)
Factories
![Page 31: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/31.jpg)
Repositories
![Page 32: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/32.jpg)
07 SO WHAT?
![Page 33: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/33.jpg)
Our Domain
![Page 34: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/34.jpg)
Medical software
• Saves life• Improves quality of life
![Page 35: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/35.jpg)
Give a try
![Page 36: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/36.jpg)
Questions?
![Page 37: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/37.jpg)
Thanks
![Page 38: Introduction to DDD](https://reader036.fdocuments.net/reader036/viewer/2022081504/554f3538b4c905471e8b4574/html5/thumbnails/38.jpg)
Ferose Khan Jeberlat @ferosekhanjd ferosekhanj.wordpress.coml http://lnkd.in/UJry2c