Sinon pour le passage à Maven la documentation en français commence à exister (autopromotion ) .
Et tu peux même y contribuer
http://github.com/ehsavoie/maven-guide-fr/wikis/home
Emmanuel
Sinon pour le passage à Maven la documentation en français commence à exister (autopromotion ) .
Et tu peux même y contribuer
http://github.com/ehsavoie/maven-guide-fr/wikis/home
Emmanuel
Petite question à propos de Sonar : comment l'intégrez vous dans votre ide favori ?
Perso j'utilise eclipse avec m2eclipse pour l'intégration de maven et... j'aimerai qu'eclipse utilise les mêmes règles pour controler de suite la qualité de ce que je fais.
D'après ce que j'ai lu :
- ça ne marche pas avec m2eclipse (?)
- il faut configurer indiviuellement les plugins correspondant => est ce au moyen possible pour tous ?
...
merci d'avance !
++
Merci d'utiliser le bouton [Résolu] pour les sujets qui le sont.
[pub]mon blog franco anglais, article du moment: Wicket: fournir des données JSON via Ajax[/pub]
Bonjour,
quelqu'un sait-il comment utiliser le plugin PHP ? Je l'ai correctement buildé, mais je ne vois pas quoi faire avec.
Il faut écrire le pom.xml soit même ? Ou le plugin permet d'utiliser le build.xml ? (avec des règles pour php cs, phpcpd....).
Je ne vois pas de documentation sur le site de l'auteur, du coup je recherche un petit peu comment ça se goupille pour PHP...
http://adrien.frenchcomp.net : Blog (expériementations, contributions), CV, projets....
Bonjour à tous.
Je viens de découvrir Sonar ... cet outil est vraiment excellent !
Cette présentation m'a bien servit
Je recherche à présent une description complète et détaillé des métriques présentées dans Sonar.
Par exemple, dans le dashBoard, comment le pourcentage "Comments" est-il calculé ? Je sais que Sonar se base sur "Sonar Squiq" mais pour le moment, je n'ai pas trouvé grand chose ...
Le lien http://docs.codehaus.org/display/SON...ic+definitions m'a été très util mais certain éléments restent incomplets ...
J'aimerais aussi avoir une ordre d'idée sur l'interprétation des métriques.
Par exemple, en ce qui concerne les métriques "Duplication", "Rules Compliance", "Comments" du Dashboard, à partir de quelle fourchette (en pourcentage) peut-on dire que tel ou tel aspect est d'excellente qualité, de bonne qualité, de qualité moyenne ou de médiocre qualité ?
Idem pour SIG et Technical Debt.
J'en profite aussi pour vous demander votre propre interprétation sur les résultat obtenue à l'aide de Sonar (interprétation des métriques).
Ah, l'interprétation des résultats...
C'est la partie la plus compliquée du processus de suivi de qualité.
Il n'existe pas une interprétation unique de ces résultats.
Premièrement, il faut savoir ce que signifie une métrique donnée.
Prenons un exemple : la couverture du code par les tests. "Idéalement", on pourrait penser qu'il faut avoir 100%.
Regardons ce code :
Ecrivons maintenant un test unitaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public String toto(boolean test) { String x = null; if (test) {} x = "toto"; } return x.trim(); }
Dans mon cas, j'ai bien une couverture de test de 100% * et mon test passe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @Test public void testToto() { assertEquals("toto", toto(true)); }
Théoriquement, je n'aurais pas besoin de réaliser un autre test. Mais ajoutons quand même cette ligne dans mon test unitaire :
Là, je me récupère un NullPointerException !
Code : Sélectionner tout - Visualiser dans une fenêtre à part assertEquals("toto", toto(false));
* La couverture par ligne est ici de 100%, car toutes les lignes de ma méthode toto sont effectivement lues par mon test.
Toutefois, la couverture par branche n'est pas de 100%, car justement, il faut considérer le cas où test = false.
Il est à noter que Sonar fait la distinction de ces types de couverture (respectivement line coverage et branch coverage).
Maintenant, même si on comprend la signification d'une métrique, comment connaître sa bonne valeur ?
Imaginons une méthode qui simule un lancer de dés.
Si je travaille pour la Française des Jeux sur un nouveau jeu de 421 en ligne par exemple, la méthode du lancé de dé peut être considérée comme un point critique de mon application.
Je vais donc tester à fond cette méthode. Non seulement je veux avoir une couverture de 100%, mais je veux également aller plus loin.
Je vais par exemple écrire des tests qui vont me permettre de m'assurer qu'aucune valeur du dé n'est privilégiée par rapport à une autre.
Je vais donc m'"amuser" avec des formules mathématiques et statistiques pour arriver à cela.
Si au contraire la méthode du lancé de dé n'est qu'un gadget dans mon application, j'aurais un besoin beaucoup moins important de tester complètement cette fonction.
A la limite, un "simple" test qui lance 1000 fois mon dé et qui vérifie que chaque valeur a été tirée au moins une fois devrait me suffire largement !
Tout ça pour dire qu'il n'existe pas pour une métrique donnée une valeur parfaite. Il faut mettre en parallèle le besoin, mais aussi le travail à accomplir.
Je finirais par citer la fameuse règle du "80 - 20".
Tu peux très bien mettre 20% du temps à écrire du code qui testera 80% de ton application, puis avoir besoin de 80% de temps en plus pour atteindre les 20% restants.
Pour résumer : ne pas viser la perfection, savoir où sont situés les points critiques de ton application, et savoir regarder "au delà" des chiffres.
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
Je te remercie pour cette réponse.
Je suis bien conscient des points que tu as cités et je te rejoint entièrement dans ton analyse.
Les tests unitaires ne sont pas non plus toujours pertinent et peuvent néanmoins couvrir une bonne partie de l'application.
Idem pour PMD, ce n'est qu'un indicateur
Ex : Pour des raison de lisibilité, on peut faire deux append d'une chaîne de string mais cela sera considéré comme étant une erreur par PMD (ce qui peut aussi se comprendre)
Je me suis surement mal exprimé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 final StringBuffer sqlGetSize = new StringBuffer(300);sqlGetSize.append("SELECT count(*) CC") .append(" FROM a1 a, b1 b, ...") .append( " WHERE b.rerer = ...") .append( idABC) ...;
Mon but n'est absolument pas de viser la perfection mais de pouvoir interpréter les choses de manière approximative.
L'objectif n'étant évidement pas de viser 100% sur chaque indicateur mais de savoir si tel indicateur est (très) généralement bon ou mauvais pour tel ou tel type de projet.
Je suis en train de réaliser un document permettant d'interprété les métriques généré par Sonar. Ce document doit être facile à lire et doit permettre à n'importe qui d'en interpréter les résultats (toujours de manières un peu approximative).
Evidemment aussi, chaque projet a ses spécificités et chaque projet et par conséquent, chaque métriques doit être interprété différemment.
Mais globalement, on peut quand même dire qu'un projet dont les tests unitaires couvrent 50% du code est un projet "mal couvert".
Malgrès toutes ces disparités, certaines interprétations, certaines tendances peuvent se généraliser. On peut comparer, par exemple, les métriques relevés sur des projet un peu similaire (similaire : terme "un peu" subjectif ...).
L'objectif étant d'avoir des points de comparaisons les plus objectifs possible ce qui est loin d'être facile ...
J'aurais bien aimé avoir les résultats de plusieurs projets ( comme pour némo par exemple http://nemo.sonarsource.org/) ainsi que l'analyse, l'interprétation qui en a été faite.
Pour cela j'aurais par exemple besoin des valeurs suivantes présentent dans le dash board :
Lines of code
Comments
Duplications
Rules compliance
Complexity
...
Bref, l'ensemble des valeurs indiquées dans le dash board de Sonar et surtout leur interprétation respective.
Merci d'avance
Bonjour,
De ce côté ca commence à avancer : cf. Sonar IDEs
Rémy
Bonjour à tous !
Je profite de ce topic pour faire remonter une erreur actuellement sur le repo 1 de Maven. En voulant tester sonar, avec la nouvelle commande mvn sonar:sonar, maven bloquait toujours sur un fichier sur le repo avec une belle erreur 503.
Voici le fichier :
http://repo1.maven.org/maven2/org/ap...n-metadata.xml
En passant par le repo 2 ça fonctionne bien :
http://repo2.maven.org/maven2/org/ap...n-metadata.xml
Donc pour les personnes qui bloquent comme moi actuellement sur ce fichier, j'ai rapidement forcé dans le fichier settings.xml de maven de telecharger sur le repo 2 et non le 1.
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <settings> <mirrors> <mirror> <id>MyRepo</id> <name>Mon repository</name> <url>http://repo2.maven.org/maven2/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> </settings>
ce n'est pas très propre, mais ça permet de faire fonctionner sonar avec la nouvelle commande sonar:sonar.
Merci d'utiliser le bouton [Résolu] pour les sujets qui le sont.
[pub]mon blog franco anglais, article du moment: Wicket: fournir des données JSON via Ajax[/pub]
... pour cet excellent tuto.
Cordialement,
Merci beaucoup !!
peut être une mise à jours pour évoquer les nouveaux plugin.
edit:
Pour ceux qui connaissent, j'aurais voulu savoir s'il est possible d'analyser du code C/C++ avec sonar (plugin) comme le fait FlawFinders ou RATS par exemple. (afin de trouver certaines failles de sécurité).
Merci
Il existe le C plugin pour Sonar dont la version 1.3 vient de sortir :
http://www.sonarsource.com/2011/04/0...n-13-released/
Je ne sais pas si cela correspond à ce que tu souhaites, mais tu peux y jetter un oeil.
j'ai l'impression (en ayant jeté un petit coup d'oeil) que sonar permet de vérifier la qualité du code. (performance, test unitaire etc..) mais ce que j'aimerais savoir avant de m'attaquer à ce produit c'est:
est ce qu'il gère la vérification de fuite mémoire, de vulnérabilité (type buffer overflow, integer overflow....) pour le langage C/C++ via le plugin ?
Bonjour à tous,
très bon tuto, (re)bravo romaintaz !
J'ai testé les 3 premières pages du tuto et j'ai réussi à installer sonar et intégrer mes 5 projets dedans (en direct et via le plugin hudson)
Je vais maintenant m'attaquer à la suite (les 4 pages suivantes) pour apprendre je l'espère à lire et interpréter l'analyse de code faite par sonar. Et éventuellement le configurer...
Petite remarque quand même sur cette première partie :
l'ordre ne me parait pas très logique, non ?II-B-1. Paramétrage de la base de données
...Il faut ensuite éditer le fichier de configuration conf/sonar.properties...
II-B-2. Installation et configuration
En premier lieu, il faut télécharger l'archive Sonar sur le site de SonarSource...
Merci en tout cas pour ce tuto
PoichOU
PS : 2 des 3 liens du § VIII-C. Développement sont dead
Merci
Bon, effectivement c'est pas très logique tout ça...
De toutes façons, je prévois de refaire cet article cet été parce que les choses ont pas mal évolué depuis 2 ans !
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
Mes prévisions s'avéreront justes (sauf si la fin du monde arrive plus vite que prévu ou un truc du genre).
J'ai pratiquement fini ma mise-à-jour de l'article, j'ai encore quelques petites corrections à apporter, attendre une revue de l'équipe de Sonar et une correction orthographique.
Bref, la mise-à-jour devrait être proposée en août, voire septembre au plus tad
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
Le guide francophone de l'outil Sonar vient d'être mis à jour, retraçant toutes les nouveautés apportées jusqu'à la version 2.9 de juillet 2011.
Pour rappel, Sonar est un outil utilisé afin de mesurer le niveau de qualité d'un logiciel, et de suivre l'évolution de cette qualité tout au long du développement d'une application.
Ce guide présente tous les aspects de l'outil de SonarSource, de l'installation, à la consultation des données, en passant par des clés pour décrypter les mesures réalisées par l'outil.
L'article est visible à cette adresse : http://linsolas.developpez.com/artic...qualite/sonar/
Bonne lecture !
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
Bonjour,
J'aimerai récupérer l'article en pdf mais le lien est dead.
Solution ?
Cdt,
Xpmich
Bonjour,
Le lien est effectivement erroné.
Le bon devrait être celui-ci :
http://linsolas.developpez.com/artic...onar/sonar.pdf
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager