Lors de ma dernière mission j’ai fait de la configuration SonarQube.Pour ceux qui ne connaissent pas, Sonar est un outil de gestion de qualité du code en continu. J’ai été confronté à plusieurs problèmes.
Il était installé sur une machine distante, et je n’avais pas les droits pour l’utiliser en ligne de commandes avec un terminal distant. J’ai du me débrouillé avec l’interface web.
Quand je suis arrivé le serveur était configuré par défaut avec le projet, et lié à un serveur Jenkins, qui me permettait de lancer le Job Sonar, donc je pouvais me passer de la ligne de commandes sur ce points.
On m’a demandé de personnalisé la configuration du projet. Une forme de bizutage pour le petit nouveau. Il avait été installé, mais personne n’avait eu le temps de s’en occuper.C’est à mon avis une situation qui se retrouve souvent.
J’ai cherché des ressources, et je n’ai pas trouvé beaucoup de sites dédiés et surtout de nombreux articles étaient anciens. Et il était très difficile de transposer les conseils, car l’interface de Sonar est très riche et différent d’une version à l’autre.
C’est pourquoi je pense qu’une FAQ SonarQube, abordant les différentes façon de l’utiliser serait intéressante.
On peut utiliser SonarQube seul, dans ce cas c’est surtout pour afficher des rapports globaux. Car pour corriger un problème dans le code, il faut faire la navette entre la page web et l’éditeur, et cela devient très vite fatiguant.
De plus le rapport des problèmes de qualité de code est global, cela est parfois décourageant car on ne s’est pas par où commencer. On peut utiliser le niveau de gravité comme boussole, mais ce n’est pas toujours le meilleurs choix à mon avis.
On peut installer le plugin SonarLint dans son envirronement de développement., J’ai découvert le plugin SonarLint un peu par hasard, en recherchant de la documentation. J’ai travaillé avec la version pour Eclipse.L’avantage majeur est que l’on peu accéder aux erreurs directement depuis l’éditeur. Elles sont marquées en bleues dans la marge, aussi listé dans la console d’erreurs elles apparaissent dans un nœud inffos sous les warnings, et dans l’onglet «*sonar issues*». Cela évite de faire la navette entre le navigateurcontenant le rapport de SonarQube et l’IDE.
Le code est analysé en temps réel à l’ouverture du fichier. Comme il y a moins d’items, qu’avec le rapport global de Sonar Qube, cela est plus digest. Et surtout comme un problème ne bient jamais seul il vaut mieux traiter tous les problèmes d’une classes en même temps, ce que permet le traitement en temps réel dans l’éditeur.
Néanmoins les erreurs de chaque fichier s’accumulent à chaques ouverture d’un nouveau code, la liste peut s’allonger rapidement au gré de la navigation dans les classes du projet. Pour ne pas se laisser débordé il faut les supprimer ou dans le pire des cas relancer l’IDE.
Avec SonarLint on va droit au but, c’est à dire la correction des problèmes de qualité du code, au moment où ils apparaissent lors de la saisie ou de la navigation entre les fichiers.
La principal limitation est qu’il y a moins d’options et de configuration qu*‘avec SonarQube. En autre il faut utiliser une des convention de code, que l’on ne peut pas personnaliser, par défaut la convention de Sun, qui est une valeur sûre à mon avis.
Il est toujours possible de lancer une analyse globale du projet, si on veut attaquer les problèmes de front, et un autre onglet Sonar sauvegarde tous les problèmes non résolus avec la date de leur identification, pour miux vous rappeler qu’il faut s’en occuper.
Je l’utilise , et je trouve que c’est une aide précieuse. Et je pense que se serait à conseiller aux débutants, car c’est très formateur, tout en gardant un esprit critique.
La dernière solution est d’utiliser SonarLint en tandem avec un serveur SonarQube. Cette solution est destinée au travail en équipe. Dans ce cas il suffit de lier le projet dans Eclipse avec le serveur SonarQube. Il suffit de cliquer avec le bouton droit sur le projet et de suivre l’assistant. Cela permet de bénéficier des avantages des deux outils.
SonarLint peut reprendre la configuration définie sur le serveur, elle est donc commune à toute l’équipe. Il est possible de faire remonter les corrections sur le serveur et d’importer les rapports des autres utilisateur, pour disposer de rapport à jour sans relancer une analyse longue.
Globalement, je pense que installer Sonar longtemps après l*‘écriture des premières lignes de code est contre-productif, mais c’est souvent le cas. Et on est devant le fait accomplis, quand le rapport s’affiche les résultats sont déprimants et semble insurmontable.
SonarLint rend la tâche plus digeste, car cela permet de se limiter à ce que l’on odifie.
Il est aussi important de configurer rapidement la base de données, car celle configurée par défaut est une base en fichier local, qui n’est pas prévue pour soutenir de grandes charge. Et en configurant une autre base de données on perd toutes les informations précédentes.
En conclusion pour travailler avec SonarQube et SonarLint j’ai du faire beaucoup de recherches. J’ai trouvé beaucoup de ressources mais éparpillés façon pusse au quatres coins du web.
Sonar Tube propose aussi de nombreux metrics et on est vite noyé.
C’est pourquoi je pense qu’une FAQ sur le sujet serait très intéressante.
Et vous comment utilisez vous Sonar*?
Quels sont les metrics qui vous aides le plus*?
Pensez-vous que Sonar Lint est un outil à intégrer dans IDE*?
Partager