Wat ik begrijp van domain-driven design
On november 15, 2021 by adminDD 101
Hoe groter het project, des te moeilijker het is om het te onderhouden. Een manier om daarbij te helpen is het opdelen van de app in kleinere gebieden volgens hun bedrijfsregels, domeinen genoemd.
Basically, a domain is an area of knowledge, either public, like the rules of chess, or private, like the business rules of a nonprofit organization .
Een complex domein zal waarschijnlijk kennis uit andere domeinen gebruiken. Zo zal een NPO die online schaakles geeft, kennis hebben van schaken, van lesgeven via online platforms, en, ook al word je als student niet afgerekend, van de financiën.
Elk subdomein van je domein staat in DDD bekend als begrensde contexten, elk heeft zijn eigen model van de wereld dat is opgebouwd uit gespecialiseerde eenheden code, bouwstenen genoemd. Hier zal ik me richten op entiteiten en waarde-objecten, beide kunnen worden aangeduid als objecten.
Entiteiten zijn objecten die bedoeld zijn om uniek te zijn binnen het domein. Dit wordt bereikt door een of meer eigenschappen te gebruiken om een bepaalde entiteit te identificeren. Zo zullen twee gebruikers met dezelfde naam in een systeem altijd verschillende emails hebben, omdat emails niet kunnen worden herhaald – meestal worden entiteiten onderscheiden door een id, en soms door een combinatie van proprieties.
Value-objecten daarentegen hebben geen identiteit, zodat alleen hun eigenschappen kunnen worden gebruikt om twee instanties te onderscheiden. Neem bijvoorbeeld twee pionnen (de schaakstukken), ze zien er hetzelfde uit als ze uit dezelfde set komen en dezelfde kleur hebben, dus het maakt niet uit als je ze omwisselt. In DDD zijn waarde-objecten onveranderlijk, zodat het gemakkelijker is om met ze te redeneren.
Gegevensintegriteit
Een begrensde context stelt niet al zijn objecten bloot om zijn gegevensintegriteit te garanderen. In plaats daarvan stelt het sommige aggregate wortels bloot als een soort openbare interface voor zichzelf.
Een aggregate is niets meer dan een entiteit die is samengesteld uit andere objecten. Om precies te zijn is een aggregaat een cluster van geassocieerde objecten die we als een eenheid behandelen wanneer we gegevens wijzigen.
Geef een antwoord