Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
jewswoichprogramach,napiszekod,któryoniinnibędąmogliprzeczytać
izweryfikować,czyprogrambędzierobiłto,czegoodniegooczekują.
Zaufaniejesttakżezwiększaneprzezużycietechnik,którepozwalająomijaćlub
minimalizowaćprawdopodobneźródłabłędów.Toprawdopodobniejednaznaj-
większychzaletFP:programynapisanefunkcyjniezwyklemająmniejbłędów,
aistniejącebłędyczęstowbardziejoczywistychmiejscach,więcłatwiejsze
doznalezieniaiwyeliminowania.KodFPjestzazwyczajbardziejodpornyna
błędy,alezdecydowanieniejestodnichwolny.
Wmiarępodróżyprzezksiążkęzaczniemyrozwijaćwsobiewięcejwiarywpi-
sanykod,gdyżbędziemyużywaćwzorcówipraktyk,którebędąsprawdzone.
Ibędziemyunikaćnajpopularniejszychprzyczynbłędówwprogramach.
Komunikacja
Dlaczegoprogramowaniefunkcyjnejestważne?Abyodpowiedziećnatopyta-
nie,musimybardziejcofnąćsięiporozmawiaćotym,dlaczegoprogramowanie
wogólejestważne.
Możetobyćzaskoczeniem,alenieuważam,abyprzeznaczeniemkodubyłoprzede
wszystkiminstruowaniekomputera.Wzasadzieuważam,żefaktinstruowania
komputeraprzezkodtotylkoszczęśliwyzbiegokoliczności.
Jestemgłębokoprzekonany,żeznacznieważniejsząrolakodujestkomunikowanie
sięzinnymiludźmi.
Zdoświadczeniawiemy,żedużaczęśćczasuspędzonanadDkodowaniem”polega
naczytaniuistniejącegokodu.Niewieluznasjesttakzdolnych,żemożespędzać
większośćczasu,stukającwklawiaturęprzypisaniunowegokodubezzajmowania
siękodem,któryinni(imysamiwprzeszłości)napisali.
Szacujesię,żedeweloperzyspędzają70%czasunadutrzymaniemkodu,czytając
go,abygozrozumieć.Tootwieranamoczy.Siedemdziesiątprocent!Nicdziw-
nego,żeprzeciętnyprogramistapiszedziennieokoło10wierszykodu.Spędzamy
7godzindziennie,czytająckod,abyustalić,gdzienależywstawićtych10wierszy!
Musimybardziejskupićsięnaczytelnościnaszegokodu.Aczytelnośćtonietylko
mniejznaków.Naczytelnośćnajwiększywpływmarozpoznawalność1.
Jeślimamyspędzaćczasnapisaniukodu,którybędziebardziejczytelnyizro-
zumiały,FPmatukluczoweznaczenie.ZasadyFPdobrzeustalone,głęboko
1Buse,RaymondP.L.,andWestleyR.Weimer.“LearningaMetricforCodeReadability.”IEEE
TransactionsonSoftwareEngineering,IEEEPress,July2010,dl.acm.org/citation.cfm?id=1850615.
Komunikacja
5