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
Accountz rolami "Źródło" i "Odbiorca". - Interakcja: Role "Źródło" (metoda
withdraw) i "Odbiorca" (metodadeposit). 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).