Industrie: Gesundheitswesen

Verwendete JetBrains-Produkte: Qodana

Organisationsgröße: 50

Land: Vereinigte Staaten

Zynex

Zynex Monitoring Solutions stellt durch Entwicklung, Vertrieb und Marketing von Überwachungsprodukten von höchster Qualität nichtinvasive Lösungen für Ärzt*innen und postoperative Pflegedienste bereit.

Unser Eindruck ist, dass Qodana alle unsere Entwickler*innen unabhängig von ihrer Erfahrung dabei unterstützt, den bestmöglichen Code zu schreiben. Qodana hilft unseren Junior-Entwickler*innen, Code auf Senior-Niveau zu schreiben, und es hilft unseren Senior-Entwickler*innen, ihre erwartete Codequalität beizubehalten. Angesichts der Vielfalt der verfügbaren Inspektionen hoffen wir, dass Qodana uns nicht nur bei der Sicherstellung der Codequalität in unseren Produkten helfen wird, sondern auch als Coach für unsere Entwickler*innen fungieren kann.

— Daniel Larson, Softwarearchitekt, Zynex Monitoring Solutions

So sichert Zynex Monitoring Solutions mit Qodana die Codequalität von .NET-Anwendungen

Hallo Daniel! Können Sie uns ein wenig über sich und Zynex Monitoring Solutions erzählen?

Ich bin seit etwa 25 Jahren Softwareentwickler und arbeite hauptsächlich mit Microsoft-Servern und .NET. Ich entwickle seit etwa 10 Jahren Software mit Teams auf Azure, und wir haben uns von On-Premises-Deployments auf die Cloud verlagert, wobei der Schwerpunkt auf Skalierbarkeit und globalen Deployments liegt.

Bei Zynex Monitoring Solutions entwickeln wir medizinische Geräte für eine nichtinvasive Patientenüberwachung. Unser Cloud-Team arbeitet an einer Interoperabilitätsplattform zur Integration unserer Geräte in die Systeme von Pflegeanbietern und Gesundheitsversorgern.

Die Cloud-First-Interoperabilitätsplattform eröffnet unseren Organisationen im Bereich Software und Gesundheitswesen ganz neue Möglichkeiten. Im Vergleich zu den alten Modellen mit Enterprise-Software in privaten Rechenzentren können wir mehr Kunden versorgen, Systeme schnell skalieren und problemlos individuelle Services bereitstellen, die auf die Bedürfnisse unserer Kunden ausgerichtet sind.

Welche Technologien verwendet Zynex für die Erstellung von Anwendungen? Kommt bei allen Anwendungen die gleiche Architektur/Technologie zum Einsatz?

Für die Cloud-Services von Zynex Monitoring Solutions verwenden wir .NET in Linux-Containern, wobei der Code hauptsächlich in C# geschrieben ist. Wir setzen auf die neueste Produktionsversion von .NET, wobei die meisten unserer Services .NET 7 verwenden. Wir haben auch begonnen, .NET 8 einzusetzen.

Die Entwicklung erfolgt mit Visual Studio und ReSharper, wobei einige Entwickler*innen Rider als IDE verwenden. Wir nutzen für Continuous Integration (CI) und Deployment in erster Linie GitHub Actions, wobei die Bereitstellung in unserer Cloud-Infrastruktur erfolgt.

Unser Produktionsworkload verwendet einen modernen Cloud-Stack auf Kubernetes-Basis, der unsere Anwendungen und Dienste hostet, kombiniert mit NoSQL für die Datenspeicherung und einem Mix aus Cloud-nativem Messaging. Wir sind ständig auf der Suche nach neuen Cloud-Technologien, um unsere Anforderungen zu erfüllen, darunter Data Science und künstliche Intelligenz (KI).

Wie haben Sie von Qodana erfahren? Was hat Sie dazu gebracht, es auszuprobieren?

Alle Mitglieder des Entwicklungsteams sind Fans von JetBrains ReSharper, das die Programmierung durch Vorschläge und Refactorings unterstützt und durch Codeanalysen zur Erkennung potenzieller Codequalitätsprobleme beiträgt. Daher wussten wir sofort, als wir uns nach Codeanalyse-Tools umschauten und erfuhren, dass JetBrains ein solches Tool entwickelte, dass wir damit die Codeanalyse vereinfachen und unsere Codequalität verbessern könnten, während wir gleichzeitig in den Genuss eines Tools kommen würden, das unsere Entwickler*innen gerne verwenden.

Wir wissen, dass der Einsatz von JetBrains-Tools unsere Arbeit ohne zusätzlichen Aufwand verbessert, und das hat sich auch bei Qodana bestätigt. Wir verwenden Qodana jetzt für alle unsere .NET-Anwendungen.

Wie leicht (oder schwer) war es für Sie, Qodana für Ihre Anwendungen einzurichten?

Es war absolut unkompliziert; mit der Web-App von Qodana Cloud war es ganz einfach, unsere GitHub-Workflows zu ergänzen. Wir konnten Qodana bei der Erstellung unserer Repositories einführen und sind schnell dazu übergegangen, alle Probleme zu beheben und eine Null-Toleranz-Strategie zu verfolgen, um unseren Code absolut sauber zu halten.

In der Regel lassen wir unseren Code von Qodana im Rahmen des GitHub-Actions-Workflows überprüfen und kümmern uns dann in ReSharper oder JetBrains Rider um alle von Qodana entdeckten Probleme. Wir verwenden derzeit nicht die IDE-Integration von Qodana, die Qodana-Berichte direkt in der IDE bereitstellt. Der Grund dafür ist, dass die Qodana-Inspektionen mit den Inspektionen übereinstimmen, die in ReSharper und JetBrains Rider verfügbar sind, und wir dort Codeprobleme schnell finden und beheben können.

Verwenden Sie andere Codequalitätstools?

Wir verwenden eine Kombination aus Sonarqube und Qodana. Sonarqube eignet sich hervorragend zum Scannen nach bekannten Schwachstellen und hat ein Auge auf die Komplexität des Codes. Für allgemeine Codescans verlassen wir uns hauptsächlich auf Qodana. Es lässt sich wirklich einfach in unseren Build-Workflow integrieren und sorgt dafür, dass wir im gesamten Team eine hohe Codequalität beibehalten. Im Zuge des Ausbaus der Qodana-Funktionen hoffen wir, unser Codeanalyse-Toolset weiter vereinfachen zu können.

Wir haben eine Mischung aus Junior-, Medium-Level- und Senior-Entwickler*innen, und für sie alle gelten die gleichen professionellen Programmierstandards. Unser Eindruck ist, dass Qodana alle unsere Entwickler*innen unabhängig von ihrer Erfahrung dabei unterstützt, den bestmöglichen Code zu schreiben. Qodana hilft unseren Junior-Entwickler*innen, Code auf Senior-Niveau zu schreiben, und es hilft unseren Senior-Entwickler*innen, ihre erwartete Codequalität beizubehalten. Angesichts der Vielfalt der verfügbaren Inspektionen hoffen wir, dass Qodana uns nicht nur bei der Sicherstellung der Codequalität in unseren Produkten helfen wird, sondern auch als Coach für unsere Entwickler*innen fungieren kann.

Welche Ratschläge können Sie Teams und Entwickler*innen geben, die gerade dabei sind, Qodana einzuführen?

Qodana wird optimalerweise von Anfang an bei neuen Projekten eingesetzt. Wir empfehlen, die strengsten Codeanalyse-Regeln zu verwenden, eine Integration in GitHub vorzunehmen und eine Fail-Schwelle von 0 einzustellen, damit bei jedem Verstoß der Build blockiert wird und Entwickler*innen die Gelegenheit erhalten, ihren Code zu bereinigen. Wir möchten auch die Bedeutung von Code-Annotationen mit JetBrains.Annotations betonen, da Sie damit die Intention Ihres Codes verdeutlichen können, einerseits anderen Entwickler*innen gegenüber – beim Schreiben von öffentlichen Bibliotheken – und andererseits für Tools wie ReSharper, JetBrains Rider und Qodana, die dadurch eine noch relevantere Codeanalyse bereitstellen können.

Qodana kostenlos ausprobieren