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

La actualidad más candente

TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !Lucian Precup
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverteEric Mignot
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAssociation Agile Nantes
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
 
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...TelecomValley
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDXavier NOPRE
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Normandie Web Xperts
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes PratiquesEmmanuel Hugonnet
 
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFEA la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFETelecomValley
 
4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciellauraty3204
 
Sonar devant le Java User Group de Lausanne
Sonar devant le Java User Group de LausanneSonar devant le Java User Group de Lausanne
Sonar devant le Java User Group de LausanneFreddy Mallet
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeTelecomValley
 
Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défautsJulien Jakubowski
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingBilal ZIANE
 
Coding dojo en entreprise
Coding dojo en entrepriseCoding dojo en entreprise
Coding dojo en entrepriseNicolas Ledez
 
Solutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHPSolutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHPJean-Marc Fontaine
 
Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010Jean-Marc Fontaine
 
Ratez vos revue de code en 5 lecons devoxx fr 2016
Ratez vos revue de code en 5 lecons   devoxx fr 2016Ratez vos revue de code en 5 lecons   devoxx fr 2016
Ratez vos revue de code en 5 lecons devoxx fr 2016Michel Domenjoud
 

La actualidad más candente (20)

TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverte
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
 
DevOps
DevOpsDevOps
DevOps
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
 
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFEA la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
 
4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel
 
Sonar devant le Java User Group de Lausanne
Sonar devant le Java User Group de LausanneSonar devant le Java User Group de Lausanne
Sonar devant le Java User Group de Lausanne
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
 
Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défauts
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Coding dojo en entreprise
Coding dojo en entrepriseCoding dojo en entreprise
Coding dojo en entreprise
 
Solutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHPSolutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHP
 
Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010
 
Ratez vos revue de code en 5 lecons devoxx fr 2016
Ratez vos revue de code en 5 lecons   devoxx fr 2016Ratez vos revue de code en 5 lecons   devoxx fr 2016
Ratez vos revue de code en 5 lecons devoxx fr 2016
 

Destacado (13)

Mes creations
Mes creationsMes creations
Mes creations
 
Quelle gouvernance pour l'industrie des paiements
Quelle gouvernance pour l'industrie des paiementsQuelle gouvernance pour l'industrie des paiements
Quelle gouvernance pour l'industrie des paiements
 
2013 j1 numérique & accompagnement carif oref_itg_j_vds
2013 j1 numérique & accompagnement carif oref_itg_j_vds2013 j1 numérique & accompagnement carif oref_itg_j_vds
2013 j1 numérique & accompagnement carif oref_itg_j_vds
 
You & me
You & meYou & me
You & me
 
Mulhouse 2012 OTF Morlaix
Mulhouse 2012 OTF MorlaixMulhouse 2012 OTF Morlaix
Mulhouse 2012 OTF Morlaix
 
Les Trous Guv
Les Trous GuvLes Trous Guv
Les Trous Guv
 
RéFéRencement Mobile 190210
RéFéRencement Mobile 190210RéFéRencement Mobile 190210
RéFéRencement Mobile 190210
 
La fabrique à média
La fabrique à médiaLa fabrique à média
La fabrique à média
 
CRBMx260312light
CRBMx260312lightCRBMx260312light
CRBMx260312light
 
Étude clinique "Class Mousse 1"
Étude clinique "Class Mousse 1"Étude clinique "Class Mousse 1"
Étude clinique "Class Mousse 1"
 
Les TIC dans la Société Réunionnaise -
Les TIC dans la Société Réunionnaise - Les TIC dans la Société Réunionnaise -
Les TIC dans la Société Réunionnaise -
 
Comparatif
ComparatifComparatif
Comparatif
 
Virtual Doctor l lozano 3.0
Virtual Doctor l lozano 3.0Virtual Doctor l lozano 3.0
Virtual Doctor l lozano 3.0
 

Similar a Sonar 2.0 au GenevaJUG par Freddy Mallet

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
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
Analyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSourceAnalyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSourceSébastien GIORIA
 

Similar a Sonar 2.0 au GenevaJUG par Freddy Mallet (20)

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
 
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 !
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
Analyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSourceAnalyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSource
 

Más de GenevaJUG

Diagnostic performances
Diagnostic performancesDiagnostic performances
Diagnostic performancesGenevaJUG
 
Apache Camel
Apache CamelApache Camel
Apache CamelGenevaJUG
 
Scala at GenevaJUG by Iulian Dragos
Scala at GenevaJUG by Iulian DragosScala at GenevaJUG by Iulian Dragos
Scala at GenevaJUG by Iulian DragosGenevaJUG
 
Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine
Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-PouchkineGlassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine
Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-PouchkineGenevaJUG
 
Apache Maven at GenevaJUG by Arnaud Héritier
Apache Maven at GenevaJUG by Arnaud HéritierApache Maven at GenevaJUG by Arnaud Héritier
Apache Maven at GenevaJUG by Arnaud HéritierGenevaJUG
 
Play! Framework at GenevaJUG by Guillaume Bort
Play! Framework at GenevaJUG by Guillaume BortPlay! Framework at GenevaJUG by Guillaume Bort
Play! Framework at GenevaJUG by Guillaume BortGenevaJUG
 

Más de GenevaJUG (6)

Diagnostic performances
Diagnostic performancesDiagnostic performances
Diagnostic performances
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 
Scala at GenevaJUG by Iulian Dragos
Scala at GenevaJUG by Iulian DragosScala at GenevaJUG by Iulian Dragos
Scala at GenevaJUG by Iulian Dragos
 
Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine
Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-PouchkineGlassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine
Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine
 
Apache Maven at GenevaJUG by Arnaud Héritier
Apache Maven at GenevaJUG by Arnaud HéritierApache Maven at GenevaJUG by Arnaud Héritier
Apache Maven at GenevaJUG by Arnaud Héritier
 
Play! Framework at GenevaJUG by Guillaume Bort
Play! Framework at GenevaJUG by Guillaume BortPlay! Framework at GenevaJUG by Guillaume Bort
Play! Framework at GenevaJUG by Guillaume Bort
 

Sonar 2.0 au GenevaJUG par Freddy Mallet

  • 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