domain driven design
TRANSCRIPT
![Page 1: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/1.jpg)
Introduction to Domain Driven Design
How can an IT Dev Dept improve in achieving business driven goals
![Page 2: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/2.jpg)
Successful enterprise must be able adapt fast to new market conditions
![Page 3: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/3.jpg)
IT department is a key element to support such change
• Business complexity grows and changes quickly!
• We must find the way how to achieve the goals set by a business!
![Page 4: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/4.jpg)
Understand and follow DDD paradigms
![Page 5: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/5.jpg)
We have been doing all these things, but our own way
![Page 6: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/6.jpg)
Spaghetti code
![Page 7: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/7.jpg)
Objects with too many responsibilities
![Page 8: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/8.jpg)
Untested code is difficult to change later
• application bugs
• creating of Heroes
• barrier for new features
![Page 9: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/9.jpg)
Fear Driven Development
![Page 10: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/10.jpg)
We should utilize existing knowledge and best practices
![Page 11: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/11.jpg)
What is DDD?
• Domain Knowledge
• Ubiquitous Language
• Bounded Context
![Page 12: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/12.jpg)
Layered Architecture
![Page 13: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/13.jpg)
Building Blocks
• Entity: Contractor, Contractor Rate
• Value Object: CXC_Date
• Aggregate: Invoice, Contractor, Wree
• Service: Company Service
• Factory: Company Contact Factory
• Repository: Contractor Repository
![Page 14: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/14.jpg)
Building Blocks
![Page 15: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/15.jpg)
Started with Entities
![Page 16: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/16.jpg)
Factories
Unit tested!
![Page 17: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/17.jpg)
Services
![Page 18: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/18.jpg)
Repositories
![Page 19: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/19.jpg)
Repositories
![Page 20: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/20.jpg)
Aggregates
Aggregate Root
Aggregate Members
![Page 21: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/21.jpg)
Value Objects
![Page 22: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/22.jpg)
What is next?
![Page 23: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/23.jpg)
Improve Domain Layer
• Ongoing process of refactoring driven by Business requirements
• No need for complete overhaul – iterative process is more aligned with Business needs.
![Page 24: Domain Driven Design](https://reader034.vdocuments.us/reader034/viewer/2022042701/55a927481a28abae768b456c/html5/thumbnails/24.jpg)
Thank you!