Table of Contents

Regulament coding style

Responsabili:

Modificări și actualizări

Obiective

În urma parcurgerii și respectării acestui regulament:

Conceptul de clean code

Cuvântul care definește cel mai bine codul curat este consistența.

Prin consistență înțelegem “ceva” care nu se schimbă, care este impus respectă același set de reguli. Din acest motiv, creați-vă un coding style al vostru adică aplicați un set de reguli definite (de voi) pe tot parcursul temei, încă de la început.

Nu vă bazați pe factorizare, poate consuma destul de mult timp – în unele cazuri, chiar mai mult decât rezolvarea în sine a temei.

Păstrați-vă coding style-ul pentru fiecare temă sau proiect în care lucrați. Doar așa rămâneți consistenți.

Reguli

Variabile

Nu putem rezolva o temă fără variabile așa că de ce să nu le utilizăm corect. Exemplu: Nimeni nu ar înțelege ce face o variabilă zxc.

Reguli generale și referințe:

Nu folosiți variabile globale. Iată de ce.

int valueForBitEncryption;

vs.

int intValueForBitEncryption;
int i = 0;
double x = 0.00;
char c = '\0'; 

Funcții și metode

O funcție care face un singur lucru este în primul rând mult mai ușor de testat. În plus, este mult mai eficient atât din punct de vedere al performanțelor cât și al timpului să testați corect fiecare etapă parcursă în rezolvarea unei probleme. De exemplu, când primiți segmentation fault, în momentul în care folosiți gdb acesta vă returnează (ierarhic) funcția în care primiți eroarea. Comparați o funcție de 200 de linii care la un moment dat întoarce un segmentation fault sau o colecție de 10 funcții (care fac exact același lucru ca și cea de 200 de linii) dintre care doar una întoarce segmentation fault.

Reguli generale și referințe:

Clase și structuri

Alegeți clasele și obiectele în locul structurilor. Ați învățat în laboratorul 1 de ce.

Reguli generale și referințe:

Nu folosiți variabile globale. Iată de ce.

Formatare

Nu folosiți un singur fișier pentru întreaga rezolvare.

Folosiți fișierele .h pentru orice definirea claselor iar fișierele .cpp doar pentru funcția main pentru implementări. O pereche de fișiere .h - .cpp ar trebui să definească o singură clasă. Puteți folosi și fișiere tip helpers pentru funcții ajutătoare.

Reguli generale

Codul poate deveni derutant când apare o greșeală gramaticală ce poate îndruma cititorul spre o idee/cale greșită.

Puteți folosi fie tab-uri fie spații albe pentru alinierea orizontală.

Rularea checker-ului de coding style

Descărcați arhiva cu checker-ul de coding style, dezarhivați-l în directorul dorit și rulați comanda utilizând ca director directorul în care aveți fișierele temei:

 ./checker.sh director 

Puteți descărca checker-ul separat și de aici:

codingstylecheckerv4.zip

Acordarea punctajului

Bonusul se acordă procentual cu numărul testelor trecute. Dacă ai obținut maxim pe temă și nu există erori de coding style, vei obține bonusul de 0.2p. În schimb, dacă îți trec doar 50% din teste și nu ai erori de coding style vei obține doar 0.1p bonus. În cazul erorilor de coding style bonusul va fi 0p.

Recomandări

Țineți cont de erorile de coding style încă de la început pentru a evita un număr mare de erori la finalul temei.

Bibliografie