What Ive Learned About DDD Since the Book August 2003- March 2009 - - PowerPoint PPT Presentation

what i ve learned
SMART_READER_LITE
LIVE PREVIEW

What Ive Learned About DDD Since the Book August 2003- March 2009 - - PowerPoint PPT Presentation

What Ive Learned About DDD Since the Book August 2003- March 2009 Eric Evans Domain Language, Inc. I am a Hands-on Modeller. What Ive Learned About What is Essential Creative collaboration of domain experts and software experts.


slide-1
SLIDE 1

What I’ve Learned About DDD Since the Book

August 2003- March 2009 Eric Evans

Domain Language, Inc.

slide-2
SLIDE 2

I am a Hands-on Modeller.

slide-3
SLIDE 3

What I’ve Learned About

What is Essential

  • Creative collaboration of domain experts

and software experts.

  • Exploration and experimentation
  • Emerging models shaping and reshaping

the ubiquitous language.

  • Explicit context boundaries
  • Focus on the core domain.
slide-4
SLIDE 4

services entities value objects repositories factories

What I’ve Learned About

Building Blocks

slide-5
SLIDE 5

What I’ve Learned About

Building Blocks

  • They are overemphasized.
  • But let’s add another one anyway!
slide-6
SLIDE 6

Domain Events

Something happened that domain experts care about.

slide-7
SLIDE 7

What do we do with

Domain Events

  • Clearer, more expressive models
  • Architectural options

– Representing the state of entities – Decoupling subsystems with event streams – Enabling high-performance system (Greg Young style)

slide-8
SLIDE 8

What I’ve Learned About

Aggregates

slide-9
SLIDE 9

What do we do with

Aggregates

  • Consistency boundaries

– Transactions – Distribution – Concurrency

  • Conceptual whole

– Properties – Invariants

slide-10
SLIDE 10

What I’ve Learned About

Strategic Design

  • Context Mapping
  • Distillation of the Core Domain
  • Large-Scale Structure
slide-11
SLIDE 11

What I’ve Learned About

Large-Scale Structure

It just doesn’t come up very often.

slide-12
SLIDE 12

What I’ve Learned About

Setting the Stage

  • Don’t spread modelling too thin.
  • Focus on the core domain.
  • Clean, bounded context.
  • Iterative process.
  • Access to domain experts.
slide-13
SLIDE 13

What I’ve Learned About

Context Mapping

slide-14
SLIDE 14

There are always multiple models.

slide-15
SLIDE 15

context The setting in which a word or statement appears that determines its meaning. bounded context A description of the conditions under which a particular model applies.

Define Context

slide-16
SLIDE 16

Partners

  • Mutually Dependent
  • Cooperative
slide-17
SLIDE 17

Big Ball of Mud

http://www.laputan.org/mud/

slide-18
SLIDE 18

Context Mapping Step-by-Step

  • 1. What models (or BBoM) do we know of?

(Draw blob for each and name it.)

  • 2. Where does each apply? (Define

boundary in words.)

  • 3. Where is information exchanged? (Draw

connection.)

  • 4. What is the relationship?

(Upstream/downstream? Partner? Etc.)

slide-19
SLIDE 19

Strategy

  • Draw a Context Map.
  • Work with business leadership to define

Core Domain.

  • Design a platform that supports work in

the Core Domain.

  • Work with management to give freedom to

the Core Domain Platform Context.

  • Develop and model in the Core Domain.
slide-20
SLIDE 20

What I’ve Learned About

DDD and SOA

  • 1. The service interface must be defined in

some context.

  • 2. Internals also, but often not the same
  • ne.
  • 3. The service interface may define a

context boundary.

slide-21
SLIDE 21

Precision designs are fragile

slide-22
SLIDE 22

Precision designs are fragile Sophisticated design techniques are wasted in a ball of mud.

slide-23
SLIDE 23

Anticorruption Layer

slide-24
SLIDE 24

Not all of a large system will be well designed.

slide-25
SLIDE 25

DDD Resources

www.domaindrivendesign.org Domain-Driven Design by Eric Evans www.domainlanguage.com