 | Spisak grešaka i ispravka jedne od njih pozivanjem eksternog editora | U toku razvoja programa putem nekog od programskih jezika neminovna je pojava grešaka, čak i kod iskusnih programera. Iako danas sva poznatija razvojna okruženja (IDE) poseduju zavidne algoritme kojima detektuju greške u kodu, i to u realnom vremenu, specijalizovane alatke mogu da uštede mnogo muke i vremena otkrivajući probleme koji su ostali neprimećeni. S druge strane, iako, na primer, Visual Studio ima ugrađen statički analizator koda, mnogi timovi biraju jeftinija ili besplatna razvojna okruženja, pa je za njih ova vrsta pomoći još dragocenija (iako i besplatna rešenja sasvim dobro otkrivaju greške). Cppcheck je alat za statičku proveru koda napisanog u programskim jezicima C i C++, dok svakako postoje i slične alatke za druge jezike.Otkrivanje grešaka u kodu Statička provera koda je ona koje se vrši pre pokretanja programa. Obično se primenjuje na izvorne fajlove i uglavnom se svodi na prikazivanje grešaka u kodu (tzv. linteri), mada postoje i oni koji idu tako daleko da matematički dokazuju osobine datog koda. Cppcheck spada u lakšu kategoriju, što je i više nego dovoljno za većinu korisnika. Program dolazi sa funkcionalnim grafičkim intefejsom, bez ikakvih potreba za podešavanjem projekata, pathova ili nekih drugih opcija, pa je idelan za sve one koji se prvi put susreću sa ovom vrstom provere. Sve što je potrebno jeste da ukažete na folder ili pojedinačni izvorni fajl koji želite da program pregleda i dobićete spisak pronađenih upozorenja, sa detaljnijim objašnjenjem u vidu tekstualne poruke u donjem panelu kada kliknete na upozorenje. Brzina analize zavisi od broja i složenosti fajlova, ali ako vaš kôd nije rogobatan, proces će se brzo završiti. Pored samostalne aplikacije, Cppcheck se može u vidu plug-ina nadovezati na Eclipse, Hudson, Jenkins, Yascu, dolazi integrisan sa CodeBlocksom i CodeLiteom, a kao eksterna alatka može se dodati i u Visual Studio. Analizom našeg koda, koji je bio namenjen nešto ozbiljnijem projektu, pronašli smo nekoliko grešaka koje smo uz sugestiju analize odmah izmenili. Greške su, kao što to često biva, na prvi pogled sitne, ali zato i teško uočljive i mogu oduzeti dosta vremena pri debagovanju i traženju uzroka nepredviđenog rada programa. Između ostalih, primili smo poruku o memory leak problemu, o tome da nismo inicijalizovali vrednost promenljive (pa možemo dobiti nepredvidljive rezultate pri uslovnoj proveri), sugestiju da smanjimo doseg promenljive, odnosno da je možemo ubaciti unutar petlje, ali i primedbu o korišćenju ++ operatora kao prefiksa sa iteratorom standardnog šablona. Uočene greške mogu se lako ispraviti direktnim pozivanjem eksternog editora. Za naše potrebe idealan je bio Notepad++, koji se brzo pokreće, bez potrebe za čekanjem na učitavanje nekog glomaznog IDE-a. Cppcheck ne proverava sintaksu koda, već samo greške koje kompajler obično previdi. Cilj ovog programa je i da prikaže što manje lažnih uzbuna, što opet znači da se može desiti da i on sam preskoči neku od grešaka. Spisak svih situacija i grešaka koje su pod njegovim nadzorom možete naći na wiki stranici programa i on spisak nije mali. Kako je vrlo jednostavan za upotrebu, preporučujemo ga svakome ko se vinuo iznad početničkog praga u programiranju, kao i onima koji se prvi put susreću sa ovom vrstom alata. I dalje je vrlo bitno kôd pregledati samostalno i, naravno, na kraju izvršiti testiranje, odnosno dinamičku analizu koda. Dinamička provera obuhvata otkrivanje grešaka kada je program u fazi izvršavanja i uvek se koristi kao dopuna statičkom analiziranju grešaka, ali to je tema za neku drugu priliku. Mnogi ionako nisu toliko ažurni pri pisanju koda. |