Qodana
The code quality platform for teams
Comment Zynex Monitoring Solutions utilise Qodana pour gérer la qualité du code de ses Applications .NET – Étude de cas
Qodana est une plateforme qui intègre toutes les inspections des IDE de JetBrains dans le pipeline de CI/CD pour améliorer la gestion de la qualité du code.
Aujourd’hui, nous allons vous parler de l’équipe cloud de Zynex Monitoring Solutions, qui a récemment adopté Qodana afin de superviser la qualité et la sécurité de sa plateforme de surveillance de l’état de santé des patients.
Nous avons échangé avec à Daniel Larson, l’architecte logiciel de la plateforme cloud de Zynex Monitoring Solutions.
Bonjour Daniel ! Pouvez-vous nous parler de vous et de Zynex Monitoring Solutions ?
Je suis développeur logiciel depuis près de 25 ans, principalement sur des serveurs Microsoft et .NET. Mon équipe et moi développons des logiciels sur Azure depuis bientôt 10 ans, et sommes passés du déploiement sur site au cloud, avec comme priorités l’évolutivité et le déploiement global.
Chez Zynex Monitoring Solutions, nous développons des dispositifs médicaux pour la surveillance non invasive des patients. Notre équipe cloud travaille à la création d’une plateforme d’interopérabilité avec pour objectif d’intégrer nos dispositifs avec ceux des prestataires de soins et systèmes de santé.
Cette plateforme d’interopérabilité basée sur le cloud ouvre beaucoup de nouvelles possibilités, tant pour les éditeurs de logiciels que pour les établissements de santé. Par rapport aux anciens modèles de logiciels d’entreprise dans les centres de données privés, nous pouvons intégrer davantage de clients, faire évoluer les systèmes plus rapidement et fournir des services personnalisés en fonction des besoins de nos clients.
Quelles technologies utilisez-vous pour créer des applications chez Zynex ? Et toutes vos applications utilisent-elles la même architecture/technologie ?
Pour les services cloud de Zynex Monitoring Solutions, nous utilisons .NET dans des conteneurs Linux, la plupart écrits en C#. Nous travaillons avec la dernière version de production de .NET et la plupart de nos services utilisent .NET 7. Nous commençons aussi à utiliser .NET 8.
Pour le développement, nous utilisons principalement Visual Studio avec ReSharper. Certains développeurs utilisent l’IDE Rider. Nous effectuons l’intégration continue (CI) et le déploiement principalement avec GitHub Actions en déployant sur notre infrastructure cloud.
Pour notre travail de production, nous nous appuyons sur une pile cloud moderne exécutée sur Kubernetes qui héberge nos applications et nos services, sur NoSQL pour le stockage des données et sur une combinaison entre messagerie cloud/native. Nous recherchons constamment de nouvelles technologies cloud capables de répondre à nos besoins, notamment en matière de science des données et d’intelligence artificielle.
Comment avez-vous découvert Qodana ? Qu’est-ce qui vous a incités à l’essayer ?
Toute notre équipe de développeurs est fan de JetBrains ReSharper, en particulier des suggestions et des refactorisations pendant le codage. Ses capacités d’analyse du code aident à détecter les problèmes de qualité du code. Lorsque nous avons su que JetBrains proposait un outil dédié à la qualité du code, nous avons tout de suite compris que cela nous permettrait de simplifier le processus d’analyse de notre code et d’en améliorer la qualité, tout en continuant d’utiliser les outils appréciés par nos développeurs.
Nous savions que l’utilisation d’outils JetBrains pouvait nous aider à améliorer notre travail sans complications, et cela s’est vérifié avec l’adoption de Qodana. Aujourd’hui, nous utilisons Qodana pour toutes nos applications .NET.
Comment s’est passée l’adoption de Qodana, avez-vous pu facilement commencer à l’utiliser pour vos applications ?
Nous n’avons rencontré aucunes difficultés, l’application web Qodana Cloud nous a permis d’ajouter des éléments à nos workflows GitHub très simplement. Nous avons pu adopter Qodana progressivement, au fur et à mesure de la création de nos référentiels de code, avant de commencer à l’utiliser systématiquement pour résoudre tous nos problèmes de code et à appliquer une politique de tolérance zéro afin d’obtenir un code totalement propre.
Le plus souvent, nous utilisons Qodana pour vérifier notre base de code dans le workflow GitHub Actions, puis nous traitons les problèmes détectés par Qodana dans ReSharper ou dans JetBrains Rider. Nous n’utilisons pas l’intégration de Qodana, qui permet d’examiner les rapports fournis par Qodana directement dans l’IDE, car les inspections de Qodana correspondent à celles qui sont fournies par ReSharper et par JetBrains Rider, dans lesquels nous pouvons rapidement trouver et résoudre les problèmes de code.
Utilisez-vous d’autres outils pour la qualité du code ?
Nous utilisons Sonarqube et Qodana. Sonarqube est très efficace pour rechercher les vulnérabilités connues et effectuer un suivi de la complexité du code. Mais pour l’analyse globale du code, nous utilisons principalement Qodana. Il est très facile de l’ajouter au workflow de build, ce qui garantit une qualité du code optimale et homogène pour toute l’équipe. Nous espérons pouvoir simplifier notre ensemble d’outils d’analyse du code à mesure que Qodana s’enrichira de nouvelles fonctionnalités.
Bien que notre équipe se compose de développeurs de différents niveaux d’expérience, nous attendons de tous qu’ils appliquent les mêmes normes de codage. Nous pensons que Qodana peut aider tous nos développeurs à améliorer la qualité du code qu’ils produisent. Qodana permet aux développeurs juniors d’écrire du code de niveau senior et aux développeurs seniors de maintenir la qualité de leur code. Avec ses différents types d’inspections, Qodana peut jouer un rôle de coach pour nos développeurs, en plus de nous aider à maintenir les normes de qualité du code que nous nous sommes fixées pour nos produits.
Quels conseils donneriez-vous aux équipes et aux développeurs qui viennent d’adopter Qodana ?
Il est préférable d’utiliser Qodana dès le début pour les nouveaux projets. Nous recommandons aussi d’utiliser les règles d’analyse du code les plus strictes, en les intégrant à GitHub, et de mettre en place un seuil de tolérance « 0 » afin d’amener les développeurs à nettoyer leur code plus assidûment.
Nous tenons également à souligner l’importance des annotations de code avec JetBrains.Annotations, qui sont particulièrement utiles pour les autres développeurs dans le cadre de l’écriture de bibliothèques publiques, et qui permettent à des outils comme ReSharper, JetBrains Rider et Qodana de fournir une analyse du code encore plus pertinente.
Vous voulez tester Qodana pour votre projet, avec votre outil de CI préféré ? Essayez Qodana gratuitement !
Auteur de l’article original en anglais :