Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
KanonicznaarchitekturaDDD
11
Proponowanaarchitekturawspierająca
ZwolennicyDDDzasugerowaliużyciewarstwowejarchitekturydoimplementowania
modułów.Tawarstwowaarchitekturauogólniałatrzypoziomowąarchitekturęuzyska-
nąwtrzechkrokach:
■Poziomyzostałyuogólnionedowarstw.
■Warstwabiznesowazostałapodzielonanadwie:warstwęaplikacjidocelóworkie-
stracjiprzypadkówużyciaorazwarstwędomenowądlaczystejlogikibiznesowej*.
Zkoleiwarstwadomenowaskładasięzdwóchelementów:zbioruniezależnychod
utrwalaniadanychmodelidomenyorazzbioruusługuwzględniającychutrwalanie
danych.JesttokluczowyaspektDDD.
■Warstwadanychzostałaprzemianowananawarstwęinfrastruktury
,anajbardziej
typowąinajważniejsząusługą,jakąudostępnia,jestutrwalaniedanych.
Wynikowaarchitektura–zawierającarównieżwarstwęprezentacji–wswojejnaj-
prostszejformiejestmonolityczna,alemajednoznacznegranicenakażdympozio-
mieidobrzezdefiniowaneprzepływywymianydanych.Podpewnymiwzględamijest
nawetczystsza,niżwychwalanarzeczywistaczystaarchitektura!
Warstwaprezentacji
Warstwaprezentacjiobsługujeinterakcjezzewnętrznymisystemami,któreprzesyłają
doaplikacjidanewejściowe.Główniemamytuludzkichużytkowników,aletakże
wywołaniaAPIzinnychdziałającychaplikacji,powiadomienia,komunikatymagistra-
li,wyzwalanezdarzeniaitakdalej.Ujmująctoinaczej,warstwaprezentacjiodbiera
żądaniawykonaniazadań,którezostanąprzetworzonewdalszejczęścistosu,pro-
dukującjakiśefektwdomenie.Warstwaprezentacjijestrównieżodpowiedzialnaza
opakowaniewynikówgenerowanychprzezwewnętrznewarstwywodpowiedzina
zaakceptowaneżądanieiwysyłanieichzpowrotemdożądającego.
Warstwaprezentacjimożeprzyjmowaćróżneformy
,jeślichodzioużytetechnolo-
gie.Możebyćtoaplikacjapulpitu(naprzykład.NETMAUI,Electron,aplikacjaWPF
wstarymstylualboWindowsForms),aplikacjamobilna,minimalneAPIalbowpełni
wyposażonaaplikacjaweb(wykorzystującaASP.NETCore,Blazor,Angular,React,
Svelteiinnepodobneplatformy).Dodatkowowykorzystywaneprotokołymogąsię
niecoróżnićimogąobejmowaćHTTPS,gRPC,awscenariuszachobejmującychInter-
netrzeczy(InternetofThings–IoT)rozwiązaniaMessageQueueTelemetryTransport
(MQTT),AdvancedMessageQueuingProtocol(AMPQ)iwielewięcej.
*Dążącdomożliwiejednoznacznegoprzekazu,terminu„dziedzina”używamtam,gdzieodnosi
siędoświatarzeczywistego(konkretnejbranży
,biznesulubsposobudziałaniajakiejśorganiza-
cji),natomiasttermin„domena”stosuję,gdymowaobycieprogramistycznym,odwzorowującym
dziedzinęświatarzeczywistego(wszystkieprzypisypochodząodtłumacza).