Sobes.tech
Senior

Co je DCI?

sobes.tech AI

Odpověď od AI

DCI (Data-Context-Interaction) je architektonický vzor, ktorý rozdeľuje systém na tri hlavné časti:

  • Dáta: Objektové reprezentácie entít domény (napríklad User, Account). Obsahujú stav, ale nepoznajú obchodnú logiku.
  • Kontext: Zhromažďuje potrebné dáta a spája ich s rolami v konkrétnej transakcii. Kontext vie, ktoré objekty hrajú aké role.
  • Interakcia: Role, ktoré definujú obchodnú logiku aplikovanú na dáta v kontexte. Konkrétne akcie, ktoré môžu byť vykonané na dáta v určitej situácii.

DCI sa zameriava na to, ako ľudia myslia na interakciu objektov v určitom scenári, nie len na štrukturálnu organizáciu dát. Jeho cieľom je spraviť obchodnú logiku jasnejšou a ľahšie čitateľnou.

Príklad: Prenos peňazí medzi účtami.

  • Dáta: Account (stav: zostatok)
  • Kontext: "Prenos peňazí", ktorý spája dva objekty Account s rolami "Zdroj" a "Príjemca".
  • Interakcia: Role "Zdroj" (metóda withdraw) a "Príjemca" (metóda deposit). Obchodná logika: kontrola dostupných prostriedkov, zmena zostatkov.

Hlavné výhody DCI:

  • Lepšia čitateľnosť kódu: Obchodná logika sa stáva viac výstižnou a ľahko sledovateľnou.
  • Lepšie pochopenie domény: Vzor odráža skutočné interakcie medzi objektmi.
  • Väčšia flexibilita: Nové interakcie môžu byť pridané bez zmeny existujúcich dátových objektov.
  • Zníženie zložitosti: Zameriava sa na krátke, izolované transakcie.

DCI môže byť implementované s rôznymi programovacími jazykmi, hoci niektoré jazyky sú na jeho podporu vhodnejšie (napríklad Scala s traits).