Část 02 z 16 · Den 1 · ubiquitous language, kontrakt zprávy
Stejné slovo, jiný význam
Problém a zkušenost
Stejné slovo, jiný význam
„Žádost“ je pro poradce něco jiného než pro risk nebo databázi. Pokud se na jazyce neshodneme, zpráva je jen tvar JSON.
Tři týmy, jedno slovo
- Poradcežádost = rozhovor s klientem
- Riskžádost = posuzovaná expozice
- Databázeapplication_row
Důsledek
- Zpráva „Application“každý čte jinak
- Chyba až v provozu
Zkušenost z praxeKterý pojem znamená u vás v různých týmech něco jiného?
TakeawayJazyk domény je první kontrakt.
Více k tématu
Co to znamená
Společný jazyk domény znamená, že názvy událostí a příkazů vznikají z řeči lidí, kteří doménu znají.
Proč to používáme
Nejdražší chyby integrace vznikají z nedorozumění, ne z technologií.
Kdy to dává smysl
Vždy, když dva týmy sdílejí zprávy.
Kde se to láme
- Pojmenovat událost podle tabulky nebo obrazovky.
- Používat jedno slovo pro dvě věci.
- Přebírat názvy od dodavatele systému bez překladu.
Představme si
Pro poradce je „žádost“ rozhovor s klientem, pro Risk až odeslaná MortgageApplicationSubmitted. Je dobré, když to zpráva říká jasně.
Nejprve se shodneme na slovech, potom na formátu.
Princip, aplikace a cvičení
Co patří dovnitř a co ven
Uvnitř služby mluvíme po svém. Ven publikujeme stabilní, pojmenovaný a verzovaný kontrakt.
Anti-vzor
- Doménová událostIncomeChanged
- Broker
- Risk Servicerozbije se po refaktoringu
Překlad
- Doménová událostApplicationSubmitted
- Překladanti-corruption
- Integrační událostMortgageApplicationSubmitted v1
- Risk Service
Trade-offPřeklad navíc je práce a další místo k údržbě. Chrání nás před tím, aby každý refaktoring rozbil cizí služby.
TakeawayInterní model můžeme měnit. Veřejný kontrakt ne.
Více k tématu
Co to znamená
Doménové události popisují, co se stalo uvnitř agregátu. Integrační události jsou veřejné zprávy s pevným tvarem a verzí.
Proč to používáme
Když ostatní služby odebírají interní události, každý refaktoring je rozbije a služby se svážou.
Kdy to dává smysl
Jakmile událost opouští hranici služby.
Kde se to láme
- Publikování interních událostí do brokeru.
- Integrační událost s tvarem databázové tabulky.
- Změna kontraktu bez verzování.
Představme si
Kalkulačka přejmenuje pole s příjmem. Risk Service dál dostává stejnou MortgageApplicationSubmitted a nic nepozná.
Co sdílíme se světem, musíme držet stabilnější než to, co máme doma.
Školení pro váš tým
Chcete školení pro svůj tým?
Školení vedeme na vašem kódu a vašem doménovém problému. Domluvíme rozsah, termín a formu.
Probrat školení →