3. Outline
• Software Design activity
• Software Projects issues
• DDD approach
• Explore the problem space with Collaborative Design
• Implement the solution space with Strategic Design & Tactical
Design
22. ROOM
- name
ROOM
- building
- floor
- capacity
- lighting
- air conditioner
Code created without a common language
The same term but with different meaning
VS
37. Domain
Domain Model
The reality
An abstraction of reality
designed to manage
complexity for specific
business cases
A projection
of the Real Domain
THE PROBLEM SPACE THE SOLUTION SPACE
73. Subdomains of a book e-commerce platform
LibraryMembership
Payments
Customer
Support
Shipping
Marketing
74. YOU CAN'T EQUALLY SPREAD
EFFORT AND QUALITY
THROUGHOUT THE ENTIRE SYSTEM
75. ‣ WHAT ARE THE PARTS OF THE PRODUCT
THAT WILL MAKE IT A SUCCESS ?
‣ WHY ARE THESE PARTS OF THE SYSTEM
IMPORTANT ?
‣ WHY CAN’T THEY BE BOUGHT OFF THE
SHELF ?
80. Paper justifying why the
product is a good idea
Whiteboard
with salient points
Shared understanding
of what is core
CAPTURE THE CORE DOMAINS VISION
90. KEEP THE CODE MODEL CLEAN
OF TECHNICAL CONCERNS
AND FOCUS ON THE DOMAIN
91. THE PRODUCT VIEW WITH DDD
The Domain Model
The application layer
is the client of the
domain layer and
represent the use
case of the product
The logic layer (application Service)
represents the logic processes and
concepts of the domain
infrastructure
UI
113. ‣ Design is the art of trade-off
‣ DDD enhances synergy and alignment between teams
‣ DDD focus on main concepts :
‣ Ubiquitous Language,
‣ Bounded Context,
‣ Core Domains
CONCLUSION