Wat is Domain Driven Design?
Domain driven design verkleint de afstand tussen je business doelen en IT ondersteuning.Â
Door je anders te organiseren begrijp je elkaar sneller en beter! Hoe mooi is dat? Â Â
Wat is DDD?
Domain Driven Design staat voor een methodologie die verder gaat dan alleen software of systeem ontwerp. Het raakt juist je business. DDD gaat uit van een indeling van je organisatie rondom je business processen én daarmee ook je (software) applicaties. Hoe dat werkt leer je tijdens onze DDD training Basics
De kern van Domain Driven Design
De kern van DDD is de zogenaamde "ubiquitous language". Dat houdt in dat alle betrokkenen in een domein dezelfde taal spreken. Termen als gebruiker, offerte, prijs, klant, etc. betekenen precies hetzelfde voor iedereen in dat domein. In een ander domein kan er een andere definitie worden gegeven aan termen.
Dat is belangrijk omdat er zo geen verwarring ontstaat tussen wat de business bedoelt en wat IT bouwt. Concreet voorbeeld is de verkoopprijs, die in het Sales domein opgebouwd is uit elementen zoals kostprijs, opslagen, etc. terwijl diezelfde verkoopprijs in het Marketing domein niets meer is dan een getal om in een uiting te tonen.
DDD in de praktijk
Domain Driven Design raakt de hele organisatie en dat betekent dat je het invoeren ervan zorgvuldig moet gebeuren. Normaal gesproken begin je aan twee kanten, de business kant en de IT kant van één domein.
Beiden gaan in gesprek om zaken als bounded contexts, aggregates etc. te ontdekken. Analyse van huidige systemen hoort daarbij om te zien of zaken als CQRS (command query responsibility segregation) of Event driven architectuur makkelijk of juist lastiger zijn te integreren.
Rollen binnen DDD
Binnen de DDD methodologie zijn er verschillende rollen: DDD Enabler, Agile Coach, Software Architect, Product Manager of Owner. En natuurlijk de developers in het ontwikkelteam. Leer in onze DDD trainingen meer over wat deze rollen inhouden in de praktijk.
Domain Driven Design, CQRS, Event Storming, Event Sourcing, Bounded Context, Events
Allemaal termen die aan bod komen in onze trainingen. De Basics training gaat vooral over het begrip van deze termen. En in de Next Level training ligt vooral de nadruk op hoe pas je dit toe in je systeem ontwerp en code.