Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Różneodmianywarstw
23
Użycieinterfejsówikodowaniedlainterfejsów,anieimplementacjijestuniwer-
salnązasadąoprogramowaniazniskimsprzężeniem.Jednakrezygnacjazinterfejsów
przyjasnymokreśleniuichrolijestdoskonałąoznakąsamodyscyplinyipragmatyzmu.
Conaprawdęrozumiemypoprzez„czyste?”
Kiedyktośmówi„czystaarchitektura”,niejestoczywiste,jaką„czystość”ma
namyślikoncentrycznywzorzecczystejarchitekturyopisanyprzezRoberta
Martina,czypoprostudobrzewykonaną,modułowąarchitekturę.Takczy
inaczej,gdyrozmawiamoarchitekturzeoprogramowania,czystośćmożebyć
postrzeganejakosynonimwarstwowości.
Conaprawdęoznacza„warstwowość?”Nocóż,warstwaoprogramowania,czy
tologiczna,czyfizyczna,jestoddzielnymmodułempołączonymzinnymimodu-
łamipoprzezkontraktoweinterfejsy
.Wrezultaciestosunkowołatwejestjejtesto-
wanie,zarównowizolacji,jakiwtrybieintegracji.Takwięcgdymowaoarchi-
tekturzeoprogramowania,warstwowośćjestsynonimemdlamodularności.
Alecotojest„modularność”?Takoncepcjasięgawsteczdouniwersalnejzasa-
dySoCsformułowanejprzezDijkstrę.Możnaprzetłumaczyćnapodziałcałego
zbiorufunkcjonalnościnaniezależnebloki,zktórychkażdyzawierawszystkie
częściniezbędnedoperfekcyjnegodziałaniafunkcji.Modułjestautonomiczny
ipołączonyzinnymimodułamiprzezidentyfikowalnewtyczkiorazjednoznacz-
ne,najlepiejwstrzykiwanezależności.
Czułypunktmodularnościwmniejszymstopniudotyczykonstruowania
modułówifunkcji,awwiększymichkodowaniautrzymywaniapodkontrolą
punktówpołączeńbeztworzeniaukrytychzależności.Taknapisanykod,czy
tomonolityczny
,czyrozproszony
,możnaochrzcićmianem„czystego”.
UwagaCzystośćkodujestatrybutemuniwersalnym.Nieuzyskamyczystegokodu,
poprostustosująckonkretnystostechnologiczny(naprzykład.NET,Java,Android,
Python,GoczyTypeScript)anijegookreślonąwersję.
Architekturafunkcjonalna
Architekturafunkcjonalna(feature-drivenarchitectureFDA)topodejściedoarchitek-
turyoprogramowaniapodkreślająceorganizowaniestrukturyprogramuwokółkompo-
nentówfunkcjonalnych,którekluczowedladziałaniaaplikacji.FDAniejestczymś
zasadniczoodmiennymodwzorcówarchitektonicznych,którepoznaliśmydotejpory;
poprostuoferujealternatywnespojrzenienaprojektowanieibudowaniesystemu.
FDAkoncentrujesięnaidentyfikowaniukluczowychfunkcjioprogramowaniaikoor-
dynujearchitekturętak,bynadawaćpriorytetichkompleksowemuwsparciu.Znaczącą