Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Czymzajmująsięarchitekcioprogramowania?5
Podziałsystemuiprzypisanieodpowiedzialności
Czykiedykolwiekwidzieliście,jakmałedziecigrająwpiłkęnożną?Jedyny
brzdąc,którypozostajenapozycji,tobramkarz,przyklejonydobramkiswojej
drużyny,podczasgdyinnedziecicałągromadągoniązapiłkązjednegokońca
polanadrugi.Tourocze.Kiedydziecitrochędorosną,ucząsięrozgrywaćna
ustawionychpozycjach.Granienapozycjachjestważne,ponieważpozwala
trenerowistworzyćstrategięgry,którazwiększaprawdopodobieństwozdo-
byciagolaprzezdrużynę.
Niektóresystemysoftware’owesązaprojektowanejakdziecięcadrużynapił-
karska:jednawielkagrupaoprogramowaniagoniącazawydaniem.Tworzenie
oprogramowania,podobniejakwrozgrywkachpiłkarskich,przebiegapłynniej,
gdyoprogramowaniejestpodzielonenaczęści,akażdyelementmaprzypisaną
odpowiedzialność,pozycjędogrania.
Architekcipartycjonują(fantazyjnesłowooznaczającedzielenienaczęści)sys-
temsoftware’owy,dziękiczemumogąopracowaćstrategięosiągnięciaatry-
butówjakościowychiinnychwymagańsystemowych.Naprzykładmożna
podzielićzakresfunkcjonalnościprzezzaprojektowaniejednegokomponentu
wcelurejestrowaniaużytkowników,ainnegodoidentykacjizdjęćkotów.
Lubteżmożnaprzypisaćżnezespoły,abyopracowywałyżnemoduły,albo
teżoddzielićrzeczy,któreodczytujądane,odrzeczyzapisującychdane,tak
abysystemoprogramowaniabyłbardziejniezawodny,dostępnyiskalowalny.
Partycjonowaniesystemujestważnenietylkodlatego,żepozwalaopracować
strategięosiągnięciaatrybutówjakościowych.Mniejszefragmentysąłatwiejsze
doprzemyślenia,łatwiejjeprzetestowaćizaprojektować.Oczywiście,ponieważ
podzieliliśmysystemnakawałki,musimyrównieżupewnićsię,żewszystko
sięzesobąposkłada.
Posiadanieszerszegospojrzenia
Każdysystemsoftware’owyfunkcjonujewkontekściewiększegoświata.Świat,
wktórymżyjeoprogramowanie,toużytkownicywchodzącyznimwinte-
rakcje,budującyjezespół,sprzęt,naktórymdziała,anawet,napierwszym
miejscu,celstworzeniaoprogramowania.Idealnie,architekturapowinnażyć
wharmoniiztymszerszymkontekstem.
Myślenieosystemiejakocałościoznacza,żearchitekcimajądoczynienia
zczymświęcejniżtylkotechnologią.Ludzie,procesy,potrzebybiznesowe
iwieleinnychczynnikówtechnicznychinietechnicznychodgrywarolęwosta-
tecznymsystemiesoftware’owym.Nawetprostedecyzjeprojektowemogą
miećdalekoidącekonsekwencje.Architekcimusząwychodzićpozabliskie
sąsiedztwodecyzjiprojektowychimyślećosystemiejakoocałości.