Šta je to “čist” kod?
Čist kod (clean code) predstavlja programski kod koji se lako čita, razume i menja. Potreba za pisanjem čistog koda postaje veoma izražena kako softverski sistemi rastu i postaju kompleksniji, te se javlja potreba za održavanjem. Visoko kvalitetan i čist kod znatno olakšava održavanje softverskih sistema.
Čist kod:
- se lako održava i proširuje
- se lako se debaguje i refaktoriše
- donosi uštedu u vreme i novcu jer omogućava brže i lakše izmene, dodavanje novih funkcionalnosti i uklanjanje grešaka
- olakšava razumevanje softvera
- se lakše testira
- je manje podložan greškama
Pisanje čistog koda podrazumeva praćenje praksi i principa koji promovišu jasnoću, konciznost i organizaciju koda. U nastavku su opisana neka pravila koja bi trebalo ispratiti prilikom pisanja koda, kako bi on bio “čist”:
- Dodeljivanje jasnih i značajnih imena – Treba koristiti jasna imena prilikom imenovanja promenljivih, funkcija i klasa, kako bi se poboljšala čitljivost, razumljivost i održivost koda. Nejasna imena dovode do izazova u razumevanju svrhe koda. Na primer, promeljiva nazvana “pos” može biti teška za razumevanje ukoliko programer nije upoznat sa kontekstom u kom se ona koristi. Međutim, naziv “numberOfPositionsInBasket” mnogo preciznije i jasnije opisuje svrhu ove promenljive.
- Pisanje kratkih funkcija – Funkcije treba da budu kratke i fokusirane na jedan zadatak. Svaka funkcija bi trebalo da radi jednu stvar tj. da ima jednu odgovornost. Ovaj princip je ključan za pisanje razumljivog i održivog koda. Kada funkcije imaju mali broj linija koda, lakše ih je čitati i razumeti zato što se fokusiraju na jedan zadatak. Ovo olakšava programeru da brže razume čemu funkcija služi. Za razliku od kratkih funkcija, dugačke funkcije mogu biti teške za razumevanje, što dovodi do konfuzije i grešaka. Manje funkcije se lakše menjaju i proširuju.
- Izbegavanje “magičnih” brojeva – “Magični” brojevi su brojevi koji se pojavljuju u kodu, a kojima nije dodeljen naziv te mogu dovesti do konfuzije prilikom razumevanja njihovog značenja. Kako bi kod bio čistiji, potrebno je ove brojeve dodeliti nekim promenljivama i dodeliti im jasan naziv. U nastavku slede dva primera sa i bez korišćenja “magičnih” brojeva.
Primer lošijeg koda:
if (age >= 18) {
// do something
}
Primer boljeg “čistog” koda:
int VOTING_AGE = 18;
if (age >= VOTING_AGE ) {
// do something
}
- Korišćenje komentara – Komentare treba koristiti retko, pošto bi u idealnom slučaju kod trebalo pisati tako da je sasvim jasno šta radi i čemu služi. Komentari ne bi trebalo da ponavljaju ono što je napisano u kodu, već da daju dodatno objašnjenje koje bi bilo korisno programerima. U nastavku slede primeri dobrih i loših komentara:
Primer lošeg komentara
// increment x
x = x + 1;
Primer dobrog komentara
// don’t use the global isFinite() because it returns true for null values
Number.isFinite(value)