This is an old revision of the document!
Codul pe care îl scriem nu este suficient să ruleze corect, el trebuie să și îndeplinească anumite standarde de claritate, concizie si lizibilitate. Fie că lucrăm într-o companie în care mai multe persoane editează același fișier sau ne uităm peste o bucată de cod scrisă cu mult timp în urmă, caracteristicile menționate mai sus trebuie să creeze un standard care sa ajute la o viteză mare de înțelegere a aspectelor codului.
Bineînțeles, fiecare limbaj care un coding style propriu, anumite companii pot avea regulile lor, iar fiecare persoană poate avea un stil propriu, dar totuși există un set de reguli generale ce trebuie urmat.
void printPersonalData(char* firstName, char* lastName, char* birthDate) { printf("Date personale: %s %s %s\n", firstName, lastName, birthDate); }
În cazul primei funcții, nu ne puteam da seama de conținutul variabilelor a, b, și c decât dupa rulare (și chiar și asa, tot ar fi existat cazuri în care apăreau confuzii sau neclaritați). De asemenea, numele functiei ar trebui să fie destul de sugestiv astfel încât să nu fie nevoie să ne uităm la corpul său pentru a ne da seama ce face acesta.
Care dintre cele două bucăți de cod arată mai aerisit și mai ușor de înțeles :)?
De asemenea, lăsați rânduri libere pentru a delimita paragrafe “logice” de cod sau diverse definiții de funcții.
Nu uitați, s-ar putea ca și alte persoane să vă citească codul (sau poate chiar voi peste mult timp), așa că scrieți-l într-o manieră aerisită și ușor de urmârit!
if-else
, for
, while
trebuie indentat cu un tab in plus față de indentarea funcției sau a instrucțiunii. Evitați scrierea mai multor instrucțiuni pe aceeași linie, nu are nici un avantaj acest lucru, dati enter si continuați pe urmatoarea linie. Se preferă folosirea spațiilor efective in loc de tab (\t
), deoarece dacă vă deschideți codul cu un alt editor sau pe un alt calculator, s-ar putea sa aveți surpriza ca tab-ul să fie setat la 8 spații în loc de 4 :), și întregul fișier să arate cu totul diferit față de ce ați scris voi.void example() { int a = 2, b = 2; for (...) { if (...) { instr1; instr2; } else if (...) { instr3; } instr4; while (...) { instr5; instr6; } } }
PI
decât 3.14
, și pe de altă parte sunt mult mai ușor de modificat (mai bine modifici într-un singur loc decât de x ori în tot programul).if (i < 10) { ... }
#define MAX_NR_PERSONS 10 if (i < MAX_NR_PERSONS) { ... }
if (nr_persons < MAX_NR_PERSONS && avg_age > 18 && (send_email == true || send_sms == true || send_mail == true)) { ... }
printf("Acest printf contine foarte multe caractere " "asa ca m-am hotarat sa il impart pe mai multe " "linii astfel incat coding style-ul sa fie bun");
functionWithLotsOfParameters( parameter1, parameter2, parameter3, parameter4, parameter5 );