This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
laboratoare:tutorial-checkstyle [2017/09/26 19:12] Mihai Burduselu [Rezolvare warninguri] |
laboratoare:tutorial-checkstyle [2017/10/01 22:08] Adriana Draghici [Tutorial checkstyle] |
||
---|---|---|---|
Line 1: | Line 1: | ||
=Tutorial checkstyle= | =Tutorial checkstyle= | ||
- | * Responsabil: todo | + | * Responsabil: [[michelcatalin@gmail.com|Mihai Burdușelu]] |
- | * Data publicării: todo | + | * Data publicării: 01.10.2017 |
- | * Data ultimei modificări: todo | + | * Data ultimei modificări: 28.09.2017 |
==Obiective== | ==Obiective== | ||
Line 11: | Line 11: | ||
Acest tool configurabil are rolul de a-i semnala programatorului faptul ca nu a respectat anumite standarde de scriere a codului (ex: [[http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html|Sun Code Conventions]], [[http://checkstyle.sourceforge.net/reports/google-java-style.html|Google Java Style]]). | Acest tool configurabil are rolul de a-i semnala programatorului faptul ca nu a respectat anumite standarde de scriere a codului (ex: [[http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html|Sun Code Conventions]], [[http://checkstyle.sourceforge.net/reports/google-java-style.html|Google Java Style]]). | ||
Un cod care respectă standardele și un set de bune practici este mai ușor de înțeles, de depanat și de extins. | Un cod care respectă standardele și un set de bune practici este mai ușor de înțeles, de depanat și de extins. | ||
+ | Aceste standarde sunt descrise într-un fișier **poo_checks.xml** (vezi Resurse), care va fi importat de către checkstyle. | ||
==Instalare checkstyle== | ==Instalare checkstyle== | ||
Line 16: | Line 17: | ||
- [[laboratoare:tutorial-checkstyle:eclipse]] | - [[laboratoare:tutorial-checkstyle:eclipse]] | ||
- | |||
- | - Utilizare checkstyle în linia de comanda (Ubuntu) | ||
==Exemple de warninguri semnalate de checkstyle== | ==Exemple de warninguri semnalate de checkstyle== | ||
Line 48: | Line 47: | ||
==Rezolvare warninguri== | ==Rezolvare warninguri== | ||
- | 1. Aceasta eroare ne obliga să facem privat acest membru privat și sa oferim getteri si setteri pentru el. | + | 1. Aceasta eroare ne obliga să facem private acest membru și să oferim getteri si setteri pentru el. |
- | 2. 3. Este recomandat sa facem parametrul final, întrucât se evită modificarea unui obiect primit ca parametru în interiorul acelei metode. | + | |
+ | 2. 3. Este recomandat să facem parametrul final, întrucât trebuie evitată modificarea acestuia în interiorul unei metode. | ||
4. Parametrul trebuie să aibă alt nume față de câmpul din acea clasă. | 4. Parametrul trebuie să aibă alt nume față de câmpul din acea clasă. | ||
+ | |||
5. Acest warning se referă la faptul că metodele publice sau protected ale unei clase ce va fi moștenită trebuie sa fie documentate. | 5. Acest warning se referă la faptul că metodele publice sau protected ale unei clase ce va fi moștenită trebuie sa fie documentate. | ||
+ | |||
+ | Următorul cod reprezintă una din modalitățile de corecție ale warningurilor anterioare. | ||
+ | <code java> | ||
+ | public class Dog { | ||
+ | private String name; | ||
+ | |||
+ | public Dog(final String newName) { | ||
+ | this.name = newName; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * @param minutes How long this dog barks. | ||
+ | */ | ||
+ | public void bark(final int minutes) { | ||
+ | System.out.println("My name is " | ||
+ | + this.name | ||
+ | + " and I am barking for " | ||
+ | + minutes | ||
+ | + " minutes."); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | |||
+ | ==Resurse== | ||
+ | * [[http://checkstyle.sourceforge.net/checks.html|Documentație warninguri checkstyle]] | ||
+ | * {{:laboratoare:tutorial-checkstyle:poo_checks.zip}} | ||