Sobes.tech
Senior

Czym jest DCI?

sobes.tech AI

Odpowiedź od AI

DCI (Data-Context-Interaction) to wzorzec architektoniczny, który dzieli system na trzy główne części:

  • Dane: Obiekty reprezentujące encje domenowe (np. User, Account). Zawierają stan, ale nie znają logiki biznesowej.
  • Kontekst: Zbiera niezbędne dane i łączy je z rolami w konkretnej transakcji. Kontekst wie, które obiekty odgrywają jakie role.
  • Interakcja: Role, które definiują logikę biznesową stosowaną do danych w kontekście. Konkretne działania, które można wykonać na danych w określonej sytuacji.

DCI skupia się na tym, jak ludzie myślą o interakcji obiektów w określonym scenariuszu, a nie tylko na strukturze danych. Ma na celu uczynienie logiki biznesowej bardziej wyraźną i czytelną.

Przykład: Przelew pieniędzy między kontami.

  • Dane: Account (stan: saldo)
  • Kontekst: "Przelew pieniędzy", który łączy dwa obiekty Account z rolami "Źródło" i "Odbiorca".
  • Interakcja: Role "Źródło" (metoda withdraw) i "Odbiorca" (metoda deposit). Logika biznesowa: sprawdzanie dostępnych środków, zmiana sald.

Główne zalety DCI:

  • Lepsza czytelność kodu: Logika biznesowa staje się bardziej wyrazista i łatwa do śledzenia.
  • Lepsze zrozumienie domeny: Wzorzec odzwierciedla rzeczywiste interakcje między obiektami.
  • Zwiększona elastyczność: Nowe interakcje mogą być dodawane bez zmiany istniejących obiektów danych.
  • Zmniejszenie złożoności: Skupia się na krótkich, izolowanych transakcjach.

DCI można implementować w różnych językach programowania, choć niektóre języki są do tego bardziej odpowiednie (np. Scala z traitami).