SlideShare a Scribd company logo
DOMAIN DRIVEN DESIGN
DDD på 7 slides og (forhåbentligt) 7 minutter
Christian Dalager, Eksponent.com, Juni 2015
DOMAIN OG DESIGN
 Domain – området der arbejdes i
 Model – en abstraktion der beskriver udvælge dele af domænet
FOKUS PÅ ITERATIVT SAMARBEJDE
 Domæneeksperter og udviklere snakker sammen tidligt
 Input resulterer i designmodeller og prototyper
 Det afprøves hurtigt og kastes hurtigt over skulderen
UBIQUITOUS LANGUAGE
 Igennem samtaler og workshops
findes et fælles sprog
 Det er vigtigt at kunden
(domæneeksperten) og du
(designeren) ALDRIG ER I TVIVL om
betydningen af hinandens
udtalelser om domænet
 Hvis der er tåget sprog får du tåget
software.
Domain experts should object to terms
or structures that are awkward or
inadequate to convey domain
understanding; developers should
watch for ambiguity or inconsistency
that will trip up design.
- Eric Evans
MODELLERING AF DOMÆNE
 Hvad er kerneelementerne i domænet? (Aggregates)
 Hvad sker der i domænet? (DomainEvent)
 Det Store Domæne™ nedbrydes til relevante subsystemer
(Bounded Context)
BOUNDED CONTEXT
 Komplekse systemer kan opdeles i afgrænsede subsystemer
 De udgør separate kontekster for forretningsregler og brugere
 Hver kontekst/subdomæne vil have forskellige
definitioner/regler/behov
 En bounded context har skarpe grænser til andre contexts
GAME OVER. REPLAY?
 Bøger
 Eric Evans: Domain Driven Design
 Vaughn Vernon: Implementing Domain-Driven Design
 Vaughn Vernons blog: http://vaughnvernon.co/
 Pluralsight
 Interview med Eric Evans i SE-Radio, maj 2015: http://www.se-
radio.net/2015/05/se-radio-episode-226-eric-evans-on-domain-
driven-design-at-10-years/
 EventStorming: workshopform til domæneanalyse
(http://ziobrando.blogspot.dk/2013/11/introducing-event-
storming.html

More Related Content

More from Christian Dalager

En time om det der internet
En time om det der internetEn time om det der internet
En time om det der internet
Christian Dalager
 
Open APIs - concepts. applications. visualizations.
Open APIs - concepts. applications. visualizations.Open APIs - concepts. applications. visualizations.
Open APIs - concepts. applications. visualizations.
Christian Dalager
 
Tag trykket af dit (eksterne) API med Azure WebJobs
Tag trykket af dit (eksterne) API med Azure WebJobsTag trykket af dit (eksterne) API med Azure WebJobs
Tag trykket af dit (eksterne) API med Azure WebJobs
Christian Dalager
 
Gå ned i vægt med Azure Mobile Services
Gå ned i vægt med Azure Mobile ServicesGå ned i vægt med Azure Mobile Services
Gå ned i vægt med Azure Mobile Services
Christian Dalager
 
Azure Mobile Services (Danish)
Azure Mobile Services (Danish)Azure Mobile Services (Danish)
Azure Mobile Services (Danish)
Christian Dalager
 
Put kajakken på hylden - og få sexede windows services
Put kajakken på hylden - og få sexede windows servicesPut kajakken på hylden - og få sexede windows services
Put kajakken på hylden - og få sexede windows services
Christian Dalager
 

More from Christian Dalager (6)

En time om det der internet
En time om det der internetEn time om det der internet
En time om det der internet
 
Open APIs - concepts. applications. visualizations.
Open APIs - concepts. applications. visualizations.Open APIs - concepts. applications. visualizations.
Open APIs - concepts. applications. visualizations.
 
Tag trykket af dit (eksterne) API med Azure WebJobs
Tag trykket af dit (eksterne) API med Azure WebJobsTag trykket af dit (eksterne) API med Azure WebJobs
Tag trykket af dit (eksterne) API med Azure WebJobs
 
Gå ned i vægt med Azure Mobile Services
Gå ned i vægt med Azure Mobile ServicesGå ned i vægt med Azure Mobile Services
Gå ned i vægt med Azure Mobile Services
 
Azure Mobile Services (Danish)
Azure Mobile Services (Danish)Azure Mobile Services (Danish)
Azure Mobile Services (Danish)
 
Put kajakken på hylden - og få sexede windows services
Put kajakken på hylden - og få sexede windows servicesPut kajakken på hylden - og få sexede windows services
Put kajakken på hylden - og få sexede windows services
 

Domain-Driven Design på 7 min

  • 1. DOMAIN DRIVEN DESIGN DDD på 7 slides og (forhåbentligt) 7 minutter Christian Dalager, Eksponent.com, Juni 2015
  • 2. DOMAIN OG DESIGN  Domain – området der arbejdes i  Model – en abstraktion der beskriver udvælge dele af domænet
  • 3. FOKUS PÅ ITERATIVT SAMARBEJDE  Domæneeksperter og udviklere snakker sammen tidligt  Input resulterer i designmodeller og prototyper  Det afprøves hurtigt og kastes hurtigt over skulderen
  • 4. UBIQUITOUS LANGUAGE  Igennem samtaler og workshops findes et fælles sprog  Det er vigtigt at kunden (domæneeksperten) og du (designeren) ALDRIG ER I TVIVL om betydningen af hinandens udtalelser om domænet  Hvis der er tåget sprog får du tåget software. Domain experts should object to terms or structures that are awkward or inadequate to convey domain understanding; developers should watch for ambiguity or inconsistency that will trip up design. - Eric Evans
  • 5. MODELLERING AF DOMÆNE  Hvad er kerneelementerne i domænet? (Aggregates)  Hvad sker der i domænet? (DomainEvent)  Det Store Domæne™ nedbrydes til relevante subsystemer (Bounded Context)
  • 6. BOUNDED CONTEXT  Komplekse systemer kan opdeles i afgrænsede subsystemer  De udgør separate kontekster for forretningsregler og brugere  Hver kontekst/subdomæne vil have forskellige definitioner/regler/behov  En bounded context har skarpe grænser til andre contexts
  • 7. GAME OVER. REPLAY?  Bøger  Eric Evans: Domain Driven Design  Vaughn Vernon: Implementing Domain-Driven Design  Vaughn Vernons blog: http://vaughnvernon.co/  Pluralsight  Interview med Eric Evans i SE-Radio, maj 2015: http://www.se- radio.net/2015/05/se-radio-episode-226-eric-evans-on-domain- driven-design-at-10-years/  EventStorming: workshopform til domæneanalyse (http://ziobrando.blogspot.dk/2013/11/introducing-event- storming.html