Sobes.tech
Senior

Ce este DCI?

sobes.tech AI

Răspuns de la AI

DCI (Data-Context-Interaction) este un pattern arhitectural care împarte sistemul în trei părți principale:

  • Date: Obiecte care reprezintă entități din domeniu (de exemplu, User, Account). Ele conțin stare, dar nu cunosc logica de business.
  • Context: Adună datele necesare și le leagă de roluri într-o tranzacție specifică. Contextul știe ce obiecte joacă ce roluri.
  • Interacțiune: Roluri care definesc logica de business aplicată datelor în context. Acțiuni specifice care pot fi efectuate asupra datelor într-o anumită situație.

DCI se concentrează pe modul în care oamenii gândesc despre interacția obiectelor într-un scenariu dat, nu doar pe organizarea structurală a datelor. Este conceput pentru a face logica de business mai explicită și mai ușor de citit.

Exemplu: Transferul de bani între conturi.

  • Date: Account (stare: sold)
  • Context: "Transfer de bani", care leagă două obiecte Account cu rolurile de "Sursă" și "Destinatar".
  • Interacțiune: Roluri "Sursă" (metoda withdraw) și "Destinatar" (metoda deposit). Logica de business: verificarea fondurilor disponibile, modificarea soldurilor.

Principalele avantaje ale DCI:

  • O mai bună lizibilitate a codului: Logica de business devine mai expresivă și mai ușor de urmărit.
  • O mai bună înțelegere a domeniului: Pattern-ul reflectă interacțiunile reale dintre obiecte.
  • Flexibilitate crescută: Noi interacțiuni pot fi adăugate fără a modifica obiectele de date existente.
  • Reducerea complexității: Se concentrează pe tranzacții scurte și izolate.

DCI poate fi implementat cu diferite limbaje de programare, deși unele limbaje sunt mai potrivite pentru suportul său (de exemplu, Scala cu traits).