Focusing the Core Domain Model
A Domain-Driven Design Case Study, Eric Evans, Domain Language
- @ericevans0 #dddesign #yow13
Focusing the Core Domain Model A Domain-Driven Design Case Study, - - PowerPoint PPT Presentation
Focusing the Core Domain Model A Domain-Driven Design Case Study, Eric Evans, Domain Language @ericevans0 #dddesign #yow13 Thirsty Fern FLLC A Mostly True Story About Strategic Design and Focusing the Core Domain with Established
Focusing the Core Domain Model
A Domain-Driven Design Case Study, Eric Evans, Domain Language
Thirsty Fern FLLC
A Mostly True Story About Strategic Design and Focusing the Core Domain with Established Formalisms
Anonymized Case Study
The Business Problem
Moistening Unit (M.M.U.).
business to grow while slowing rise in overhead and
Three MMUs (simplified)
One late arrival and double-back
C C C C C C C C C C C C C C
LATE! REVISIT
C C
Complicating Factors
Tuesday, etc.
urgent extra waterings…
Current Process
extensively modified.
The Idea
Research
Generic Subdomain —> Why not off-the-shelf?
sequence of visits.
two:
CEO Comes to Call
Digging Deeper with Domain Experts
should visit a given customer most of the time.
(But nobody has a better idea.)
Don’t Develop When:
Touching the Core Domain?
More Digging with Domain Experts
and poorly structured.
An Idea: Metrics for Templates
Each time “Daily” does not follow “Template”.
Each time Actual doesn’t follow Daily.
Exceptions
How much slack?
Waste
Code-probe these
“Sort of interesting, but what do we do with it?”
An Idea: Template Validator
C
water drive to C2 water wait drive to C1 water wait drive to C3 drive wait
Route
average watering time sequence* Duration
Customer
average drive time Duration Duration average wait time
Scenario that breaks the model
C
water drive to C2 water wait C1 window C2 window C2 window C3 window drive to C1 drive C3 water wait drive C2 drive missed window revisit
a time-window?)
Patience is not the same as analysis paralysis.
<<Two more blind alleys omitted.>>
My Sister the Rocket Scientist
results of cascades of events.
Look at this diagram
Modeling a Route Traversal
generating a single outcome at a time. C
water drive to C2 water wait C1 window C2 window C2 window C3 window drive to C1 drive C3 water wait drive C2 drive missed window revisit
Route
Interval watering time windows
*
sequence
*
Probability Distribution
Customer
drive time Probability Distribution
Historical Data
More Research
Statistical Modeling of a Route
Route
Interval Normal Distribution
mean sd
watering time windows * sequence *
Log Normal Distribution
mean sd
Customer
drive time
Delivery of Version 1
Polymorphic, pluggable distributions.
Hmm…)
Results
Modeling
core domain model and give it clearer expression.
Version 1 Problems
and come back.
creeping in everywhere, and using legacy concepts that didn’t fit.
Bounded Contexts
model’s definitions and assertions strictly apply.
set of packages and a set of tables, a different technology platform…
customers, windows, templates, plus watering times, etc.
Separately Deployed Service — Set Rules
Compute distributions. No other access to legacy. Replicate/recreate at will.
Version 2
User drags customer to different route and gets immediate feedback on performance of set.
Strategic Design Exploration
paralysis).
area of focus).