{"id":410001,"date":"2023-11-28T14:13:01","date_gmt":"2023-11-28T13:13:01","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=qodana&#038;p=410001"},"modified":"2023-11-28T14:13:05","modified_gmt":"2023-11-28T13:13:05","slug":"comment-zynex-monitoring-solutions-utilise-qodana-pour-gerer-la-qualite-du-code-de-ses-applications-net-etude-de-cas","status":"publish","type":"qodana","link":"https:\/\/blog.jetbrains.com\/fr\/qodana\/2023\/11\/comment-zynex-monitoring-solutions-utilise-qodana-pour-gerer-la-qualite-du-code-de-ses-applications-net-etude-de-cas\/","title":{"rendered":"Comment Zynex Monitoring Solutions utilise Qodana pour g\u00e9rer la qualit\u00e9 du code de ses Applications .NET &#8211; \u00c9tude de cas"},"content":{"rendered":"<p><a href=\"https:\/\/www.jetbrains.com\/fr-fr\/qodana\/\" target=\"_blank\" rel=\"noopener\">Qodana<\/a> est une plateforme qui int\u00e8gre toutes les inspections des IDE de JetBrains dans le pipeline de CI\/CD pour am\u00e9liorer la gestion de la qualit\u00e9 du code.<\/p>\n<p><a href=\"https:\/\/www.zynexmonitoring.com\/\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/09\/zynex-logo.png\" alt=\"Zynex Monitoring Solutions\" align=\"right\" hspace=\"20\" \/><\/a>Aujourd&#8217;hui, nous allons vous parler de l&#8217;\u00e9quipe cloud de <a href=\"https:\/\/www.zynexmonitoring.com\/\" target=\"_blank\" rel=\"noopener\">Zynex Monitoring Solutions<\/a>, qui a r\u00e9cemment adopt\u00e9 Qodana afin de superviser la qualit\u00e9 et la s\u00e9curit\u00e9 de sa plateforme de surveillance de l&#8217;\u00e9tat de sant\u00e9 des patients.<\/p>\n<p>Nous avons \u00e9chang\u00e9 avec \u00e0 Daniel Larson, l&#8217;architecte logiciel de la plateforme cloud de Zynex Monitoring Solutions.<\/p>\n<p><!--more--><\/p>\n<p><strong>Bonjour Daniel\u00a0! Pouvez-vous nous parler de vous et de Zynex Monitoring Solutions\u00a0?<\/strong><\/p>\n<p>Je suis d\u00e9veloppeur logiciel depuis pr\u00e8s de 25 ans, principalement sur des serveurs Microsoft et .NET. Mon \u00e9quipe et moi d\u00e9veloppons des logiciels sur Azure depuis bient\u00f4t 10 ans, et sommes pass\u00e9s du d\u00e9ploiement sur site au cloud, avec comme priorit\u00e9s l&#8217;\u00e9volutivit\u00e9 et le d\u00e9ploiement global.\u00a0<\/p>\n<p>Chez Zynex Monitoring Solutions, nous d\u00e9veloppons des dispositifs m\u00e9dicaux pour la surveillance non invasive des patients. Notre \u00e9quipe cloud travaille \u00e0 la cr\u00e9ation d&#8217;une plateforme d&#8217;interop\u00e9rabilit\u00e9 avec pour objectif d&#8217;int\u00e9grer nos dispositifs avec ceux des prestataires de soins et syst\u00e8mes de sant\u00e9.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-390182\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/09\/zynex-monitoring-solution.png\" alt=\"Zynex Monitoring Solutions - Session de surveillance\" width=\"1920\" height=\"1576\" \/><\/figure>\n<p>Cette plateforme d&#8217;interop\u00e9rabilit\u00e9 bas\u00e9e sur le cloud ouvre beaucoup de nouvelles possibilit\u00e9s, tant pour les \u00e9diteurs de logiciels que pour les \u00e9tablissements de sant\u00e9. Par rapport aux anciens mod\u00e8les de logiciels d&#8217;entreprise dans les centres de donn\u00e9es priv\u00e9s, nous pouvons int\u00e9grer davantage de clients, faire \u00e9voluer les syst\u00e8mes plus rapidement et fournir des services personnalis\u00e9s en fonction des besoins de nos clients.\u00a0<\/p>\n<p><strong>Quelles technologies utilisez-vous pour cr\u00e9er des applications chez Zynex\u00a0? Et toutes vos applications utilisent-elles la m\u00eame architecture\/technologie\u00a0?<\/strong><\/p>\n<p>Pour les services cloud de Zynex Monitoring Solutions, nous utilisons .NET dans des conteneurs Linux, la plupart \u00e9crits en C#. Nous travaillons avec la derni\u00e8re version de production de .NET et la plupart de nos services utilisent .NET 7. Nous commen\u00e7ons aussi \u00e0 utiliser .NET 8.<\/p>\n<p>Pour le d\u00e9veloppement, nous utilisons principalement Visual Studio avec <a href=\"https:\/\/www.jetbrains.com\/fr-fr\/resharper\/\" target=\"_blank\" rel=\"noopener\">ReSharper<\/a>. Certains d\u00e9veloppeurs utilisent l&#8217;IDE <a href=\"https:\/\/www.jetbrains.com\/fr-fr\/rider\/\" target=\"_blank\" rel=\"noopener\">Rider<\/a>. Nous effectuons l&#8217;int\u00e9gration continue (CI) et le d\u00e9ploiement principalement avec GitHub Actions en d\u00e9ployant sur notre infrastructure cloud.\u00a0<\/p>\n<p>Pour notre travail de production, nous nous appuyons sur une pile cloud moderne ex\u00e9cut\u00e9e sur Kubernetes qui h\u00e9berge nos applications et nos services, sur NoSQL pour le stockage des donn\u00e9es et sur une combinaison entre messagerie cloud\/native. Nous recherchons constamment de nouvelles technologies cloud capables de r\u00e9pondre \u00e0 nos besoins, notamment en mati\u00e8re de science des donn\u00e9es et d&#8217;intelligence artificielle.\u00a0<\/p>\n<p><strong>Comment avez-vous d\u00e9couvert Qodana ? Qu&#8217;est-ce qui vous a incit\u00e9s \u00e0 l&#8217;essayer ?<\/strong><\/p>\n<p>Toute notre \u00e9quipe de d\u00e9veloppeurs est fan de JetBrains ReSharper, en particulier des suggestions et des refactorisations pendant le codage. Ses capacit\u00e9s d&#8217;analyse du code aident \u00e0 d\u00e9tecter les probl\u00e8mes de qualit\u00e9 du code. Lorsque nous avons su que JetBrains proposait un outil d\u00e9di\u00e9 \u00e0 la qualit\u00e9 du code, nous avons tout de suite compris que cela nous permettrait de simplifier le processus d&#8217;analyse de notre code et d&#8217;en am\u00e9liorer la qualit\u00e9, tout en continuant d&#8217;utiliser les outils appr\u00e9ci\u00e9s par nos d\u00e9veloppeurs.\u00a0<\/p>\n<p>Nous savions que l&#8217;utilisation d&#8217;outils JetBrains pouvait nous aider \u00e0 am\u00e9liorer notre travail sans complications, et cela s&#8217;est v\u00e9rifi\u00e9 avec l&#8217;adoption de Qodana. Aujourd&#8217;hui, nous utilisons Qodana pour toutes nos applications .NET.<\/p>\n<p><strong>Comment s&#8217;est pass\u00e9e l&#8217;adoption de Qodana, avez-vous pu facilement commencer \u00e0 l&#8217;utiliser pour vos applications ?<\/strong><\/p>\n<p>Nous n&#8217;avons rencontr\u00e9 aucunes difficult\u00e9s, l&#8217;application web Qodana Cloud nous a permis d&#8217;ajouter des \u00e9l\u00e9ments \u00e0 nos workflows GitHub tr\u00e8s simplement. Nous avons pu adopter Qodana progressivement, au fur et \u00e0 mesure de la cr\u00e9ation de nos r\u00e9f\u00e9rentiels de code, avant de commencer \u00e0 l&#8217;utiliser syst\u00e9matiquement pour r\u00e9soudre tous nos probl\u00e8mes de code et \u00e0 appliquer une politique de tol\u00e9rance z\u00e9ro afin d&#8217;obtenir un code totalement propre.\u00a0<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-390193\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/09\/zynex-qodana.png\" alt=\"Rapport Qodana pour Zynex Solutions\" width=\"1729\" height=\"1475\" \/><\/figure>\n<p>Le plus souvent, nous utilisons Qodana pour v\u00e9rifier notre base de code dans le workflow GitHub Actions, puis nous traitons les probl\u00e8mes d\u00e9tect\u00e9s par Qodana dans ReSharper ou dans JetBrains Rider. Nous n&#8217;utilisons pas l&#8217;<a href=\"https:\/\/www.jetbrains.com\/help\/qodana\/qodana-ide-plugin.html\" target=\"_blank\" rel=\"noopener\">int\u00e9gration de Qodana<\/a>, qui permet d&#8217;examiner les rapports fournis par Qodana directement dans l&#8217;IDE, car les inspections de Qodana correspondent \u00e0 celles qui sont fournies par ReSharper et par JetBrains Rider, dans lesquels nous pouvons rapidement trouver et r\u00e9soudre les probl\u00e8mes de code.<\/p>\n<p><strong>Utilisez-vous d&#8217;autres outils pour la qualit\u00e9 du code\u00a0?<\/strong><\/p>\n<p>Nous utilisons Sonarqube et Qodana. Sonarqube est tr\u00e8s efficace pour rechercher les vuln\u00e9rabilit\u00e9s connues et effectuer un suivi de la complexit\u00e9 du code. Mais pour l&#8217;analyse globale du code, nous utilisons principalement Qodana. Il est tr\u00e8s facile de l&#8217;ajouter au workflow de build, ce qui garantit une qualit\u00e9 du code optimale et homog\u00e8ne pour toute l&#8217;\u00e9quipe. Nous esp\u00e9rons pouvoir simplifier notre ensemble d&#8217;outils d&#8217;analyse du code \u00e0 mesure que Qodana s&#8217;enrichira de nouvelles fonctionnalit\u00e9s.<\/p>\n<p>Bien que notre \u00e9quipe se compose de d\u00e9veloppeurs de diff\u00e9rents niveaux d&#8217;exp\u00e9rience, nous attendons de tous qu&#8217;ils appliquent les m\u00eames normes de codage. Nous pensons que Qodana peut aider tous nos d\u00e9veloppeurs \u00e0 am\u00e9liorer la qualit\u00e9 du code qu&#8217;ils produisent. Qodana permet aux d\u00e9veloppeurs juniors d&#8217;\u00e9crire du code de niveau senior et aux d\u00e9veloppeurs seniors de maintenir la qualit\u00e9 de leur code. Avec ses diff\u00e9rents types d&#8217;inspections, Qodana peut jouer un r\u00f4le de coach pour nos d\u00e9veloppeurs, en plus de nous aider \u00e0 maintenir les normes de qualit\u00e9 du code que nous nous sommes fix\u00e9es pour nos produits.<\/p>\n<p><strong>Quels conseils donneriez-vous aux \u00e9quipes et aux d\u00e9veloppeurs qui viennent d&#8217;adopter Qodana\u00a0?<\/strong><\/p>\n<p>Il est pr\u00e9f\u00e9rable d&#8217;utiliser Qodana d\u00e8s le d\u00e9but pour les nouveaux projets. Nous recommandons aussi d&#8217;utiliser les r\u00e8gles d&#8217;analyse du code les plus strictes, en les int\u00e9grant \u00e0 GitHub, et de mettre en place un seuil de tol\u00e9rance \u00ab 0 \u00bb afin d&#8217;amener les d\u00e9veloppeurs \u00e0 nettoyer leur code plus assid\u00fbment.<br \/>Nous tenons \u00e9galement \u00e0 souligner l&#8217;importance des annotations de code avec <a href=\"https:\/\/www.nuget.org\/packages\/JetBrains.Annotations\" target=\"_blank\" rel=\"noopener\">JetBrains.Annotations<\/a>, qui sont particuli\u00e8rement utiles pour les autres d\u00e9veloppeurs dans le cadre de l&#8217;\u00e9criture de biblioth\u00e8ques publiques, et qui permettent \u00e0 des outils comme ReSharper, JetBrains Rider et Qodana de fournir une analyse du code encore plus pertinente.<\/p>\n<p><em>Vous voulez tester Qodana pour votre projet, avec votre outil de CI pr\u00e9f\u00e9r\u00e9 ? <a href=\"https:\/\/qodana.cloud\/onboarding?licensePlan=TRIAL_ULTIMATE_PLUS\" target=\"_blank\" rel=\"noopener\">Essayez Qodana gratuitement\u00a0!<\/a><\/em><\/p>\n\n\n<p><em>Auteur de l&#8217;article original en anglais<\/em> :<\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":813,"featured_media":390205,"comment_status":"closed","ping_status":"closed","template":"","categories":[1401],"tags":[1433,228,164,6359,2615],"cross-post-tag":[6630],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/qodana\/410001"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/qodana"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/qodana"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=410001"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/qodana\/410001\/revisions"}],"predecessor-version":[{"id":410164,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/qodana\/410001\/revisions\/410164"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/390205"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=410001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=410001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=410001"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=410001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}