« Retour

La qualité de code en direct avec SonarLint !

A quoi sert SonarLint ?

Après notre présentation de SonarQube, nous vous proposons maintenant de prendre le problème de la qualité de code à la racine avec SonarLint.

En effet, SonarLint est un plugin permettant de réaliser les analyse de code SonarQube au fil des développements, directement dans l'IDE. Un bon coup de pouce pour identifier au plus tôt, c'est-à-dire avant même le commit, les points à corriger. De ce fait, le coût de la qualité du code est extrêmement réduit, voire invisible, à l'inverse des lourdes campagnes correctives qui interviennent sur du code déjà mergé depuis longtemps.

Ici, un exemple avec Intellij. Il est à noter que ce plugin est également dispo pour Eclipse et Visual Studio.

Installation du plugin SonarLint sur Intellij

  • Ouvrir Intellij
  • Aller dans "File" > "Settings" > "Plugins"
  • Cliquer sur "Browse repositories"
  • Rechercher "SonarLint", l'installer et redémarrer Intellij

Lancer une analyse SonarLint

Pour lancer une analyse, cliquez sur l'onglet "Analyze" d'Intellij. Vous verrez les options SonarLint dans une liste déroulante.

Si par exemple nous lançons une analyse sur tous les fichiers (attention, cette opération peut s'avérer assez longue sur les gros projets), nous obtenons une vue telle que celle-ci :

Un double-clic sur une anomalie permet d'accéder à la ligne de code en question, ainsi qu'à l'explication du problème afin de pouvoir le corriger en connaissance de cause.

Intégration de SonarLint avec un serveur SonarQube

Partagez vos règles SonarQube sur tous les postes

Très bien, nous pouvons maintenant voir très rapidement les défauts de notre code dans la console SonarLint. Mais ce qui serait encore mieux, ce serait de partager les mêmes règles que le reste de l'équipe, à savoir les règles définies dans le serveur SonarQube central. Ces règles correspondent au(x) profil(s) qualité utilisé(s) pour le projet.

Pour ce faire :

  • Aller dans "File" > "Settings" > "Other settings" > "SonarLint General Settings".
  • Ajouter un serveur SonarQube. Pour ce faire, il y a besoin d'un token (souvenez-vous, nous en avions besoin aussi pour interfacer SonarQube avec Jenkins !), ou d'un couple login/password.
  • Dans l'onglet "SonarLint Project Settings", associer le projet courant au projet correspondant dans SonarQube. Il est important que le nom du projet soit le même dans les deux outils.
  • De retour dans l'onglet "SonarLint General Settings", cliquer sur le bouton "Update binding".

Désormais, vous partagez dans votre IDE le même profil qualité que votre projet SonarQube. Faites un test : introduisez un bug dans votre code, changez la priorité de ce bug dans SonarQube, cliquez de nouveau sur le bouton "Update binding" dans les Settings d'Intellij, et vous verrez que la priorité du bug changera également dans votre IDE lors de la prochaine analyse. Si ce n'est pas le cas, c'est que vous avez manqué une étape !

Résolution de version

Au moment de la mise à jour du lien SonarQube - SonarLint, une popup d'erreur peut survenir, avec un message comme celui-ci :

The following plugins do not meet the required minimum versions, please upgrade them: *** (installed: x.x, minimum: x.x).

Il s'agit la plupart du temps d'un package de règles d'un langage qui doit être mis à jour dans SonarQube. Pour régler ce problème de version :

  • Se rendre sur l'interface SonarQube
  • Se connecter avec un compte administrateur
  • Aller dans "Configuration" > "Système" > "Mises à jour"
  • Mettre à jour le module mentionné dans le message d'erreur.

Conclusion

Le plugin SonarLint représente une opportunité pour les développeurs, car il aide à renforcer la qualité de code au fur et à mesure de l'écriture. Moins de risque d'oublis donc, et un allègement significatif des retours produits lors de la revue de code.

Un point d'alerte toutefois : il faut veiller à ce que les règles définies dans le profil qualité soient pertinentes, c'est-à-dire adaptées à la fois au projet et à l'équipe concernée. Sans cela, une part plus ou moins importante des analyses produites par SonarLint sera tout simplement ignorée par les équipes de développement.

Vous aimerez peut-être...

Sondez votre code avec SonarQube

SonarQube met son grain de sel dans Gitlab !

Un avis ? Un commentaire ?

Cet espace est pour vous.