Best Practices Code Review Collaboration IntelliJ IDEA TeamCity Tips & Tricks

Qodana et IntelliJ IDEA : Comment une plateforme de contrôle de la qualité du code a facilité la localisation d’un IDE

Read this post in other languages:

Vous êtes-vous déjà demandé comment faire pour que votre détermination de début d’année à mener une vie plus saine, à ne plus vous soucier de choses futiles ou à maintenir un bon équilibre entre votre vie professionnelle et votre vie personnelle, perdure au-delà de la Saint-Valentin ? Selon les psychologues, fractionner des objectifs ambitieux en plusieurs petites étapes est le meilleur moyen de parvenir à tenir ses bonnes résolutions.

Ce conseil vaut également pour les bonnes résolutions des programmeurs. Si vous planifiez un projet de grande envergure qui implique de refactoriser du code, il est souhaitable que vous ayez une bonne vue d’ensemble des changements à effectuer et que vous vous organisiez en conséquence. C’est exactement ce que l’équipe d’IntelliJ a fait lorsqu’elle s’est attelée au projet de localisation de l’interface utilisateur de l’IDE en chinois, japonais et coréen.

En faisant de Qodana, la plateforme de contrôle de la qualité du code de JetBrains, la source unique de vérité pour son processus de localisation, l’équipe d’IntelliJ a pu mener son projet à bien beaucoup plus rapidement que prévu. Ce succès est le résultat de la mise en œuvre d’une planification, d’une répartition des responsabilités et d’une supervision judicieuses. Voici comment ils ont procédé.

ESSAYER QODANA GRATUITEMENT

Le challenge : isoler 13 000 chaînes de caractères codées en dur et suivre la progression de manière efficace

Pour simplifier la localisation de l’interface utilisateur dans trois langues différentes, l’équipe IntelliJ a extrait tous les éléments localisables du code source et les a placés dans des fichiers de propriétés distincts en vue de leur traduction.

Avec plus de 13 000 chaînes de caractères, il y a avait un risque assez élevé d’oublier des chaînes localisables, qui seraient donc restées dans le code. La gestion des chaînes codées en dur peut s’avérer compliquée. Elles sont difficiles à trouver car elles n’apparaissent pas avant que le logiciel ait été localisé. Par conséquent, si un utilisateur installait un pack linguistique pour utiliser l’interface dans sa langue, il y avait un risque de certaines parties de l’interface soient toujours en anglais.

Le travail s’annonçait fastidieux et répétitif pour l’équipe, le responsable du projet de localisation a donc recherché une solution qui permettait :

  1. d’automatiser une grande partie du travail grâce à l’exécution d’une inspection de la base de code en continu pour détecter les littéraux de chaînes codées en dur.
  2. de répartir la responsabilité de la résolution des problèmes entre les développeurs.
  3. de superviser l’extraction des chaînes de caractères localisables.

La solution : une inspection du code automatisée pour détecter les chaînes de littéraux codées en dur

Le responsable du projet de localisation a choisi Qodana pour simplifier le processus d’inspection du code, ce qui a donné lieu à un projet comportant les étapes suivantes :

#1. Connexion de Qodana à TeamCity

L’équipe d’IntelliJ a connecté Qodana à son pipeline TeamCity et activé l’inspection de code Internationalization afin de mettre en évidence les littéraux de chaîne codés en dur qui n’avaient pas été placés dans des fichiers de propriétés.

#2. Configuration du profil d’inspection

Dans le profil d’inspection, l’équipe a configuré la portée de l’inspection pour s’assurer que la plateforme ignore les éléments tels que le code hérité, les littéraux sans caractères alphabétiques et les chaînes de caractères composées uniquement d’espaces blancs.

L’équipe a également veillé à ce que TeamCity génère un rapport de test pour chaque ligne vérifiée par Qodana et signale comme échec toute chaîne non extraite.

#3. Définition de la fréquence des inspections

Une fois configurée, Qodana a été paramétrée pour inspecter le code toutes les 4 heures. Il était particulièrement important que l’inspection s’exécute de manière indépendante sur le serveur, et non sur la machine locale d’une personne. Cela a permis à l’équipe de gagner un temps précieux.

La première exécution de Qodana a résulté en 10 000 tests échoués dans TeamCity.

Vue d’ensemble des tests ayant échoué.

 

Qodana signale le littéral de chaîne codé en dur restant dans le code comme une erreur dans l’environnement internationalisé.

#4. Assigner les tâches

Pour chacun des tests échoués, le chef de projet a chargé un développeur d’enquêter et d’extraire la chaîne codée en dur dans le fichier de propriétés.

 

Affichage du test assigné dans TeamCity.

#5. Contrôle des résultats

Après chaque inspection de Qodana, TeamCity comparait les résultats à ceux du rapport précédent. Si le développeur responsable de la résolution d’un problème avait extrait la chaîne, TeamCity marquait le test comme étant résolu. Le chef de projet pouvait ainsi suivre la progression sans avoir à marquer manuellement les tests comme résolus.

En outre, l’équipe a pu suivre la progression dans le tableau de bord de Qodana Cloud, qui mettait à jour temps réel les informations sur les problèmes de code restants et comparait les résultats entre les différentes exécutions de Qodana.

 

Exemple du tableau de bord de Qodana Cloud. 

Qodana a également permis d’ajouter les problèmes sélectionnés à la base de référence, autrement connue comme la section de la dette technique. Ainsi, toute l’équipe avait accès à la même liste de problèmes et pouvait suivre l’évolution de la situation directement dans la plateforme. Vous pouvez voir comment cela fonctionne dans l’exemple ci-dessous.

 

La fonctionnalité de base de référence de Qodana.

Principaux résultats obtenus

En quelques mois seulement, le nombre de tests échoués est passé de 10 000 à zéro, soit une moyenne d’environ 175 tests résolus par jour. L’équipe a réussi à supprimer tous les littéraux de chaîne codés en dur du code source et l’ensemble de l’interface utilisateur a été localisé de manière fluide, sans éléments indésirables en anglais.

Grâce à Qodana, l’équipe IntelliJ a pu réduire le nombre d’étapes manuelles dans le processus de localisation et donc limiter le risque d’erreur humaine et augmenter la fiabilité des builds localisés. De plus, grâce aux vérifications effectuées toutes les 4 heures, les problèmes ont pu être détectés et résolus plus tôt.

Enfin, Qodana est devenu la source unique de vérité pour le responsable de l’équipe, ce qui lui a permis de contrôler facilement que les développeurs aient bien résolu les problèmes qui leur avaient été assignés.

Suite à ces résultats positifs, l’équipe d’IntelliJ a décidé de continuer à utiliser Qodana comme plateforme de contrôle de la qualité du code et de planification des ressources pour la livraison de nouvelles fonctionnalités et l’amélioration des performances d’IntelliJ IDEA. Nous en reparlerons dans de prochains articles.

COMMENCER AVEC QODANA

Bon développement et veillez à maintenir votre code propre !

Article original en anglais de :

Delphine Massenhove

Valerie Kuzmina

image description

Discover more