Coding style


Se spune că un program bun, nu este definit numai de cât de eficient este, dar şi de modul în care este scris. Coding style-ul se referă la cât de uşor poate fi citit, reparat şi imbunătăţit un program. Un cod bun trebuie scris în aşa fel, încât oricine poate înţelege relativ uşor ce ar trebui sa facă fiecare funcţie şi ce rol are fiecare variabilă. Când vorbim de coding style trebuie ţinut cont de mai multe lucruri: numele variabilelor şi al funcţiilor, indentarea şi spaţierea, comentariile, modularizarea. Fiecare din aceste aspecte le vom aborda separat.

Numele variabilelor şi al funcţiilor


Numele unei variabile ar trebui să indice exact care e rolul în program, dar în acelaşi timp să fie concis. Cu cât o variabilă este mai folosită în program şi are un rol mai mare cu atât ar trebui să aibă un nume cât mai clar, care denotă rolul ei în program. De asemenea numele funcţiilor ar trebui sa prezinte exact ce face funcţia respectiva. În general acestea pot fi reprezentate de acţiuni, în cazul funcţiilor void, si de teste, verbe în cazul celor de la care se aşteaptă un rezultat. De exemplu:

int isPrime(int number ) {
	int i;
	for (i = 2; i < number / 2; i++)
	  if (number %  i == 0 ) 
          return 0;
	return 1;
}

În acest exemplu funcţia isPrime va returna 1 dacă numărul este prim şi 0 dacă nu este prim. Numele funcţiei înlătură orice neclarite, dar în acelaşi timp este şi concis. De asemenea valorile returnate de funcţie răspund chiar la numele funcţiei: 1 prin adevăr, 0 prin negaţie.

Indentarea şi spaţierea


Indentarea se referă la spaţiul lăsat în faţa fiecărui rând pentru a înţelege mai uşor instrucţiuniile. Există mai multe modalităţi prin care se poate realiza indentarea: fie prin spaţii, prin tab, sau chiar combinându-le. Fiecare metodă prezintă avantajele sale. Indentarea prin tab are un avantaj semnificativ faţa de spaţii: se poate modifica foarte uşor în editorul vostru dimensiunea tab-ului de la opt spaţii, la patru sau doua( în vim se poate folosi comanda set ts=4). Problema care apare este că dacă colegii voştrii folosesc pentru indentare spaţii sau un tab mai mare decât al vostru, ei vor vedea codul vostru ieşind din ecran. De exemplu codying style-ul după care este scris Linux preferă un tab de opt spaţii. În ceea ce priveşte indentarea cu spaţii, aceasta este folosita mai ales de programatorii ce codeză in Ruby şi Phython. Avantajul acestui stil este faptul că face codul să arate consistent peste tot.

Exemplu neindentat:

if (isPrime(number)) 
{printf("%d nu este prim \n",number);} 
else {nr++; printf("%d este prim \n",number);}

Exemplu neindentat:

if  (isPrime(number)) {
	printf("%d nu este prim \n",number);
}
else  {
	nr++; 
	printf("%d este prim \n",number);
}

Comentariile


Fiecare funcţie ar trebui să aibă un comentariu ce conţine trei lucruri: ce face funcţia respectivă, care sunt parametrii sâi şi ce valoare returnează. De asemenea orice parte a codului, ce pare mai complicată, mai urâtă sau mai creativă ar trebui sa fie comentată, pentru a se înţelege mai târziu ce face respectiva secvenţă. În ceea ce priveşte variabilele, chiar dacă s-a ales un nume sugestiv pentru o variabilă, comentariile sunt bine venite.

/* verifică dacă numărul number este prim şi returnează 1 dacă este */
int isPrime(int number) {
   //implementare
}

Modularitate


Modularitea unui cod se referă la cum este alcătuit codul: din mai multe module aici, referindu-ne la funcţii şi structuri de date. Un cod modularizat este mai uşor de inţeles, dar de asemenea se pot identifica mult mai repede posibilele buguri şi erori. In momentul în care codul vostru are o problemă şi nu ştiţi de unde sa începeţi verificare lui, într-un cod modularizat veţi gâsi mai repede eroarea, deorece se poate testa fiecare modul în parte. De asemenea, daca aveţi nevoie de una dintre aceste module şi în alte programe puteţi să-l luaţi direct fară sa fie nevoie să-l scrieţi încă o dată, astfel economisind timp. Inainte de a coda efectiv trebuie gândit foarte atent cum se poate implementa.

programare-cc/coding_style.txt · Last modified: 2021/10/04 18:21 by bogdan.nutu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0