User Tools

Site Tools


Problem constructing authldap
laboratoare:tutorial-checkstyle
Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
laboratoare:tutorial-checkstyle [2017/09/26 19:12]
Mihai Burduselu [Rezolvare warninguri]
laboratoare:tutorial-checkstyle [2017/10/02 11:18] (current)
Tudor Paraschivescu
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: ​02.10.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 43: Line 42:
 3. '​name'​ hides a field. [HiddenField] 3. '​name'​ hides a field. [HiddenField]
 4. Parameter minutes should be final. [FinalParameters] 4. Parameter minutes should be final. [FinalParameters]
- 
 5. Class '​Dog'​ looks like designed for extension (can be subclassed),​ but the method '​bark'​ does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class '​Dog'​ final or making the method '​bark'​ static/​final/​abstract/​empty,​ or adding allowed annotation for the method. [DesignForExtension] 5. Class '​Dog'​ looks like designed for extension (can be subclassed),​ but the method '​bark'​ does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class '​Dog'​ final or making the method '​bark'​ static/​final/​abstract/​empty,​ or adding allowed annotation for the method. [DesignForExtension]
 </​code>​ </​code>​
  
 ==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}}
  
laboratoare/tutorial-checkstyle.1506442373.txt.gz · Last modified: 2017/09/26 19:12 by Mihai Burduselu