18
Sonar au JUGL Freddy Mallet http://sonar.codehaus.org Le 2 Avril 2009

Sonar devant le Java User Group de Lausanne

Embed Size (px)

Citation preview

Page 1: Sonar devant le Java User Group de Lausanne

Sonar au JUGL

Freddy Mallethttp://sonar.codehaus.org

Le 2 Avril 2009

Page 2: Sonar devant le Java User Group de Lausanne

Les 7 péchés capitaux ...

Page 3: Sonar devant le Java User Group de Lausanne

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

Page 4: Sonar devant le Java User Group de Lausanne

La mission divine de Sonar Lutter contre l'axe du mal ... car le code source le vaut bien !

Page 5: Sonar devant le Java User Group de Lausanne

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

Page 6: Sonar devant le Java User Group de Lausanne

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 :

Page 7: Sonar devant le Java User Group de Lausanne

Aucune conventions de codage (1/7)Checkstyle et PMD

Page 8: Sonar devant le Java User Group de Lausanne

Beaucoup de duplications (2/7)PMD - CPD

Page 9: Sonar devant le Java User Group de Lausanne

Peu de couverture par les tests (3/7)Junit, TestNG, Surfire, Clover, Cobertura

Page 10: Sonar devant le Java User Group de Lausanne

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

Page 11: Sonar devant le Java User Group de Lausanne

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

Page 12: Sonar devant le Java User Group de Lausanne

Complexité trop élevée (6/7)JavaNCSS

Page 13: Sonar devant le Java User Group de Lausanne

Design spaghetti (7/7)

Les produits références du marché XDepend SonarJ Structure101

Quelques librairies JDepend Architecture Rules Macker

?

Page 14: Sonar devant le Java User Group de Lausanne

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

Page 15: Sonar devant le Java User Group de Lausanne

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 ...

Page 16: Sonar devant le Java User Group de Lausanne

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

Page 17: Sonar devant le Java User Group de Lausanne

Une demo vaut mieux qu'un long sermon

Page 18: Sonar devant le Java User Group de Lausanne

Questions & Réponses

Merci http://sonar.codehaus.org

http://www.sonarsource.com

& confessions