Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Przyznajmywprost,większośćznasjest
odpowiedzialnazakilkatakichprzypadków.
Todziwne,alejesttodosłownieproces
OCR.
jestzorganizowanywjakiśsposób,nawetjeślijesttopoprostuzasada
nwpakujmywszystkodomain()izobaczmy,cosięstanie”.Myślęwięc,
żebardziejinteresującebędąrozważaniadotyczącetego,naczympolega
dobraorganizacja.Wjakisposóbodróżnićdobrąarchitekturęodzłej?
Rozmyślałemnadtympytaniemprzezokołopięćlat.Takjakkażdyznas,
posiadamjakąśintuicjędotyczącątego,czymcharakteryzujesiędobrypro-
jekt.Wszyscymusieliśmyborykaćsięzbaząkodutakzłą,żenajlepsze,
comogliśmydlaniejzrobić,tozlikwidowaćją,skracającjejcierpienia.
Kilkuszczęśliwcówzgromadziłoprzeciwnedoświadczenia,mając
okazjępracowaćzpiękniezaprojektowanymkodem-zbazamikodu,
któresprawiaływrażenie,jakbybyłydoskonaleurządzonymi,luksuso-
wymihotelamipełnymilokajówgotowychgorliwiespełnićkażdąnaszą
zachciankę.Naczympolegaróżnicamiędzynimi?
Czymjestdobraarchitekturaoprogramowania?
Wedługmnieprojektjestdobry,gdydokonującjakiejśzmiany,mam
wrażenie,żecałyprogramzostałskrojonytak,jakgdybyjejoczekiwał.
Mogęrozwiązaćzadaniezapomocątylkokilkuwywołańfunkcjiwybo-
ru,którepasujątakdoskonale,żeniepozostawiająnawetnajmniejszej
zmarszczkinaidealniegładkiejtaflikodu.
Ładnietobrzmi,aletrudnoprzełożyćtonadziałania.nPoprostuna-
piszkodtak,byzmianyniedeformowałyjegogładkiejtafli”.Tak,jasne...
Pozwólcie,żepodzielętonaniecomniejszefragmenty.Pierwszy
istotnyelementtoto,żewarchitekturzechodziozmianę.Ktośmusi
modyfikowaćbazękodu.Jeśliniktgonietyka-czytodlategożejest
jużdoskonałyikompletny,czydlategożejesttaknędzny,żeniktnie
chcekalaćnimswegoedytorakodu-to,jakjestzaprojektowany,
niemaznaczenia.Miarąjakościprojektujestto,jakłatwodostosowuje
siędozmian.Jeślidozmianniedochodzi,jestjaksprinter,którynigdy
nieopuszczabloków.
Jakdokonujemyzmian?
Zanimbędziemymoglizmienićkodwceludodanianowejfunkcjonalno-
ści,naprawieniabłęduczyzdowolnegoinnegopowodu,którysprawił,
żeodpaliliśmynaszedytor,musimyzrozumieć,corobiistniejącykod.
Niemusimyrzeczjasnaznaćcałegoprogramu,alemusimyzaładować
wszystkiejegoistotnefragmentydonaszegomózgussakanaczelnego.
Zwyklestaramysięprześliznąćsięprzeztenkrok,aleczęstojest
tonajbardziejczasochłonnyelementprogramowania.Jeśliuważamy,
żestronicowaniejakiejśilościdanychzdyskudopamięciRAMjest
powolne,spróbujmyprzestronicowaćjedonaszegomózguzapośred-
nictwemparynerwówwzrokowych.Kiedycałypoprawnykontekst
znajdziesięjużwnaszejpamięci,zastanawiamysięprzezmoment
idochodzimydorozwiązania.Czasemmożemyprzezdłuższąchwilę
poruszaćsiętamizpowrotem,aleczęstojesttoproste.Kiedyjuż
10Architektura,wydajnośćigry–Czymjestarchitekturaoprogramowania?