Date post: | 21-Aug-2015 |
Category: |
Technology |
Upload: | skills-matter |
View: | 3,390 times |
Download: | 1 times |
Define DDD
Eric Evansdomainlanguage.com
DDD is a Set of Driving Principles
• Focus on the Core Domain.
• Explore models in a creative collaboration of domain practitioners and software practitioners.
• Speak a Ubiquitous Language within an explicitly Bounded Context.
DDD isA Pattern Language
• A set of interrelated problem/solution pairs that have helped teams realize the principles.
• A vocabulary and conceptual framework for discussing domain modeling and design.
domain A sphere of knowledge, influence, or activity.
Define Domain
model A system of abstractions that describes selected aspects of a domain.
Define Model
Mercator Map
The model we want…
• Helps us solve specific problems in our domain.
• Is not necessarily “realistic”.• Forms the basis of a language.• Is not the only model.
ubiquitous language A language structured around the domain model and used by all team members to connect all the activities of the team with the software.
Define Ubiquitous Language
context The setting in which a word or statement appears that determines its meaning.
Define Model
Bounded Context An operational definition of where a particular model is well-defined and applicable. (Typically a subsystem, or the work owned by a particular team).
Define Bounded Context
Not all of a large system will be well designed.
Subdomain Part of the domain, based on a particular conceptual decomposition of the domain.
Define Bounded Context
Not Just Core Features;
Core Domain
DDD is a Set of Driving Principles
• Focus on the Core Domain.
• Explore models in a creative collaboration of domain practitioners and software practitioners.
• Speak a Ubiquitous Language within an explicitly Bounded Context.
Building Blocks
• Entities• Value Objects• Services• Domain Events• Aggregates• Modules
Aggregates
Aggregate A cluster of run-time objects that are required to be consistent, whereas updates between aggregates may be asynchronous.
Define Bounded Context
Service
Service A significant process or transformation in the domain modeled as a stand-alone operation.
Define Bounded Context
Domain Events
Something happened that domain experts care about.
Domain Event Something happened that domain experts care about.
New information about activity in the domain
modeled as a series of discrete events.
Define Bounded Context
Safe or Out?
These are not the same:
• Subdomain – Decomposition of the domain.• Module – Decomposition of the model and
associated software.• Aggregate – Decomposition of the run-time
data.• Service – Decomposition of functionality.• Bounded Context – Linguistic boundary
marking the applicability of distinct models.
Areas Of Innovation
• Event Sourcing, CQRS, <new name here>– Udi Dahan– Greg Young
• Process Integration– Gojko Adzic– Eric Evans
DDD is a Set of Driving Principles
• Focus on the Core Domain.
• Iteratively explore models in a creative collaboration of domain practitioners and software practitioners.
• Speak a Ubiquitous Language within an explicitly Bounded Context.