ddd exchange

35
Define DDD Eric Evans domainlanguage.com

Upload: skills-matter

Post on 21-Aug-2015

3.399 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: DDD eXchange

Define DDD

Eric Evansdomainlanguage.com

Page 2: DDD eXchange

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.

Page 3: DDD eXchange

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.

Page 4: DDD eXchange

domain A sphere of knowledge, influence, or activity.

Define Domain

Page 5: DDD eXchange

model A system of abstractions that describes selected aspects of a domain.

Define Model

Page 6: DDD eXchange

Mercator Map

Page 7: DDD eXchange
Page 8: DDD eXchange

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.

Page 9: DDD eXchange

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

Page 10: DDD eXchange

context The setting in which a word or statement appears that determines its meaning.

Define Model

Page 11: DDD eXchange

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

Page 12: DDD eXchange
Page 13: DDD eXchange
Page 14: DDD eXchange
Page 15: DDD eXchange
Page 16: DDD eXchange
Page 17: DDD eXchange
Page 18: DDD eXchange
Page 19: DDD eXchange

Not all of a large system will be well designed.

Page 20: DDD eXchange

Subdomain Part of the domain, based on a particular conceptual decomposition of the domain.

Define Bounded Context

Page 21: DDD eXchange
Page 22: DDD eXchange
Page 23: DDD eXchange

Not Just Core Features;

Core Domain

Page 24: DDD eXchange

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.

Page 25: DDD eXchange

Building Blocks

• Entities• Value Objects• Services• Domain Events• Aggregates• Modules

Page 26: DDD eXchange

Aggregates

Page 27: DDD eXchange

Aggregate A cluster of run-time objects that are required to be consistent, whereas updates between aggregates may be asynchronous.

Define Bounded Context

Page 28: DDD eXchange

Service

Page 29: DDD eXchange

Service A significant process or transformation in the domain modeled as a stand-alone operation.

Define Bounded Context

Page 30: DDD eXchange

Domain Events

Something happened that domain experts care about.

Page 31: DDD eXchange

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

Page 32: DDD eXchange

Safe or Out?

Page 33: DDD eXchange

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.

Page 34: DDD eXchange

Areas Of Innovation

• Event Sourcing, CQRS, <new name here>– Udi Dahan– Greg Young

• Process Integration– Gojko Adzic– Eric Evans

Page 35: DDD eXchange

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.