Sonar - Freddy Mallet - April 2009

Preview:

DESCRIPTION

Sonar - Freddy Mallet - April 2009

Citation preview

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