Voici les planches (comme dirait un bon ami québécois) de ma présentation d'hier soir au JUG de Lausanne. Merci aux collaborateurs d'Octo pour l'organisation de cette soirée !
Freddy Malletco-founder at SonarSource à SonarSource
3. Les 7 péchés capitaux ...
Appliqués au code source
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
4. La mission divine de Sonar
Lutter contre l'axe du mal ... car le code source le vaut bien !
5. Niveau d'armement actuel
5/7, les infidèles n'ont qu'à bien se tenir
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
6. Rappel de bon sens
Un projet de qualité est :
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
9. Peu de couverture par les tests (3/7)
Junit, TestNG, Surfire, Clover, Cobertura
10. Absence de commentaires (4/7)
JavaNCSS 2 est en route
Ratio de méthode publiques hors setter/getter
avec javadoc
Ratio de classes/interfaces publiques avec
javadoc
Densité de commentaire
11. Beaucoup de bugs potentiels (5/7)
Findbugs
if (listeners == null)
listeners.remove(listener);
Sun java : JDK1.6.0, b105,
sun.awt.x11.XMSelection
lines 243-244
13. Design spaghetti (7/7)
?
Les produits références du marché
XDepend
SonarJ
Structure101
Quelques librairies
JDepend
Architecture Rules
Macker
14. Sonar à coeur ouvert
Sonar Maven Plugin
Source Cobertura JavaNCSS Surefire
1-
Code PMD Checkstyle Changelog mvn sonar
Changelog
1
2
XML
3
Files
Sonar web interface
5
Sonar
2-
DB http://sonar
4
Aggregator
& Analyser
15. 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
...
16. Les atouts
Facilité de mise en oeuvre :
mvn org.codehaus.sonar:sonar-maven-plugin:1.7:sonar
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é