This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
administrativ:barem_teme [2015/09/30 13:51] Daniel Ciocirlan |
administrativ:barem_teme [2017/11/27 19:59] Adriana Draghici [Recomandări] |
||
---|---|---|---|
Line 11: | Line 11: | ||
* Alocați suficient timp temelor. E improbabil ca o rezolvare într-un all-night coding sprint să fie de calitate. | * Alocați suficient timp temelor. E improbabil ca o rezolvare într-un all-night coding sprint să fie de calitate. | ||
* Nu scrieți codul din prima, ci alocați timp abordării și design-ului. | * Nu scrieți codul din prima, ci alocați timp abordării și design-ului. | ||
- | * Fiți consecvenți unui coding style [TODO link]. | + | * Fiți consecvenți unui [[administrativ:coding_style_ide|coding style]]. |
* Când scrieți README-ul pentru teme: | * Când scrieți README-ul pentru teme: | ||
* nu reproduceți cerințele din enunț și/sau comentariile din cod | * nu reproduceți cerințele din enunț și/sau comentariile din cod | ||
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. Ne rezervăm dreptul de a avea teste private pentru submisiile pe care le primim. | + | * Folosiți principiile //Object Oriented//: |
- | * Păstrați (cu sfințenie am adăuga) principiile OO: | + | |
* păstrați încapsularea | * păstrați încapsularea | ||
* folosiți polimorfismul | * folosiți polimorfismul | ||
- | * abstractizați și programați "by contract" [TODO link] | + | * abstractizați și programați [[http://www.javapractices.com/topic/TopicAction.do?Id=194|"by contract"]] |
<note important> | <note important> | ||
Disclaimer: șansele sunt ca temele să fie mai dificile decât laboratoarele. | Disclaimer: șansele sunt ca temele să fie mai dificile decât laboratoarele. | ||
- | Pentru rezolvarea lor, deși nu vă cerem tehnici sau cunoștințe în plus față de laboratoare, va fi probabil nevoie de research individual. | + | Pentru rezolvarea lor, deși nu vă cerem tehnici sau cunoștințe în plus față de laboratoare, va fi probabil nevoie de mai multa documentare individuală. |
Vă stăm la dispoziție pe forumuri sau la email-urile de pe pagina principală. | Vă stăm la dispoziție pe forumuri sau la email-urile de pe pagina principală. | ||
Line 34: | Line 32: | ||
== Depunctări generale pentru teme == | == Depunctări generale pentru teme == | ||
- | Submisiile pe care le primim **trebuie să compileze și să ruleze** pentru a avea posibilitatea de punctaj non-zero. | + | Temele pe care le primim **trebuie să compileze și să ruleze** pentru a avea posibilitatea de punctaj non-zero. |
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: | ||
Line 40: | Line 38: | ||
* -0.2 warning-uri de compilare | * -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 | ||
- | * formatați-vă codul să fie ușor de citit și parcurs | ||
- | * puteți folosi auto-formatter-ul IDE-ului pe care îl folosiți | ||
* (variabil începând de la -0.1) cod duplicat | * (variabil începând de la -0.1) cod duplicat | ||
* -0.1 cod înghesuit sau prea spațiat | * -0.1 cod înghesuit sau prea spațiat | ||
Line 50: | Line 45: | ||
* IDE-ul vă ajută, folosiți formatarea IDE-ului | * IDE-ul vă ajută, folosiți formatarea IDE-ului | ||
* -0.1 surse nesemnate | * -0.1 surse nesemnate | ||
- | * IDE-ul vă ajută când vă generați comentarii Javadoc | + | * IDE-ul vă ajută să vă generați comentarii Javadoc cu numele autorului predefinit |
- | * -0.1 metode lungi (> 150 de linii) | + | * -0.1 metode lungi (> 150 de linii) în situații în care ar putea fi mai scurte |
* (variabil, începând de la -0.2) metode kilometrice (> 300 de linii), bucăți mari de logică în main etc | * (variabil, începând de la -0.2) metode kilometrice (> 300 de linii), bucăți mari de logică în main etc | ||
- | * -0.1 cod comentat | + | * -0.1 bucăți de cod comentat |
- | * -0.1 comentarii absente sau irelevante | + | * (variabil, începând de la -0.1) comentarii absente sau irelevante |
- | * -0.1 denumire nepotrivită pentru metode, variabile, clase | + | * (variabil, începând de la -0.1) denumiri nepotrivite pentru metode, variabile, clase |
* (variabil, în funcție de alocarea punctajului fiecărei teme) Readme necorespunzător, lipsă, conținut irelevant, etc | * (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 | * (variabil, începând de la -0.1) ruperea încapsulării, folosirea incorectă a modificatorilor de acces | ||
* -0.1 instanceof-uri și teste de tip | * -0.1 instanceof-uri și teste de tip | ||
* folosiți polimorfismul în schimb | * folosiți polimorfismul în schimb | ||
- | * -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. | ||
* (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>()'' | * -0.1 folosirea tipurilor "raw" în loc de tipurile parametrice (generic) e.g. ''new ArrayList()'' în loc de ''new ArrayList<String>()'' | ||
- | 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. |