Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.Wprowadzenie
Sukcesniejestostateczny.Porażkaniejestśmiertelna.Tym,cosięliczy,jestodwaga,by
iśćdalej.
WinstonChurchill
KsiążkatajestwynikiemmojejfascynacjikomputeramiiprogramowaniemwjęzykuC++.
Jestteżrezultatemmojejponaddwudziestoletniejprzygodyznauczaniempodstawinfor-
matyki,awszczególnościjęzykaC++,studentównaWydziałachInformatyki,Elektroniki
iTelekomunikacji,jakrównieżElektrotechniki,Automatyki,InformatykiiInżynieriiBiome-
dycznejorazInżynieriiMechanicznejiRobotykiAkademiiGórniczo-HutniczejwKrakowie.
Pracowałemrównieżwkilkufirmachjakoprogramistaikonsultant,stającsięstarszym
inżynieremoprogramowaniaiprojektantemoprogramowania.Kierowałemrównieżzespo-
łamiprogramistówisłużyłemmoimmłodszymkolegomjakonauczyciel.
Uczeniesięprogramowaniazapomocąjęzykówkomputerowychjestipowinnospra-
wiaćfrajdę,alenauczeniesięichdobrzemożebyćtrudne.NauczanieC++stanowiteż
znaczniewiększewyzwanieniżdekadętemu.Językznaczniesięrozrósłiposiadłnowe
fascynującecechy,którechcielibyśmyzrozumiećiwykorzystaćwceluzwiększenianaszej
produktywności.Wchwili,gdypiszętesłowa,najnowsząwersjąjęzykajestC++20.Wksiąż-
cekorzystamyzbogatejfunkcjonalnościC++17,jakrównieżpokazujemynieconowych
cechC++20.Ponadtowwieluprzypadkachdobrzejesttakżeznaćprzynajmniejniektóre
zestarszychkonstrukcji,choćbydlatego,żeonewszechobecnewwieluprojektachpro-
gramistycznych,bibliotekach,frameworkachitd.Dlaprzykładu,pewnegorazupracowałem
nadprojektemwC++,adotyczącymprzetwarzaniastrumieniwideo.Modyfikującjedną
zwersjibibliotekodpowiedzialnychzawejście/wyjścieJPEG,odkryłemtzw.wyciekipamię-
ci.ChoćcałyprojektnapisanybyłwewspółczesnymC++,musiałemznaleźćinaprawić
błądwstarymkodzienapisanymwC.Znalezieniepowoduzajęłomitrochęczasu,alegdy
sięudało,usunięcieproblemubyłojużtylkochwilą.
Kolejnymproblememjestto,żekod,jakispotykamywczasienaszejcodziennejpracy,
różnisięodtego,czegonauczyliśmysięwtrakciezajęć.Dlaczego?Zwielupowodów.Pierw-
szymznichjestpisanylatamiiczęstoodziedziczonykod.Innymisłowy,znaczyto,żeproces
pisaniaciągniesiębardzodługo.Cowięcej,nawetniewielkieprojektymajątendencjedo
rozrastaniasię,bypokilkulatachosiągnąćczęstomonstrualnerozmiary.Ponadtokodpiszą