Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hands on Sonar

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

Hands on Sonar

Par Alexandre Victoor et Mathias Kluba

Avatar for Mathias Kluba

Mathias Kluba

November 01, 2012

More Decks by Mathias Kluba

Other Decks in Programming

Transcript

  1. Qui sommes nous? Mathias Kluba (FastConnect) Expert .Net et Java,

    créateur de NDeps ;) @mathiaskluba Alexandre Victoor (SGCIB) Contributeur principal du plugin Sonar pour .Net @alex_victoor
  2. Pourquoi Sonar • La crise fait rage, il faut réduire

    les coûts • mais souvent les projets vieillissent mal • et accumulent de la dette technique
  3. Plan • Introduction à la qualimétrie • Sonar in a

    Nutshell • Comment ça marche • Etendre Sonar (API) • Fonctionnalités avancées
  4. Introduction à la qualimétrie Qu’est ce que la qualité d’un

    logiciel ? • Robustesse • Maintenance • Evolutivité • Performance • Sécurité
  5. Introduction à la qualimétrie Qu’est ce que la qualité d’un

    logiciel ? selon SQALE (http://www.sqale.org/) • Testability • Reliability • Changeability • Efficiency • Security • Maintenability • Portability • Reusability
  6. Introduction à la qualimétrie Pourquoi mesurer la qualité? • Avoir

    plus d’information pour prendre des décisions • Suivre son évolution: dégradation ou amélioration • Transparence • Réduire la « dette technique » et se fixer des objectifs réalistes • Justifier le refactoring
  7. Introduction à la qualimétrie Pourquoi mesurer la qualité? • On

    monitore l’état du logiciel en production: – Erreurs, warnings, … – consommation CPU/RAM, … • Et pourquoi pas monitorer l’état du logiciel avant: – Est-ce que ça compile? – Est-ce qu’il a de régressions? (tests unitaires) – Est-ce que la qualité se dégrade ?
  8. Introduction à la qualimétrie Comment mesurer la qualité ? •

    Résultat des tests • Couverture du code par les tests • Duplication • Complexité cyclomatique • Convention de nommage • Bugs potentiels • Erreurs de design
  9. Coment ça marche Qu’est ce que Sonar ? • Un

    « client » qui analyse votre projet (Java, C#, etc.) • Un portail qui affiche le résultat des analyses Mais aussi • Un plugin Eclipse • Un plugin Jenkins/Hudson • Etc.
  10. Coment ça marche Qu’est ce que Sonar ? • Un

    projet OpenSource, gratuit • Codé en Java • Disponible sur https://github.com/SonarCommunity • Avec une mailling-list [email protected] • Maintenue par la société SonarSource • Qui réalise le support et des plugins commerciaux
  11. Etendre Sonar • Une API REST pour – Injecter des

    indicateurs manuels – Ou business – générer des rapports • Pour aller plus loin une API Plugin – Batch side: les capteurs – Server side: l’IHM – De la glue avec Pico
  12. REST API • Ressources sonar ? • Metrics et measures

    ? • Exemples de requêtes: les events http://nemo.sonarsource.org/api/events?resource=org.codehaus.sonar:sonar &categories=Alert,Version&fromDate=2012-07-01&toDate=2012-08-31
  13. Plugin API, server side • Composants liés aux langages, aux

    règles ProfileImporter, RulesRepository… • GWT Documenté mais bientôt deprecated • RAILS Simple, dynamique mais…
  14. DI avec PICO • Enregistrement des composants par une classe

    « plugin » • Injection par constructeur • Utilisation d’interfaces de marquage