Všetko, čo potrebujete vedieť o Domain Driven Design

Ikona: autor článku Monika Hudová
Ikona: dátum článku 22 Februára 2021
Ikona: kategória článku PHP
Ikona: čas čítania 5 min. čítania

Blog image

 

Čo je to doménovo riadený dizajn?

Jednoducho povedané, jedná sa o agilný prístup k analýze a návrhu softwaru. Ide o koncept, ktorý by mal štruktúru a jazyk softwareového kódu zjednocovať so zadanou obchodnou doménou.

Príklad - ak je software zameraný na pôžičkové aplikácie, môže mať triedy ako LoanApplication či Customer, a triedy ako AcceptOffer alebo Withdraw.

 

Doména

Ide o najdôležitejšiu časť DDD a ide o oblasť, ktorú rieši daný software (napríklad predaj áut či účtovníctvo). Každá z nich má svoj vlastný, špicifický doménový jazyk. Je dôležité, aby bol software jasným odrazom konkrétnej domény.

Vďaka efektívnej komunikácii pri využívaní DDD, dokážete lepšie nasmerovať svoj team. Dôležitosť samozrejme rastie veľkosťou tímu, ktorý by mal pozostávať z doménových expertov, analytikov a vývojárov. Kľúčové rozhodnutia pri tom robia všetky skupiny.

Doménový jazyk je v tomto obore prirodzeným používaným jazykom. Dokáže eliminovať synonymá (napr. úroková miera / úroková sadzba), definuje termíny (napr. úroková miera / úroková sadzba = úroková miera), eliminuje nedorozumenia.

Model DDD nechápe doménu ako nejaký diagram, ale ako znalosť o doméne ktorú obsahuje.

Podľa DDD existuje 5 doporučení, ako efektívne modelovať doménu:

1. Zviazanie modelu a implementácie. Model bez možnosti implementácie je v oblasti komerčného software úplne zbytočný, a implementácia ktorá nie je založená na danom modele veľmi jednoducho skĺzne k riešeniu problémov, ktoré sú mimo odbor domény.
2. Model odráža jazyk doménových expertov. Aby model mohol počas celého vývoja odrážať skutočnosti zvolenej domény, vo všetkých jeho variáciách je potrebné používať zhodný jazyk, ktorý vychádza z jazyka doménových expertov.
3. Model zachytáva znalosti. Objekty modelu nie sú iba danou dátovou schémou, v modeli musíme zachytiť chovanie objektov a pravidlá domény.
4. Destinácia modelu. Model sa behom vývoja neustále mení, teda doň integrujeme nové, objavené koncepty domény a odstraňujeme alebo poupravujeme tie, ktoré sa ukazujú ako nepotrebné.
5. Komunikácia a experimentovanie. Model je predmetom komunikácie medzi doménovými expertami a ďalšími vývojármi. DDD zavádza pojem ubiquitous language (tzv. "všadeprestupný" jazyk), ktorý preväzuje jednotlivé reprezentácie daného modelu a umožňuje mu komunikovať so všetkými skupinami.

 

Ubiquitous language

Môžeme ho chápať ako zdieľaný slovník, ktorý obsahuje všetky termíny vzťahujúce sa k doméne, pre ktorú je určený vyvíjaný software. DDD nešpecifikuje žiadnu formu slovníka a necháva to na vývojároch.