Verticale segmenten, hun eigendom en externe afhankelijkheden
- Gepubliceerd op Oskar Dudycz
- Toegevoegd op
Een aantal vragen over verticale doorsneden komen steeds weer terug, en het zijn goede vragen.
- Als een plak door alle lagen heen snijdt, krijgen we dan een tafel per plak?
- Als ik de applicatie in zeven gebieden heb verdeeld, zijn dat dan zeven afgebakende contexten, of zeven segmenten van één? En verandert het antwoord iets aan wat ze over elkaar mogen weten?
- Hoe kan een "bestelling verifiëren"-slice controleren wat een "bestelling registreren"-slice heeft geschreven, als de twee niets van elkaars bestaan af mogen weten?
- Waar moet de code voor het ophalen van gegevens worden geplaatst wanneer een scherm gegevens nodig heeft die eigendom zijn van een andere module, en de afhankelijkheidsregels elke mogelijke plek blokkeren waar we die code zouden kunnen plaatsen?
- Moet een UI-component op de hoogte zijn van de API-aanroep die een aangrenzende component doet?
Voor mij zijn dit allemaal varianten op één vraag: wat doet een slice als hij iets van de buitenwereld nodig heeft?
Door elk onderdeel van een applicatie een begrensde context te noemen, wordt de lat voor scheiding zo hoog mogelijk gelegd, omdat contexten in wezen autonoom moeten zijn. Zodra je dat hebt gedaan, lijkt het verbinden van twee willekeurige contexten een schending, en de andere vragen hebben geen juridisch antwoord…