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ładu–ponieważklasy
SecureMessageWriter
i
Console-
MessageWriter
są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ĘPOJEDYNCZEJODPOWIEDZIALNOŚCI
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ćją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.Takietestymanualnesądł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ść.