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-
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.
Wynikowaarchitekturazawierającarównieżwarstwęprezentacjiwswojejnaj-
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(InternetofThingsIoT)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).