Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Zachowaniejestłatwe”,
astanjesttrudny
EdsonYanaga
Gdypoznawałemprogramowanieobiektowe,jednymizpierwszychnauczanych
pojęćbyłatrójka:polimorfizm,dziedziczenieihermetyzacja1.Szczerzemówiąc,
spędziliśmytrochęczasu,próbującjezrozumiećiwykorzystaćwkodzie.Ale,przy-
najmniejwmoimprzypadku,zbytdużynaciskpołożononapierwszedwapojęcia,
abardzomałonatrzecieinajważniejsze:hermetyzację.
Hermetyzacjapozwalanamokiełznaćrozrastającysięstanizłożoność,które
czymśtypowymwdziedzinietworzeniaoprogramowania.Pomysł,żemożemyukry-
waćstanm.in.przedinnymikomponentamiiopakowaćjegodowolnezmianysta-
ranniezaprojektowanymAPI,jestpodstawąprojektowaniaikodowaniazłożonych
systemówinformatycznych.
Jednak,przynajmniejwświecieJavy,nieudałosięrozpowszechnićniektórych
dobrychpraktykdotyczącychbudowydobrzehermetyzowanychsystemów.Właści-
wościJavaBeanwanemicznychklasach,którepoprostuujawniająstanwewnętrzny
przezgetteryisettery,powszechne,adziękiarchitekturomJavaEnterprisezostała
spopularyzowanakoncepcja,żewiększość-jeśliniecałość-logikibiznesowej
powinnabyćzaimplementowanawserwisach.Wichwnętrzuużywamygetterów
dopobraniainformacji,przetworzeniaichwceluuzyskaniawyniku,anastępnie
jegowstawieniazpowrotemdonaszychobiektówzapomocąsetterów.
Akiedypojawiająsiębłędy,przekopujemysięprzezlogi,używamydebugerówipró-
bujemydowiedziećsię,codziejesięznaszymkodemwśrodowiskuprodukcyjnym.
Dośćnłatwo”jestwykryćbłędyspowodowaneproblemamizzachowaniem:frag-
mentykodurobiącoś,czegoniepowinny.Zdrugiejstrony,gdywydajesię,żenaszkod
działawłaściwie,amynadalmamybłędy,sprawastajesięznaczniebardziejskompli-
kowana.Zmojegodoświadczeniawynika,żenajtrudniejszedorozwiązaniabłędy
spowodowaneniespójnymstanem.Pewnieosiągnąłeśwswoimsystemiestan,który
niepowiniensięwydarzyć,alejednakwystąpił-wyjątekNullPointerException
1
Inaczej:enkapsulacja(encapsulation)(przyp.red.).
Zachowaniejestłatwe”,astanjesttrudny
9