Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sd-ca:regulament-checker [2017/03/21 18:03]
oana.caplescu [Conceptul de clean code]
sd-ca:regulament-checker [2023/03/28 17:28] (current)
emil.racec [Rularea checker-ului de coding style]
Line 1: Line 1:
 ===== Regulament coding style ===== ===== Regulament coding style =====
- 
-Responsabili:​ 
-  * [[mailto:​oana.caplescu@gmail.com | Oana Căplescu]] 
  
  
Line 11: Line 8:
   *veți putea identifica coding style-ul vostru;   *veți putea identifica coding style-ul vostru;
   *vă veți îmbunătăți modul de a scrie cod pentru a-l face //mai ușor de citit și înțeles// de cei din jur.   *vă veți îmbunătăți modul de a scrie cod pentru a-l face //mai ușor de citit și înțeles// de cei din jur.
-  *vă veți acomoda cu coding style-ul folosit la Google+  *vă veți acomoda cu coding style-ul folosit la Google.
  
 ==== Conceptul de clean code ==== ==== Conceptul de clean code ====
Line 50: Line 46:
 char c = '​\0';​ </​code>​ char c = '​\0';​ </​code>​
     * Nu folosiți variabile neinițializate - acest lucru poate duce la comportament incorect.     * Nu folosiți variabile neinițializate - acest lucru poate duce la comportament incorect.
-  ​* [[ https://​oana.microsoft.pub.ro/​2016/​03/​27/​introduction-to-clean-code/​ | Folosire proastă vs. corectă]]+          ​* [[ https://​oana.microsoft.pub.ro/​2016/​03/​27/​introduction-to-clean-code/​ | Folosire proastă vs. corectă]]
  
  
Line 66: Line 62:
     * aplicați [[ https://​google.github.io/​styleguide/​cppguide.html#​Function_Overloading | principiul de supraîncărcare ]] din C++ nu //doar// la operatori, cât și la funcții;     * aplicați [[ https://​google.github.io/​styleguide/​cppguide.html#​Function_Overloading | principiul de supraîncărcare ]] din C++ nu //doar// la operatori, cât și la funcții;
     * denumiți-vă funcțiile cât mai [[https://​google.github.io/​styleguide/​cppguide.html#​Function_Names | sugestiv ]] însă fără a oferi informații în plus;     * denumiți-vă funcțiile cât mai [[https://​google.github.io/​styleguide/​cppguide.html#​Function_Names | sugestiv ]] însă fără a oferi informații în plus;
-    ​* opțional: folosiți [[https://​google.github.io/​styleguide/​cppguide.html#​Function_Comments | acest tip]] de comentarii pentru a descrie informații care nu sunt subînțelese;​+        ​* opțional: folosiți [[https://​google.github.io/​styleguide/​cppguide.html#​Function_Comments | acest tip]] de comentarii pentru a descrie informații care nu sunt subînțelese;​
     * folosiți funcții ajutătoare și creați-le cât mai generale (să poată fi aplicate pe mai multe cazuri, nu doar pe cel curent - [[ https://​google.github.io/​styleguide/​cppguide.html#​Function_Declarations_and_Definitions| vezi aici]];     * folosiți funcții ajutătoare și creați-le cât mai generale (să poată fi aplicate pe mai multe cazuri, nu doar pe cel curent - [[ https://​google.github.io/​styleguide/​cppguide.html#​Function_Declarations_and_Definitions| vezi aici]];
-    ​* Folosiți [[ https://​ocw.cs.pub.ro/​courses/​sd-ca/​laboratoare/​lab-03 | templates]].+        ​* Folosiți [[ https://​ocw.cs.pub.ro/​courses/​sd-ca/​laboratoare/​lab-03 | templates]].
     * apelați funcțiile în mod corect; în plus, folosiți variabile locale pentru claritate;     * apelați funcțiile în mod corect; în plus, folosiți variabile locale pentru claritate;
         * C++ oferă posibilitatea trimiterii parametrilor __pe mai multe linii.__         * C++ oferă posibilitatea trimiterii parametrilor __pe mai multe linii.__
Line 74: Line 70:
     * folosiți __parametrii__ ca **input** și //valorile de// [[https://​google.github.io/​styleguide/​cppguide.html#​Return_Values | return]] ca **output**:     * folosiți __parametrii__ ca **input** și //valorile de// [[https://​google.github.io/​styleguide/​cppguide.html#​Return_Values | return]] ca **output**:
     *  Folosiți **clase** și **obiecte** pentru a lucra cu mai multe câmpuri/​informații.     *  Folosiți **clase** și **obiecte** pentru a lucra cu mai multe câmpuri/​informații.
-      +          ​* [[ https://​oana.microsoft.pub.ro/​2016/​04/​03/​clean-methods-2/​ | Folosire proastă vs. corectă]].
-  ​* [[ https://​oana.microsoft.pub.ro/​2016/​04/​03/​clean-methods-2/​ | Folosire proastă vs. corectă]].+
  
  
Line 85: Line 80:
 __Reguli generale și referințe__: ​ __Reguli generale și referințe__: ​
   * Denumiți [[https://​google.github.io/​styleguide/​cppguide.html#​Type_Names | corect]] atât clasele cât și atributele lor folosind nume care <​del>​vă vin în minte</​del>​ evidențiază rolul lor.   * Denumiți [[https://​google.github.io/​styleguide/​cppguide.html#​Type_Names | corect]] atât clasele cât și atributele lor folosind nume care <​del>​vă vin în minte</​del>​ evidențiază rolul lor.
-<note important>​Astfel, nu aveți nevoie de [[https://​google.github.io/​styleguide/​cppguide.html#​Class_Comments | comentarii de clasă]] iar codul arată mult mai aerisit.</​note>​+         ​* ​Astfel, nu aveți nevoie de [[https://​google.github.io/​styleguide/​cppguide.html#​Class_Comments | comentarii de clasă]] iar codul arată mult mai aerisit.
          * Folosind litere mari pentru clase evitați erori rezultate în urma încercării intanțierii unui obiect cu o metodă, de exemplu.          * Folosind litere mari pentru clase evitați erori rezultate în urma încercării intanțierii unui obiect cu o metodă, de exemplu.
 <note warning> Nu folosiți variabile globale. [[ http://​wiki.c2.com/?​GlobalVariablesAreBad | Iată]] de ce. </​note>​ <note warning> Nu folosiți variabile globale. [[ http://​wiki.c2.com/?​GlobalVariablesAreBad | Iată]] de ce. </​note>​
   * În cazul //​enumerațiilor//,​ tratați elementele lor ca niște [[https://​google.github.io/​styleguide/​cppguide.html#​Enumerator_Names | constante]].   * În cazul //​enumerațiilor//,​ tratați elementele lor ca niște [[https://​google.github.io/​styleguide/​cppguide.html#​Enumerator_Names | constante]].
   * Respectați [[https://​google.github.io/​styleguide/​cppguide.html#​Class_Format | formatul claselor]].   * Respectați [[https://​google.github.io/​styleguide/​cppguide.html#​Class_Format | formatul claselor]].
- +          ​* [[ https://​oana.microsoft.pub.ro/​2016/​04/​10/​comments/​ | Avem nevoie de comentarii?​]]
-  ​* [[ https://​oana.microsoft.pub.ro/​2016/​04/​10/​comments/​ | Avem nevoie de comentarii?​]]+
  
  
Line 99: Line 93:
   * [[https://​google.github.io/​styleguide/​cppguide.html#​Horizontal_Whitespace | Formatare pe orizontală]]   * [[https://​google.github.io/​styleguide/​cppguide.html#​Horizontal_Whitespace | Formatare pe orizontală]]
   * [[https://​google.github.io/​styleguide/​cppguide.html#​Vertical_Whitespace | Formatarea pe verticală]]   * [[https://​google.github.io/​styleguide/​cppguide.html#​Vertical_Whitespace | Formatarea pe verticală]]
- +          * [[https://​oana.microsoft.pub.ro/​2016/​10/​30/​formatting/​ | Reguli generale și exemple.]]
-[[https://​oana.microsoft.pub.ro/​2016/​10/​30/​formatting/​ | Reguli generale și exemple.]]+
  
  
Line 118: Line 111:
  
 ==== Rularea checker-ului de coding style ==== ==== 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:+Descărcați arhiva cu checker-ul de coding style, aferent fiecărei teme, dezarhivați-l în directorul dorit și rulați comanda utilizând ca director directorul în care aveți fișierele temei:
 <code c++> ./​checker.sh director </​code>​ <code c++> ./​checker.sh director </​code>​
  
 +<​hidden>​
 +Puteți descărca checker-ul separat și de aici:
  
 +{{:​sd-ca:​codingstylecheckerv4.zip|}} 
 +</​hidden>​
 ==== Acordarea punctajului ==== ==== Acordarea punctajului ====
 <note important>​ Bonusul se acordă **procentual cu numărul testelor trecute**. ​ <note important>​ Bonusul se acordă **procentual cu numărul testelor trecute**. ​
sd-ca/regulament-checker.1490112201.txt.gz · Last modified: 2017/03/21 18:03 by oana.caplescu
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