ddd exchange

Post on 21-Aug-2015

3.399 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

top related