6 mei 2025
Leestijd 8 min

In juni 2023 namen vier ACA-collega's deel aan de Foundations Day van het meerdaagse evenement van Domain-Driven Design Europe (DDD Europe). In het Meervaarttheater in Amsterdam woonden ze verschillende lezingen bij die een praktisch perspectief boden op DDD-concepten. Het volledige verslag staat hieronder.
Na een verfrissende koffie voor de vroege vogels en de welkomstwoorden van de organisatoren, volgde een vol programma van acht lezingen met live codering.
Deze blogpost biedt een beknopt overzicht van alle presentaties, gevolgd door een evaluatie op verschillende gebieden: inspiratie van de spreker, relevantie voor Domain-Driven Design (DDD), gebruikte analysetechnieken en technische bruikbaarheid van de informatie.
Beoordelingen
Domeinconcepten omzetten in code
Deze sessie werd geleid door Paul Rayner, een Australiër die in de Verenigde Staten woont. Hij gaf een gestructureerde en boeiende sessie met nieuwe inzichten in Domain-Driven Design en codering, met een sterke voorkeur voor Test-Driven Design. Hij verdiepte zich in het concept van uitgebreide garanties en demonstreerde dit stap voor stap in Ruby code met behulp van Event Storming.
Naarmate zijn verhaal vorderde en de complexiteit toenam, pakte hij vragen die voortkwamen uit Event Storming vakkundig aan met een Test-Driven aanpak. Zijn afsluitende boodschap was duidelijk: "Wees niet bang om code te refactoren als je start vanuit een fundamentele Test-Driven methode!".
Zelfs voor degenen met beperkte kennis van DDD was de logica in zijn redenering tijdens het live coderen gemakkelijk te volgen. Hoewel hij niet gepland staat als spreker voor de komende editie van DDD Europe, als je ooit de kans krijgt om een sessie van Paul Rayner bij te wonen, aarzel dan niet: het is een echte aanrader.
Scorekaart (1-5):
- Inspiratie: 3
- Relevantie voor DDD: 5
- Analysetechnieken: 4
- Technische bruikbaarheid: 4
Model Mitose: Een dynamisch patroon om met modelspanning om te gaan
Deze onderhoudende sessie werd gegeven door Julien Topçu en Josian Chevalier. Ze presenteerden een sessie binnen de context van de Mandalorian uit de Star Wars saga, waarin ze verschillende typische valkuilen in een ontwikkelproces demonstreerden. Het was een volledig gescripte sessie waarbij de live codering zogenaamd werd gedaan door een AI genaamd Chat3PO. Ze gebruikten echter wel een aantal interessante concepten zoals een Shared Kernel en een Anti-Corruption Layer.
Omdat het een scriptsessie was, werd er weinig tijd verspild aan het schrijven van code. Hierdoor konden ze gemakkelijk overschakelen naar domeinoverzichten, waardoor het verhaal coherent bleef.
Deze sessie is zeker een aanrader omdat het een interessante evolutie binnen een domein belicht. In de laatste vijf minuten gaven ze ook een goede samenvatting van de evolutie die ze doormaakten in hun scenario en verwezen ze naar het Hive Pattern waarin dit concept verder wordt uitgewerkt.
Scorekaart (1-5):
- Inspiratie: 5
- Relevantie voor DDD: 4
- Analysetechnieken: 4
- Technische bruikbaarheid: 3
TDD & DDD vanaf de basis - Chris Simon
Tijdens de sessie "TDD & DDD from the Ground Up" werden verschillende principes van Domain-Driven Design (DDD) belicht aan de hand van een live codeervoorbeeld van Test-Driven Development (TDD). De ervaren spreker, Chris Simon, deelde zijn uitgebreide kennis over dit onderwerp. Dankzij zijn grondige voorbereiding, diepgaande kennis van het onderwerp en aangename tempo was deze sessie geschikt voor een publiek van ontwikkelaars en analisten die de basisprincipes van TDD wilden verkennen.
Hoewel het TDD-gedeelte goed werd uitgevoerd, ontbrak er een duidelijk verband met DDD. Daardoor voelde de sessie meer aan als een TDD-demo, met slechts beperkte aandacht voor DDD-principes. Bovendien werd de kijkervaring negatief beïnvloed door de lage kwaliteit van de geprojecteerde code, in combinatie met de aanwezigheid van veel zonlicht in de zaal.
Voor degenen die een solide basis in Test-Driven Development willen leggen, was deze sessie zeker een aanrader. Als je echter meer geïnteresseerd bent in Domain-Driven Design, zijn er betere sessies beschikbaar die meer diepgang bieden.
Scorekaart (1-5):
- Inspiratie: 4
- Relevantie voor DDD: 2
- Analysetechnieken: 1
- Technische bruikbaarheid: 4
De school van Escher: Modelleren met functies
Tijdens "De Escherschool: Modelleren met functies" demonstreerde Einar Høst het concept van functiemodellering door middel van live codering in de functionele programmeertaal Elm. Het voorbeeld toonde talloze vectortransformaties om afbeeldingen te manipuleren.
De presentatie sprak ontwikkelaars zeker aan. Het was fascinerend om getuige te zijn van de indrukwekkende resultaten die bereikt kunnen worden met relatief eenvoudige vectortransformaties. Voor analisten had de sessie echter waarschijnlijk minder onmiddellijke waarde. Omdat de presentatie erg technisch was, misten we een duidelijke link naar Domain-Driven Design.
Ondanks de visueel verbluffende resultaten leek de sessie af te dwalen van de context van een DDD-conferentie.
Scorekaart (1-5):
- Inspiratie: 2
- Relevantie voor DDD: 1
- Analysetechnieken: 1
- Technische bruikbaarheid: 3
TDD: voorbij de intro deel één & twee
De tweedelige talk "TDD: Beyond the Intro" van Romeu Moura suggereerde een diepere duik in Test-Driven Development, en dat is precies wat we kregen. Moura begon met de basis van TDD, maar ging al snel verder dan de "red-green-refactor" cyclus. Hij zag TDD als een Socratische dialoog, een methode van redeneren met tests als "veldnotities". Zijn verhaal was diepgaand en duidelijk, hoewel het tempo soms wat laag lag, waardoor het een uitdaging was om volledig betrokken te blijven.
Ondanks de DDD-context van de conferentie besteedde Moura weinig tot geen aandacht aan Domain-Driven Design. De focus lag meer op de algemene principes van TDD en hoe die in de praktijk kunnen worden toegepast. De lezing bevatte ook een live codeersegment, waarbij Moura een eenvoudige fizzbuzz applicatie bouwde met behulp van TDD. Hoewel dit een nuttige illustratie was van de besproken principes, was het niet noodzakelijk essentieel om de lezing te begrijpen.
Over het algemeen was dit een waardevolle lezing voor mensen met een technische achtergrond die meer willen leren over TDD: diepgaand, duidelijk en praktisch toepasbaar. Ondanks de beperkte verwijzingen naar DDD, deed dit niets af aan de kwaliteit van de presentatie.
Link naar de video (deel twee)
Scorekaart (1-5):
- Inspiratie: 4
- Relevantie voor DDD: 1
- Analysetechnieken: 1
- Technische bruikbaarheid: 4
Refactoring naar een echt klein maar bruikbaar modeleiland
De spreker van deze sessie, Yves Lorphelin, is een ervaren software engineer met een passie voor Domain-Driven Design. Hij deelde zijn enthousiasme en expertise op een inspirerende manier. De lezing was helder en goed gestructureerd, met concrete voorbeelden en illustraties. Lorphelin beantwoordde vragen van het publiek met kennis en humor.
De lezing was duidelijk geworteld in de principes van Domain-Driven Design. Lorphelin liet zien hoe refactoring naar een klein modeleiland kan helpen om de complexiteit van een softwareproject te verminderen en de code beter te organiseren rond kerndomeinen.
Lorphelin besprak verschillende analysetechnieken die kunnen worden gebruikt om kerndomeinmodellen te identificeren. Deze technieken omvatten:
- Afgebakende contextanalyse: Identificeren van gebieden van de applicatie met hun eigen domeinlogica.
- Alomtegenwoordige taal: Het ontwikkelen van een gemeenschappelijke taal die door alle belanghebbenden wordt gedeeld.
- Event storming: Domeinlogica modelleren via gebeurtenissen.
De lezing was gericht op softwareontwikkelaars en architecten met een basiskennis van Domain-Driven Design. Lorphelin ging in op de technische details van refactoring naar een klein modeleiland, maar hij hield ook een abstract niveau aan om de lezing toegankelijk te houden voor een breed publiek.
Scorekaart (1-5):
- Inspiratie: 3
- Relevantie voor DDD: 3
- Analysetechnieken: 4
- Technische bruikbaarheid: 3
Leven in je eigen bubbel - Jacob Duijzer: Van legacy naar Domain Driven Design
In deze sessie legde agile coach Jacob Duijzer uit hoe hij legacy code heeft aangepakt voor een project binnen het landbouwdomein. Hij gaf diepere inzichten in het domein met behulp van de Domain Storytelling techniek. Hij schetste de nieuwe richtlijnen die van toepassing waren op het bestaande systeem, dat niet alleen complex en verouderd was, maar ook documentatie, unit tests en ervaren domeinexperts miste.
Jacob Duijzer liet zien hoe hij domeinexperts het domein liet uitleggen aan de hand van voorbeelden (bekend als 'specificeren aan de hand van voorbeelden'). Vervolgens legde hij uit wat 'de bubbelcontext' is en hoe deze kan worden gebruikt om nieuwe bedrijfsregels te implementeren zonder het bestaande systeem te beïnvloeden. Tot slot schetste hij de voor- en nadelen van een bubble context.
Scorekaart (1-5):
- Inspiratie: 3
- Relevantie voor DDD: 5
- Analysetechnieken: 4
- Technische bruikbaarheid: 3
Functionele domeinmodellering - Marco Emrich en Ferdinand Ade
Deze presentatie bracht een vleugje theater naar DDD 2023, met Marco (als de ontwikkelaar) en Ferdi (als de klant/Product Owner) in de hoofdrol. Het verhaal ontvouwde zich als volgt...
Ferdi, actief in de wijnsector, wilde een applicatie bouwen om zijn klanten de beste wijn aan te bevelen, afgestemd op hun smaak. Het was heerlijk om Ferdi hardop te zien nadenken over zijn verwachtingen. Marco probeerde dit meteen te vertalen in code met behulp van 'types'. Terwijl Ferdi stap voor stap beschreef hoe een 'proeverij' verloopt, codeerde Marco dit meteen in Ferdi's taal. Zo koos Marco in eerste instantie voor de term 'wijnselectie', om deze later te veranderen in 'wijnkelder'. Ferdi bleef immers verwijzen naar hun wijnkelder, niet naar hun selectie.
Ferdi keek voortdurend over Marco's schouder mee. Samen voegden ze elementen toe, verwijderden ze en hernoemden ze elementen. Alles wat onduidelijk was werd uitgesteld. Gaandeweg ontstond er een gedeelde taal tussen de ontwikkelaar en de klant.
Uit deze vermakelijke sessie hebben we geleerd dat het nuttig is om samen met de klant te modelleren met behulp van event storming of domain storytelling, hoewel de uitkomst abstract kan zijn. Functional Domain Modeling' kan de kers op de taart zijn. Het resultaat is expliciet, specifiek en biedt een solide startpunt voor implementatie.
Scorekaart (1-5):
- Inspiratie: 3
- Relevantie voor DDD: 3
- Analysetechnieken: 4
- Technische bruikbaarheid: 3
Conclusie
Na het bijwonen van de Foundations Day van DDD Europe 2023 keerden onze vier collega's huiswaarts met een schat aan nieuwe inzichten die ze in de praktijk zullen toepassen.
Het thema live coding bood ontwikkelaars een uitstekende gelegenheid om dieper inzicht te krijgen in DDD-principes. Daarnaast kwamen veel verwante technieken aan bod, zoals Test-Driven Development.
Niet elke sessie had een duidelijke link met DDD, wat een beetje een nadeel was voor analisten. Desondanks was de sfeer gedurende de dag bijzonder positief en inspirerend. Het Meervaart theater bleek de perfecte setting voor aanwezigen om te netwerken en ervaringen uit te wisselen voor en na de sessies.
Related articles
What others have also read
Contact us
Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Contact us
Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Contact us
Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Contact us
Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!
