Sonar devant le Java User Group de Lausanne
-
Upload
freddy-mallet -
Category
Technology
-
view
1.016 -
download
0
Transcript of Sonar devant le Java User Group de Lausanne
![Page 1: Sonar devant le Java User Group de Lausanne](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/1.jpg)
Sonar au JUGL
Freddy Mallethttp://sonar.codehaus.org
Le 2 Avril 2009
![Page 2: Sonar devant le Java User Group de Lausanne](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/2.jpg)
Les 7 péchés capitaux ...
![Page 3: Sonar devant le Java User Group de Lausanne](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/7.jpg)
Aucune conventions de codage (1/7)Checkstyle et PMD
![Page 8: Sonar devant le Java User Group de Lausanne](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/8.jpg)
Beaucoup de duplications (2/7)PMD - CPD
![Page 9: Sonar devant le Java User Group de Lausanne](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/9.jpg)
Peu de couverture par les tests (3/7)Junit, TestNG, Surfire, Clover, Cobertura
![Page 10: Sonar devant le Java User Group de Lausanne](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/12.jpg)
Complexité trop élevée (6/7)JavaNCSS
![Page 13: Sonar devant le Java User Group de Lausanne](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/17.jpg)
Une demo vaut mieux qu'un long sermon
![Page 18: Sonar devant le Java User Group de Lausanne](https://reader034.fdocuments.us/reader034/viewer/2022042701/55ae2d0f1a28abab108b4773/html5/thumbnails/18.jpg)
Questions & Réponses
Merci http://sonar.codehaus.org
http://www.sonarsource.com
& confessions