Administrativ
Laboratoare
Tema
Teste
Resurse utile
Alte resurse
Arhiva Teme
Administrativ
Laboratoare
Tema
Teste
Resurse utile
Alte resurse
Arhiva Teme
This is an old revision of the document!
Scopul acestui tutorial este de a vă prezenta checkstyle, un tool de analiză statică a codului java.
Acest tool configurabil are rolul de a-i semnala programatorului faptul ca nu a respectat anumite standarde de scriere a codului (ex: Sun Code Conventions, 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.
- Instalare și rulare checkstyle ca plugin în IntelliJ Idea
- Instalare și rulare checkstyle ca plugin în Eclipse
- Utilizare checkstyle în linia de comanda (Ubuntu)
Checkstyle oferă o serie de verificări, toate listate în documentație. Să luăm ca exemplu de utilizare checkstyle următoarea clasă.
public class Dog { public String name; public Dog(String name) { this.name = name; } public void bark(int minutes) { System.out.println("I am barking for " + minutes + " minutes."); } }
La rularea checkstyle vom vedea urmatoarele erori:
1. Variable 'name' must be private and have accessor methods. [VisibilityModifier] 2. Parameter name should be final. [FinalParameters] 3. 'name' hides a field. [HiddenField] 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]
1. Aceasta eroare ne obliga să facem privat acest membru privat și sa 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.
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.