Voorbereiding
1. Introductievideo aggregates
📺 Bekijk deze video aan de hand van onderstaande kijkwijzer:
- De eerste 4 delen van de video tot en met 2:21 is herhaling. Check voor jezelf je dat geen nieuwe dingen hoort.
- Deel 5 "Domain Events" van 2:22 tot en met 2:50 behandelen we niet verder in deze cursus. De details hiervan hoef je niet te begrijpen of te kennen.
- Deel 6 "Aggregates" van 2:51 tot en met 3:38 is het belangrijkste van de video. Zorg dat je dit stuk conceptueel begrijpt
- Deel 7 van 3:39 tot einde gaat over Repositories. Een repository is te vergelijken met wat wij tot nu toe de Store hebben genoemd. Zie het info-blok hieronder om te zien hoe dit er in een sequentiediagram uitziet.
❓ Neem deze quiz om je kennis over Aggregates te toetsen.
Hieronder zie je hoe je de aggregate Car in een klassendiagram kan weergeven. Klap evt. de balk eronder open om de originele PlantUML code te bekijken of te kunnen kopieren of een automatisch gegenereerde tekst 'in natuurlijk taal' van het diagram te krijgen (in Beta) voor extra begrijpelijkheid of accessibility (A11y).
Het sequentiediagram hieronder laat zien dat een gewijzigde Car in de Store wordt opgeslagen. Zoals in de vorige les behandelt mag alleen een 'app-type klasse' met de Store communiceren. Dus de app slaat de Car op.
De aggregate Car is bedoeld om te voorkomen dat een car die niet in een valide state is (omdat er maar drie wielen zijn bijvoorbeeld) wordt opgeslagen in de Store.
Volgende week gaan we een Spring Boot applicatie maken die daadwerkelijk gebruik maakt van een repository; deze week gebruiken we nog het begrip Store.
2. Verdieping Aggregates
- 📺 Bekijk deze video tot en met 3:32.
- 📝 Maak het klassendiagram in
<jouw repo van week 2>/les3/voorbereiding/onderdeel2af op basis van de beschrijving die je daar vindt en de video.
Wees niet al te lang bezig met de oefening. Het is vooral bedoeld om te zorgen dat je de video goed begrijpt en een beetje handigheid krijgt in aggregates aangeven in plantuml.
Na 3:32 behandelt de spreker het voorbeeld in code. Dit kan interessant zijn om te bekijken als je geïnteresseerd bent. Het is echter C#-code en dat kan wellicht wat verwarrend zijn, daarom is het niet verplicht.
3. Oefening met kiezen van Aggregate
- 📃 Lees de casus 'Budget' in
<jouw repo van week 2>/les3/voorbereiding/onderdeel3/README.md - 📝 Maak de opgaven in
<jouw repo van week 2>/les3/voorbereiding/onderdeel3/README.md