Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
24
rozdział1PodstawyWstrzykiwaniazależności:co,jakidlaczego
DEFINICJA
Wtworzeniuoprogramowaniaobiektowegomodułemnazywasię
grupęlogiczniepowiązanychklas(lubkomponentów),gdziejedenmodułjest
niezależnyodinnychmodułówiwymiennyznimi.Zzasadywidać,żewarstwa
składasięzjednegolubwięcejmodułów.
Codopoprzedniegoprzykładuponieważklasy
SecureMessageWriter
i
Console-
MessageWriter
bezpośrednioniezależneodsiebie,możnabytworzyćjew(dwóch)
równoległychzespołach.Wymaganejesttylkoustaleniewspółdzielonegoprzezpodze-
społyinterfejsu
IMessageWriter
.
utrzymywalność
Kiedyodpowiedzialnośćkażdejzklaszostałajasnookreślonaiograniczona,utrzyma-
niecałejaplikacjistajesięowielełatwiejsze.Jesttonastępstwem
ZASADYPOJEDYNCZEJ
ODPOWIEDZIALNOŚCI,któragłosi,żekażdaklasapowinnamiećtylkopojedyncząodpo-
wiedzialność.
ZASADĘPOJEDYNCZEJODPOWIEDZIALNCI
omówimydokładniewrozdziale2.
Dodawanienowychfunkcjidoaplikacjistajesięłatwiejsze,ponieważwiadomo,
gdziezmianypowinnybyćwprowadzone.Częściejzdarzasię,żenietrzebazmieniać
istniejącegokodu,alemożnazatododaćnoweklasyiponowniezbudowaćaplikację.
IznowuwpraktyceużywasiętuZASADYOTWARTE/ZAMKNIĘTE.
Równieżrozwiązywanieproblemówstajesięmniejmęczące,ponieważzakresmoż-
liwychprzyczynsięzmniejsza.Zdobrzeokreślonymiodpowiedzialnościamimasię
owielelepszepojęcie,gdzierozpocząćposzukiwaniaprzyczynproblemu.
testowalność
Aplikacjęuważasięza
TESTOWALNĄ
,kiedymożnapoddaćtestomjednostkowym.
Dlaniektórych
TESTOWALNOŚĆ
będzienajmniejszymzmartwieniem,adlainnychbędzie
toniezbędnywymóg.Mynależymydotejdrugiejkategorii.Markwtrakcieswojego
życiazawodowegoodrzuciłjużkilkaofertpracyztegopowodu,żemusiałbypracować
zpewnymiproduktami,któreniebyłyTESTOWALNE.
testowalność
Określenie
testowalne
jestbardzonieprecyzyjne,alezdrugiejstronymożnasięznim
wszędziespotkaćwspołecznościtworzeniaoprogramowania.Tenterminjestgłównie
używanyprzeztych,którzypraktykujątestowaniejednostkowe.Zzasadykażdaaplikacja
możebyćprzetestowanaprzezjejuruchomienie.Testymogąbyćwykonaneprzezludzi
używającychaplikacjiprzezjejinterfejsużytkownika(
ui
)lubjakikolwiekinnydostępny
interfejs.Takietestymanualnedługotrwałeidrogie,awięcpreferujesięużywanie
zautomatyzowanychtestów.
Napotkasznawieletypówzautomatyzowanegotestowania:testowaniejednostkowe,testo-
wanieintegracyjne,testowaniewydajnościowe,testwarunkówskrajnychitd.Aleponie-
ważtestowaniejednostkowemamniejwymogówdotyczącychśrodowiskawykonania,
zzasadyjestononajbardziejwydajneiniezawodne.Wtymkontekścieczęstooceniasię
właśnietestowalność.