17 septembre 2017 Automatisation Outils

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 le linter SonarLint.

Qu’est-ce qu’un linter ?

Un linter est un utilitaire d’analyse de code. Ce type d’outil permet de déceler les éventuelles erreurs et problèmes syntaxiques. On parle de « linter son code » (en bon franglais !), ce qui consiste à lancer une analyse de code afin de le rendre plus maintenable, plus lisible et globalement plus qualitatif. Le linter ne procède pas aux corrections et modifications du code ; cela reste au développeur d’arbitrer sur la solution à mettre en œuvre.

Que fait SonarLint ?

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 disponible pour les IDE 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. Le syndrome de Cassandre dans le domaine de la qualité de code, cela vous parle ? Si oui, vous découvrirez avec plaisir un outil permettant d’en sortir

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.

Votre adresse e-mail ne sera pas publiée.