Prilikom rada na jednoj web aplikaciji bilo mi je potrebno nekoliko standardnih operacija pa sam na Internetu potražio funkcije za rješavanje tih problema. Brzo sam naišao na modul koji je bio dobro napisan, dokumentiran i na prvi pogled radio je savršeno. Za sve pogrešne ulaze on je oblikovao ispravan izlaz. Kod ultra esktremnog programiranja (to je standardno ekstremno programiranje samo još trebate i detaljno istestirati aplikaciju ;-) ) nemate previše vremena za testiranje pa onda na brzinu simulirate par standardnih situacija i ako one prođu kako treba, radite dalje...
Nije preporučljivo da programer sam testira svoju aplikaciju jer on razmišlja na potpuno drugačiji način od korisnika pa najčešće ne otkriva greške koje korisnik otkrije u prvim minutama testiranja. U navedenom slučaju ja još nemam korisnike koji testiraju aplikaciju, pa sam grešku u spomenutoj funkciji otkrio sam, testirajući neke druge stvari. Funkcija je dobro oblikovala pogrešno formirane podatke, ali nije se snalazila sa savršeno oblikovanim podacima pa je dodavala znakove tamo gdje nisu bili potrebni.
Otkrivanje grešaka u tuđem kodu jako je nezahvalan posao, pa sam umjesto prepravljanja postojeće odlučio napisati vlastitu funkciju. Ona za sada radi dobro, valjda će preživjeti i korisničko testiranje, a ima i 4 puta manje koda od funkcije s Interneta. Ima čak i standardne komentare o autoru i kratak opis što radi, dok je funkcija s Interneta očišćena od komentara.
Pouka? Ne vjeruj kodu kojeg nađeš na Internetu ako u relativno kratkom roku možeš napisati kraći i bolji kod.