SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
Geneva JUG le 23 Février 2010



              La chasse aux
              7 péchés capitaux
              peut commencer

              Par Freddy Mallet
              freddy.mallet@sonarsource.com
Une époque est révolue
Le savant génial
Capitaine Flam est parmi nous




Au fin fond de l'Univers, à des années
et des années-lumière de la Terre,
Veille celui que le gouvernement
intersidéral appelle quand il n'est plus
Capable de trouver une solution à
ses problèmes, quand il ne reste plus
Aucun espoir :

le Capitaine FLAM !
C'est mon jouet !
La peur du changement…
Quand l'industrialisation s'en mêle

                  Projet géré sous contrôleur
                   de version
                  Projet sous intégration
                   continue
                  Projet avec traçabilité
                   technique / fonctionnelle
Quel est notre mission ?




                 ?
Faire du neuf avec du vieux
Tout est maintenance évolutive !



           Création
       d'une application




    Maintenance
 D'une l'application
Une époque est révolue
Développer pour les autres
Méthodologie
Transparence
Les outils évoluent tout comme nous




       Makefile          Gestionnaire         Intégration       Tests unitaires
                      de projet technique      Continue

VI / Emacs    Gestionnaire           Gestionnaire      Refactoring           Inspection
               de source              de tickets       depuis l'IDE           Continue
Inspection Continue




      « A well-written program is a program 
     where the cost of implementing a feature
 is constant throughout the program's lifetime. »

                                        Itay Maman
Comment la mesurer cette qualité ?
La dette technique
Les 7 péchés capitaux
Du développeur




                         Péchés



                          Dette
                        technique
Les 7 péchés capitaux ?
Appliqués au code source

   ?
   ?
   ?
   ?
   ?
   ?
   ?
Code dupliqué

   Que choisir entre la peste et le choléra ?
Mauvaise distribution de la complexité

   Vaut-il mieux :
       1 méthode d'une complexité de 30
    
        10 méthodes d'une complexité de 3
Mauvais design

   Quel package/classe est responsable de quoi ?
Bugs potentiels



 if (listeners == null)
     listeners.remove(listener);


 Sun java : JDK1.6.0, b105,
 sun.awt.x11.XMSelection
 lines 243-244
Peu ou pas d'utilisation des tests unitaires

   Merci d'ajouter un
    nouveau cas et
    d'éviter toute
    régression bien
    évidemment.
Non respect des standards
Pas ou trop de commentaires
Les 7 péchés capitaux
Appliqués au code source

   Mauvaise distribution de la complexité
   Code dupliqué
   Mauvais design
   Existence de bugs potentiels
   Mauvaise couverture par les tests unitaires, ...
   Non respect des standards de programmation
   Pas ou trop de commentaires
La mission de Sonar




Permettre de déclarer ouverte la
         chasse aux
      7 péchés capitaux
La mission de Sonar
Ou plus sérieusement




Permettre à tous d'augmenter la
   capacité à faire du neuf
        avec du vieux
Sonar à coeur ouvert

                   Sonar Maven Plugin
                    Sonar Maven Plugin
 Source
  Source
                    Cobertura       Squid       Surefire
  Code
   Code
              1
                       PMD        Checkstyle    Findbugs
                                                Changelog   1-   mvn sonar



                                                2
                      3



                                Sonar web interface
                                 Sonar web interface
                      5
           Sonar
            DB                                              2-   http://sonar
 4

     Aggregator
      Aggregator
     & Analyser
      & Analyser
Une demo
D'une plateforme à un écosystème

   35 plugins
   Intégration avec Hudson, Bamboo, Anthillpro,
    Jira, SonarJ, Structure101
   Sonar IDE (Evgeny Mandrikov)
    
        IDEA, Eclipse (, Netbeans)
   Gestion de la sécurité
   Couverture de nouveaux langages en cours
   ...
Pour (re)trouver le droit chemin
Questions & Réponses




           Merci
       http://sonar.codehaus.org
      http://www.sonarsource.com

Más contenido relacionado

Destacado

Chap 1 wolff
Chap 1 wolffChap 1 wolff
Chap 1 wolffMiss Kaw
 
Citations pour l'entreprise gagnante
Citations pour l'entreprise gagnanteCitations pour l'entreprise gagnante
Citations pour l'entreprise gagnanteLaurent Fiard
 
Chapitre 3 Le marketing-mix - BB1 - Connaissance Créative
Chapitre 3 Le marketing-mix - BB1 - Connaissance CréativeChapitre 3 Le marketing-mix - BB1 - Connaissance Créative
Chapitre 3 Le marketing-mix - BB1 - Connaissance CréativeConnaissance Créative
 
Panorama des logiciels et services en ligne gratuits utiles en thèse
Panorama des logiciels et services en ligne gratuits utiles en thèsePanorama des logiciels et services en ligne gratuits utiles en thèse
Panorama des logiciels et services en ligne gratuits utiles en thèseURFIST de Paris
 
50 citations sur l'innovation
50 citations sur l'innovation50 citations sur l'innovation
50 citations sur l'innovationHUB INSTITUTE
 
La pratique du contrôle de gestion
La pratique du contrôle de gestionLa pratique du contrôle de gestion
La pratique du contrôle de gestionOULAAJEB YOUSSEF
 
Final show
Final showFinal show
Final showflorenzo
 
Rapport de stage complet sur la planification et la gestion budgetaire d'une ...
Rapport de stage complet sur la planification et la gestion budgetaire d'une ...Rapport de stage complet sur la planification et la gestion budgetaire d'une ...
Rapport de stage complet sur la planification et la gestion budgetaire d'une ...proviseur
 
Logiciels et services gratuits utiles en thèse - version 2017
Logiciels et services gratuits utiles en thèse - version 2017Logiciels et services gratuits utiles en thèse - version 2017
Logiciels et services gratuits utiles en thèse - version 2017URFIST de Paris
 
Gestion de chantier ct btp_def 18-10-13
Gestion de chantier   ct btp_def 18-10-13Gestion de chantier   ct btp_def 18-10-13
Gestion de chantier ct btp_def 18-10-13OURAHOU Mohamed
 
Guide du conducteur de travaux
Guide du conducteur de travauxGuide du conducteur de travaux
Guide du conducteur de travauxClico travaux
 
Alphorm.com win dev-20-avance-ss
Alphorm.com win dev-20-avance-ssAlphorm.com win dev-20-avance-ss
Alphorm.com win dev-20-avance-ssAlphorm
 

Destacado (14)

Chap 1 wolff
Chap 1 wolffChap 1 wolff
Chap 1 wolff
 
Citations pour l'entreprise gagnante
Citations pour l'entreprise gagnanteCitations pour l'entreprise gagnante
Citations pour l'entreprise gagnante
 
Planification chantier
Planification chantierPlanification chantier
Planification chantier
 
Chapitre 3 Le marketing-mix - BB1 - Connaissance Créative
Chapitre 3 Le marketing-mix - BB1 - Connaissance CréativeChapitre 3 Le marketing-mix - BB1 - Connaissance Créative
Chapitre 3 Le marketing-mix - BB1 - Connaissance Créative
 
Panorama des logiciels et services en ligne gratuits utiles en thèse
Panorama des logiciels et services en ligne gratuits utiles en thèsePanorama des logiciels et services en ligne gratuits utiles en thèse
Panorama des logiciels et services en ligne gratuits utiles en thèse
 
50 citations sur l'innovation
50 citations sur l'innovation50 citations sur l'innovation
50 citations sur l'innovation
 
La pratique du contrôle de gestion
La pratique du contrôle de gestionLa pratique du contrôle de gestion
La pratique du contrôle de gestion
 
Final show
Final showFinal show
Final show
 
Rapport de stage complet sur la planification et la gestion budgetaire d'une ...
Rapport de stage complet sur la planification et la gestion budgetaire d'une ...Rapport de stage complet sur la planification et la gestion budgetaire d'une ...
Rapport de stage complet sur la planification et la gestion budgetaire d'une ...
 
Logiciels et services gratuits utiles en thèse - version 2017
Logiciels et services gratuits utiles en thèse - version 2017Logiciels et services gratuits utiles en thèse - version 2017
Logiciels et services gratuits utiles en thèse - version 2017
 
Gestion de chantier ct btp_def 18-10-13
Gestion de chantier   ct btp_def 18-10-13Gestion de chantier   ct btp_def 18-10-13
Gestion de chantier ct btp_def 18-10-13
 
Guide du conducteur de travaux
Guide du conducteur de travauxGuide du conducteur de travaux
Guide du conducteur de travaux
 
Alphorm.com win dev-20-avance-ss
Alphorm.com win dev-20-avance-ssAlphorm.com win dev-20-avance-ss
Alphorm.com win dev-20-avance-ss
 
Diaporama Cérémonie voeux 2013 FFTélécoms
Diaporama Cérémonie voeux 2013  FFTélécomsDiaporama Cérémonie voeux 2013  FFTélécoms
Diaporama Cérémonie voeux 2013 FFTélécoms
 

Similar a Sonar 2.0 au JUG Genève

Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009JUG Lausanne
 
AT2010 Principes Integration Continue
AT2010 Principes Integration ContinueAT2010 Principes Integration Continue
AT2010 Principes Integration ContinueNormandy JUG
 
Retour BreizhCamp 2023
Retour BreizhCamp 2023 Retour BreizhCamp 2023
Retour BreizhCamp 2023 SpikeeLabs
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survieNicolas VERINAUD
 
Des benchmarks qui déchirent avec JMH
Des benchmarks qui déchirent avec JMHDes benchmarks qui déchirent avec JMH
Des benchmarks qui déchirent avec JMHLeonardo Gomes
 
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Benoît Lafontaine
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?XP Day CH
 
Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Amélie DUVERNET
 
CocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOSCocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOSCocoaHeadsRNS
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Radical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxRadical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxFlavian Hautbois
 
Cloud Expo Europe 2018 - "Et si on testait en production ?"
Cloud Expo Europe 2018 - "Et si on testait en production ?"Cloud Expo Europe 2018 - "Et si on testait en production ?"
Cloud Expo Europe 2018 - "Et si on testait en production ?"Christophe Rochefolle
 
La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code OCTO Technology
 
Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?Microsoft
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Société ELOSI
 

Similar a Sonar 2.0 au JUG Genève (20)

Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009
 
AT2010 Principes Integration Continue
AT2010 Principes Integration ContinueAT2010 Principes Integration Continue
AT2010 Principes Integration Continue
 
Paris Chaos Engineering Meetup #6
Paris Chaos Engineering Meetup #6Paris Chaos Engineering Meetup #6
Paris Chaos Engineering Meetup #6
 
Retour BreizhCamp 2023
Retour BreizhCamp 2023 Retour BreizhCamp 2023
Retour BreizhCamp 2023
 
JavaCours1.ppt
JavaCours1.pptJavaCours1.ppt
JavaCours1.ppt
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survie
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
Des benchmarks qui déchirent avec JMH
Des benchmarks qui déchirent avec JMHDes benchmarks qui déchirent avec JMH
Des benchmarks qui déchirent avec JMH
 
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
 
Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.
 
CocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOSCocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOS
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Radical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxRadical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptx
 
Cloud Expo Europe 2018 - "Et si on testait en production ?"
Cloud Expo Europe 2018 - "Et si on testait en production ?"Cloud Expo Europe 2018 - "Et si on testait en production ?"
Cloud Expo Europe 2018 - "Et si on testait en production ?"
 
La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code
 
Wygday 2008
Wygday 2008Wygday 2008
Wygday 2008
 
Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !
 

Sonar 2.0 au JUG Genève

  • 1. Geneva JUG le 23 Février 2010 La chasse aux 7 péchés capitaux peut commencer Par Freddy Mallet freddy.mallet@sonarsource.com
  • 2. Une époque est révolue
  • 4. Capitaine Flam est parmi nous Au fin fond de l'Univers, à des années et des années-lumière de la Terre, Veille celui que le gouvernement intersidéral appelle quand il n'est plus Capable de trouver une solution à ses problèmes, quand il ne reste plus Aucun espoir : le Capitaine FLAM !
  • 6. La peur du changement…
  • 7. Quand l'industrialisation s'en mêle  Projet géré sous contrôleur de version  Projet sous intégration continue  Projet avec traçabilité technique / fonctionnelle
  • 8. Quel est notre mission ? ?
  • 9. Faire du neuf avec du vieux
  • 10. Tout est maintenance évolutive ! Création d'une application Maintenance D'une l'application
  • 11. Une époque est révolue
  • 15. Les outils évoluent tout comme nous Makefile Gestionnaire Intégration Tests unitaires de projet technique Continue VI / Emacs Gestionnaire Gestionnaire Refactoring Inspection de source de tickets depuis l'IDE Continue
  • 16. Inspection Continue « A well-written program is a program  where the cost of implementing a feature is constant throughout the program's lifetime. » Itay Maman
  • 17. Comment la mesurer cette qualité ?
  • 19. Les 7 péchés capitaux Du développeur Péchés Dette technique
  • 20. Les 7 péchés capitaux ? Appliqués au code source  ?  ?  ?  ?  ?  ?  ?
  • 21. Code dupliqué  Que choisir entre la peste et le choléra ?
  • 22. Mauvaise distribution de la complexité  Vaut-il mieux :  1 méthode d'une complexité de 30  10 méthodes d'une complexité de 3
  • 23. Mauvais design  Quel package/classe est responsable de quoi ?
  • 24. Bugs potentiels if (listeners == null) listeners.remove(listener); Sun java : JDK1.6.0, b105, sun.awt.x11.XMSelection lines 243-244
  • 25. Peu ou pas d'utilisation des tests unitaires  Merci d'ajouter un nouveau cas et d'éviter toute régression bien évidemment.
  • 26. Non respect des standards
  • 27. Pas ou trop de commentaires
  • 28. Les 7 péchés capitaux Appliqués au code source  Mauvaise distribution de la complexité  Code dupliqué  Mauvais design  Existence de bugs potentiels  Mauvaise couverture par les tests unitaires, ...  Non respect des standards de programmation  Pas ou trop de commentaires
  • 29. La mission de Sonar Permettre de déclarer ouverte la chasse aux 7 péchés capitaux
  • 30. La mission de Sonar Ou plus sérieusement Permettre à tous d'augmenter la capacité à faire du neuf avec du vieux
  • 31. Sonar à coeur ouvert Sonar Maven Plugin Sonar Maven Plugin Source Source Cobertura Squid Surefire Code Code 1 PMD Checkstyle Findbugs Changelog 1- mvn sonar 2 3 Sonar web interface Sonar web interface 5 Sonar DB 2- http://sonar 4 Aggregator Aggregator & Analyser & Analyser
  • 33. D'une plateforme à un écosystème  35 plugins  Intégration avec Hudson, Bamboo, Anthillpro, Jira, SonarJ, Structure101  Sonar IDE (Evgeny Mandrikov)  IDEA, Eclipse (, Netbeans)  Gestion de la sécurité  Couverture de nouveaux langages en cours  ...
  • 34. Pour (re)trouver le droit chemin
  • 35. Questions & Réponses Merci http://sonar.codehaus.org http://www.sonarsource.com