This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| administrativ:barem_teme [2017/11/05 14:39] Laurentiu Stamate | administrativ:barem_teme [2018/11/26 22:33] (current) Adriana Draghici [Depunctări generale pentru teme] | ||
|---|---|---|---|
| Line 18: | Line 18: | ||
| * formatați-l corespunzător - linii de 80 de caractere max, paragrafe, etc | * formatați-l corespunzător - linii de 80 de caractere max, paragrafe, etc | ||
| * Folosiți cu încredere forumurile pentru orice: neclarități, coding style, best practices, etc. | * Folosiți cu încredere forumurile pentru orice: neclarități, coding style, best practices, etc. | ||
| - | * Testați-vă tema dincolo de testele automate. Putem avea teste private. | ||
| * Folosiți principiile //Object Oriented//: | * Folosiți principiile //Object Oriented//: | ||
| * păstrați încapsularea | * păstrați încapsularea | ||
| Line 37: | Line 36: | ||
| Vom aplica mici depunctări legate de calitatea codului și a abordărilor temelor. Din 10 puncte: | Vom aplica mici depunctări legate de calitatea codului și a abordărilor temelor. Din 10 puncte: | ||
| - | * -0.2 warning-uri de compilare | + | **Coding style si organizare:** | 
| + | * -0.1 - cod înghesuit sau prea spațiat | ||
| + | * -0.2 - warning-uri de compilare | ||
| * verificați import-urile, variabilele nefolosite, etc | * verificați import-urile, variabilele nefolosite, etc | ||
| - | * -0.2 linii mai lungi de 80 de caractere | + | * între -0.1 și -0.4 - nepăstrarea consistenței pentru comentarii - fie sunt toate comentariile în engleză fie sunt toate în română. | 
| - | * formatați-vă codul să fie ușor de citit și parcurs | + | * între -0.1 și -0.4 - nepăstrarea consistenței pentru denumiri - fie sunt toate n engleză fie în română. Puteți avea însă denumirile și comentariile în limbi diferite. | 
| - | * puteți folosi auto-formatter-ul IDE-ului pe care îl folosiți | + | * între -0.1 și -0.3 - denumiri nepotrivite pentru metode, variabile, clase | 
| - | * (variabil începând de la -0.1) cod duplicat | + | * -0.1 - bucăți de cod comentat | 
| - | * -0.1 cod înghesuit sau prea spațiat | + | * -0.5 - toate clasele intr-un singur fisier | 
| - | * (variabil, începând de la -0.1) hardcodări | + | * -0.3 - toate sursele puse intr-un pachet | 
| - | * folosiți constante în locul valorilor numerice/String-urilor literali | + | * -0.1 - includerea altor fișiere care nu au legătură cu cerința | 
| - | * -0.1 tab-uri amestecate cu spații pentru indentare sau indentare inconsecventă (ba un tab, ba mai multe) | + | * -0.1 - includere folder bin in arhivă | 
| - | * IDE-ul vă ajută, folosiți formatarea IDE-ului | + | |
| - | * -0.1 surse nesemnate | + | **Documentare:** | 
| - | * IDE-ul vă ajută să vă generați comentarii Javadoc cu numele autorului predefinit | + | * între -0.1 și -0.5 - comentarii absente sau irelevante | 
| - | * -0.1 metode lungi (> 150 de linii) în situații în care ar putea fi mai scurte  | + | * -0.1 - comentarii de tip TODO în cod | 
| - | * (variabil, începând de la -0.2) metode kilometrice (> 300 de linii), bucăți mari de logică în main etc | + | |
| - | * -0.1 bucăți de cod comentat | + | |
| - | * (variabil, începând de la -0.1) comentarii absente sau irelevante | + | |
| - | * -0.1 denumire nepotrivită pentru metode, variabile, clase | + | |
| - | * (variabil, în funcție de alocarea punctajului fiecărei teme) Readme necorespunzător, lipsă, conținut irelevant, etc | + | |
| - | * (variabil, începând de la -0.1) ruperea încapsulării, folosirea incorectă a modificatorilor de acces | + | |
| - | * -0.1 instanceof-uri și teste de tip | + | |
| - | * folosiți polimorfismul în schimb | + | |
| * (variabil, începând de la -0.2) Javadoc necorespunzător, incomplet, irelevant; inclus și documentarea lipsă sau incorectă a parametrilor metodelor | * (variabil, începând de la -0.2) Javadoc necorespunzător, incomplet, irelevant; inclus și documentarea lipsă sau incorectă a parametrilor metodelor | ||
| - | * -0.1 lipsă Javadoc generat  sau script de generare. Această depunctare nu se va aplica dacă pentru o anume temă nu este necesară exportarea de documente Javadoc. | + | * -0.1 - lipsă Javadoc generat sau script de generare. Această depunctare nu se va aplica dacă pentru o anume temă nu este necesară exportarea de documente Javadoc. | 
| + | * (variabil, în funcție de alocarea punctajului fiecărei teme) Readme necorespunzător, lipsă, conținut irelevant, etc | ||
| + | |||
| + | **Design, implementare:** | ||
| + | * -0.5 - cod duplicat | ||
| + | * între -0.1 și -0.3 hardcodări | ||
| + | * folosiți constante în locul valorilor numerice/String-urilor literali | ||
| + | * -0.1 - metode șau variabile nefolosite | ||
| + | * între -0.1 și -0.5 - metode lungi (> 100 de linii) care ar fi putut fi sparte, bucăți mari de logică în main etc | ||
| + | * -0.1 - print-uri prin cod | ||
| + | * între -0.2 și -0.5 - ruperea încapsulării | ||
| + | * între -0.2 și -0.5 - modificatori de acces folositi necorespunzator (e.g. metode lăsate publice care de fapt ar trebui să fie private) | ||
| + | * -0.1 - instanceof-uri și teste de tip in situații în care putea fi folosit polimorfismul | ||
| + | * -0.5 - folosirea tipurilor "raw" în loc de tipurile parametrice (generic) e.g. ''new ArrayList()'' în loc de ''new ArrayList<String>()'' | ||
| * (variabil, -0.2 până la -2 sau peste) design rigid, greoi, inextensibil, bug-prone | * (variabil, -0.2 până la -2 sau peste) design rigid, greoi, inextensibil, bug-prone | ||
| - | * -0.1 folosirea tipurilor "raw" în loc de tipurile parametrice (generic) e.g. ''new ArrayList()'' în loc de ''new ArrayList<String>()'' | ||
| Lista nu este exhaustivă. Evaluatorii pot aplica depunctări mai mari decât cele prezentate aici, în funcție de numărul de apariții ale greșelilor sau de gravitatea lor. | Lista nu este exhaustivă. Evaluatorii pot aplica depunctări mai mari decât cele prezentate aici, în funcție de numărul de apariții ale greșelilor sau de gravitatea lor. | ||
| + | |||
| + | Pentru abateri minore (de exemplu un nume de metodă folosit neadecvat, in toată tema), se vor pune doar observații cu -0.0. | ||
| + | |||
| + | Ce considerăm util să conțină un fișier README pentru o temă la POO: | ||
| + | * componentele soluției: rolurile lor și relațiile dintre ele | ||
| + | * **nu** este necesar să luați pe rând fiecare clasă și să îi descrieți câmpurile și metodele, pentru asta există javadoc. | ||
| + | * flow-ul dintre componente - e.g. cum se realizează o anumite acțiune, ce clase sunt implicate. | ||
| + | * probleme întâmpinate (dacă ați avut) | ||
| + | |||