Svijet otvorenog koda
Kroz par mjeseci, više posla imam nadograđivanjem (i debugiranjem) tuđih (PHP) skripti nego pisanjem svojih. I kroz tih par mjeseci iznenadio sam se šta sve ljudi napišu. Skripta odradi i ispiše sve što treba, no što sve mora proći da bi to izgenerirala je druga priča. Tako da me to navelo da napišem svoja nekakva iskustva u programiranju i šta mi je olakšalo programiranje. Pa krenimo redom:
Uvlake
Kada pišete kod, uvlačite kod! Kod će biti pregledniji i vama, a i drugima. Uvlake se pišu kod grananja – kod C i PHP to bi bilo kod petlji (if, for, while, foreach…), kod htmla za sve unutar elementa. Uvlake možete pisati pomoću \t (tab, kako se to već kaže) te razmaka (preporuka dva razmaka). Važno je da od samog početka uvlačite po nekom pravilu kako bi kasnije sve bilo pregledno te ako imate logičku pogrešku da lako možete naći te otkloniti grešku.
Definirajte varijable
U programskom jeziku C nije niti moguće koristiti varijable, a da se prije toga ne deklariraju. Često vidim da PHP programeri korite varijable kao da su deklarirana i da mogu s njime što god hoće. E pa dragi programeri, to nije tako. Po početnim postavkama, samo striktne greške (pozivanje nepostojeće funkcije, klase, greška u sintaksi) se ispisuje i prekidaju skriptu dok sve ostale prolaze (uz određenu poruku ili bez nje). No, kad bi postavili error reporting na E_ALL vidjeli bi koliko pišete ispravan kod. Primjer, kod PHP svaku GET ili POST varijablu prvo morate provjeriti da li uopće postoji te onda tek možete uspoređivati vrijednosti ili je obrađivati. Također, ne možete koristiti varijablu koja ne postoji (znači, varijabla koja se poziva mora uvijek biti deklarirana).
Optimizirajte kod
Prilikom pisanja programa, točnije algoritama, dobro pazite kako ćete ga izvesti. Što manje petlji to je, u pravilu, algoritam bolji (nije sve u broju linija). Ako radite s bazom podataka, probajte koristiti malo naprednije opcije te uhvatite sve unutar jednog upita. Najgore je koristiti, no nekad je neizbježno, upit bazi unutar petlje (for, while). Ako se petlja vrti 15 puta, znači da ćemo morati 15 puta vršiti upite prema bazi podataka dok se taj upit možda mogao svesti na samo jedan jedini upit.
Pišite funkcije, klase – OOP
Funkcije i klase zaista su korisne. Prije početka programanja, skicirajte si – u glavi ili na papiru šta točno vaš program treba imati. Pokušajte izvući neku analogiju između nekih svari te napraviti funkciju ili klasu (modul). Pisanjem funkcije ili modula dobivate više prednosti: laka nadogradnja, mogućnost iskorištavanja istog na drugim projektima, preglednost koda, lakše otkrivanje grešaka (debug). Primjeri iskorištavanja klase bi bila klasa za povezivanje na mysql (povezivanje, izvlačenje, dodavanje, brisanje, uređivanje podataka). Primjera radi, kad imate takvu klasu, lako dodate kasnije brojač izvršenih upita, ispis greške (s određenim informacijama).
Odvojite generiranje od ispisa
Prilikom programiranje, držite dizajn odvojen od koda. Prvo izgenerirajte i prikupite sve potrebne informacije, a nakon toga krenite na iscrtavanje. U ovakvoj shemi možete preduhitriti grešku te odlučiti šta ćete s njom i kako ćete ju intepretirati. Primjer kako ne treba bi bilo ispis headera i navigacije te se unutar sadržaja dogodi greška prilikom pozivanje nepostojeće funkcije. Ona će se ispisati nakon navigacije i poslije nje neće biti ništa. Takva stranica ostavlja dojam neprofesionalnosti i dojam lošeg programera.
Pronađite greške
Testirajte svoj program pri nekim specifičnim parametrima (unutar granice normale). Ako radite mrežne aplikacije ili web stranice, provjerite sigurnost – lakše je potrošiti par sati na testiranje sigurnosti nego da ispravljate grešku nakon što netko iskoristi taj propust. Šteta će biti daleko veća, možda neki podaci i nepovratni te ćete extra minus bodove od naručitelja tog programa.
Josip Šokčević, student računarstva na ETF Osijek
Već dugi niz godina bavim se izradom web stranica te sam suvlasnik portala blogeri.hr.
U blogosferi s prekidima aktivan od 2006. godine, a u 11. mjesecu 2009. pokrećem
blog na ovoj domeni.
Također, napomenio bih da sam teški zaljubljenik u otvoreni kod te ga maksimalno promoviram.
Frano Šašvari
December 24th, 2009 at 20:12
Šokac, odličan post, svaka čast… ;)
Peki
December 31st, 2009 at 22:36
Super post, imaš li kakvu knjigu za predložiti?
Na faksu nam je profesor Botički predložio “Code Complete”. Nisam ju kompletnu pročitao, ali ono što jesam je “Best Practice”.
Josip Šokčević
January 1st, 2010 at 20:30
Za PHP ima dobra knjiga, čak sam se iznenadio (http://www.powells.com/biblio?isbn=9780672325113; http://www.amazon.com/Beginning-PHP-MySQL-Novice-Professional/dp/1893115518/ref=tag_dpp_lp_edpp_ttl_in) no preporučujem ipak manual.