Lärarguide · Lektion 2 av 10

DDD-grunder

Bounded context, entity, value object, ubiquitous language. Den abstraktaste lektionen — gör den konkret med whiteboard och kravdokument.

V1 Tor
Vecka / Dag
4 h
Total tid
120 min
Teori
90 min
Workshop

Lektionens mål

Agenda (4 h)

0:00
Incheckning + reflektion över DDD-läsningen från förra veckan.
0:20
Teori: bounded context — med exempel "Customer" i Sales vs Support.
1:00
Teori: entity vs value object med Money och Address som exempel.
1:30
Teori: ubiquitous language — varför namn är allt.
2:00
Paus 15 min
2:15
Workshop: modellera "bankkonto" från delat kravdokument.
3:30
Redovisning: varje grupp delar sin context-karta. Diskussion.
4:00
Slut

Talartips

När du förklarar bounded context: visa hur ordet "Customer" har olika fält och olika beteenden i olika kontexter. Customer i fakturering = adress + betalningsmetod. Customer i support = ärendehistorik + premium-flagga. Samma namn, olika modeller.
Value object är ofta det som studenter förstår sist. Ge dem fyra konkreta exempel: Money, DateRange, Email, Coordinate. Alla oföränderliga. Alla med likhet baserad på värde.
Diskutera "Customer" som värdeobjekt i support-kontexten — provocera och se vad som händer. Det tvingar fram resonemang istället för memorerade regler.

Workshop — modellera bankkonto

Dela klassen i grupper om 3. Dela ut kravdokumentet (förberett från L1) som beskriver: kontotyper, regler för uttag/insättning, kreditgräns, månadsavgift, transaktionshistorik.

  1. Identifiera potentiella bounded contexts (kortvy: Banking, Reporting, Compliance).
  2. Lista entities och value objects inom Banking-context.
  3. Skriv 5 termer i ubiquitous language med kort definition.
  4. Rita en context-karta på whiteboard / Miro.

För dem som är snabba

  • Lägg till en till context (t.ex. Fraud detection).
  • Identifiera vilka events som korsar context-gränser.

För dem som kämpar

  • Para ihop med mer erfaren student.
  • Ge ett halvfärdigt exempel — fyll i resten tillsammans.

FAQ

Måste vi alltid ha flera bounded contexts?
Nej. Små applikationer har ofta bara en. Men tänka i contexts hjälper när systemet växer.
Är primitiver som decimal tillåtna eller måste allt vara value objects?
Domänkonceptet driver. decimal är OK för intermediate. När semantik finns (pengar, procent) blir det en value object.
Hur många termer ska finnas i ubiquitous language?
Ingen siffra. Tillräckligt för att domänexperten och utvecklaren ska kunna prata utan översättning.
Hemuppgift Övningar 1–3 från lektion 02 i studentmaterialet. Lämna in context-kartan från workshopen som digital bild.
Förberedelse till L3 Be studenterna ha .NET 10 SDK och VS / Rider installerat. L3 är 100 % kod.

← L1 L3 →