sonar devant le java user group de lausanne
TRANSCRIPT
Sonar au JUGL
Freddy Mallethttp://sonar.codehaus.org
Le 2 Avril 2009
Les 7 péchés capitaux ...
Les 7 péchés capitaux ...
Aucune convention de codage Beaucoup de duplications Peu de couverture par les tests unitaires Absence de commentaires Beaucoup de bugs potentiels Complexité par composant importante Design spaghetti
Appliqués au code source
La mission divine de Sonar Lutter contre l'axe du mal ... car le code source le vaut bien !
Niveau d'armement actuel
OK : Aucune convention de codage OK : Beaucoup de duplications OK : Peu de couverture par les tests unitaires KO : Absence de commentaires OK : Beaucoup de bugs potentiels OK : Complexité par composants importante KO : Design spaghetti
5/7, les infidèles n'ont qu'à bien se tenir
Rappel de bon sens
Un projet géré sous contrôleur de version
Un projet qui compile (Intégration continue)
Un projet avec une traçabilité technique / fonctionnelle
Un projet qui n'a pas succombé à l'un des 7 péchés capitaux
Un projet de qualité est :
Aucune conventions de codage (1/7)Checkstyle et PMD
Beaucoup de duplications (2/7)PMD - CPD
Peu de couverture par les tests (3/7)Junit, TestNG, Surfire, Clover, Cobertura
Absence de commentaires (4/7)
Ratio de méthode publiques hors setter/getter avec javadoc
Ratio de classes/interfaces publiques avec javadoc
Densité de commentaire
JavaNCSS 2 est en route
Beaucoup de bugs potentiels (5/7)
if (listeners == null) listeners.remove(listener);
Sun java : JDK1.6.0, b105, sun.awt.x11.XMSelection lines 243-244
Findbugs
Complexité trop élevée (6/7)JavaNCSS
Design spaghetti (7/7)
Les produits références du marché XDepend SonarJ Structure101
Quelques librairies JDepend Architecture Rules Macker
?
Sonar à coeur ouvert
SourceCode
Sonar Maven Plugin
Checkstyle
JavaNCSS SurefireCobertura
PMD ChangelogChangelog
XMLFiles
SonarDB
Sonar web interface
Aggregator& Analyser
1
2
3
5
1 - mvn sonar
2 - http://sonar4
De quoi demain sera fait ?
Agrégation des projets techniques par application, service, département...
Ré-écriture de JavaNCSS Amélioration du moteur de règles Couverture de PHP Mécanismes de gestion des autorisations ...
Les atouts
Facilité de mise en oeuvre :
Vue consolidée sur l'ensemble du parc applicatif
Suivi temporel des indicateurs Gestion centralisée de la qualité (règles,
seuils) Client web Activité de la communauté
mvn org.codehaus.sonar:sonar-maven-plugin:1.7:sonar
Une demo vaut mieux qu'un long sermon
Questions & Réponses
Merci http://sonar.codehaus.org
http://www.sonarsource.com
& confessions