Industria: Sanidad

Productos de JetBrains utilizados: Qodana

Tamaño de la organización: 50

País: Estados Unidos

Zynex

Zynex Monitoring Solutions proporciona soluciones no invasivas para médicos y proveedores de cuidados postoperatorios a través de la creación, distribución y comercialización de productos de monitorización de la más alta calidad.

Consideramos que Qodana ayuda a todos nuestros desarrolladores a escribir el mejor código posible, independientemente de su experiencia. Qodana ayuda a nuestros desarrolladores júnior a escribir código de nivel sénior, y también permite a nuestros desarrolladores sénior mantener la calidad del código esperada. Dados los diversos tipos de inspecciones que ofrece, esperamos que Qodana pueda actuar como un instructor de desarrolladores, además de ayudar a mantener los estándares de calidad del código en nuestros productos.

— Daniel Larson, arquitecto de software, Zynex Monitoring Solutions

Cómo Zynex Monitoring Solutions utiliza Qodana para gestionar la calidad del código para sus aplicaciones .NET

¿Puedes contarnos un poco más sobre ti y sobre Zynex Monitoring Solutions?

Soy desarrollador de software desde hace unos 25 años, principalmente con servidores de Microsoft y .NET. Llevo unos 10 años desarrollando software con equipos en Azure y he cambiado de las implementaciones locales a la nube, centrándome principalmente en la escalabilidad y las implementaciones globales.

En Zynex Monitoring Solutions, desarrollamos dispositivos médicos que supervisan a los pacientes de forma no invasiva. Nuestro equipo de la nube está creando una plataforma de interoperabilidad que integrará nuestros dispositivos con los proveedores de asistencia sanitaria y los sistemas de salud.

La plataforma de interoperabilidad basada en la nube abre todo un nuevo abanico de posibilidades para nuestro software y las organizaciones de asistencia sanitaria. Podemos integrarnos con más clientes en comparación con los antiguos modelos de software empresarial en centros de datos privados, escalar sistemas con gran velocidad y ofrecer servicios personalizados rápidamente en función de las necesidades de nuestros clientes.

Para crear aplicaciones en Zynex, ¿qué tecnologías utilizan? ¿Todas las aplicaciones utilizan la misma arquitectura/tecnología?

Para los servicios en la nube de Zynex Monitoring Solutions, utilizamos .NET ejecutado en contenedores de Linux, escrito principalmente en C#. Utilizamos la última versión de producción de .NET, y la mayoría de nuestros servicios utilizan .NET 7. También estamos empezando a utilizar .NET 8.

El desarrollo se realiza con Visual Studio y ReSharper, y algunos desarrolladores utilizan el IDE de Rider. Ejecutamos la integración continua (CI) y la implementación principalmente mediante acciones de GitHub que se implementan en nuestra infraestructura en la nube.

Nuestra carga de trabajo de producción utiliza una pila de nube moderna que se ejecuta en Kubernetes y aloja nuestras aplicaciones y servicios, combinados con NoSQL para el almacenamiento de datos, con una combinación de mensajería nativa de la nube. Buscamos continuamente nuevas tecnologías en la nube para resolver nuestras necesidades, incluidas la ciencia de datos y la inteligencia artificial (IA).

¿Cómo conocieron Qodana? ¿Qué los motivó a probarlo?

A todo el equipo de desarrolladores les encanta JetBrains ReSharper, que les ayuda con sugerencias y refactorizaciones durante la codificación. Su análisis del código ayuda a detectar posibles incidencias de calidad. Así que cuando buscamos herramientas de análisis del código y vimos que JetBrains estaba creando una herramienta de análisis del código, supimos que sería algo que podría simplificar el análisis y mejorar la calidad de nuestro código, sin dejar de usar las herramientas que les gusta a nuestros desarrolladores.

Sabemos que el uso de las herramientas de JetBrains mejora nuestro trabajo sin añadir molestia alguna, y ese ha sido el caso con Qodana. Ahora utilizamos Qodana para todas nuestras aplicaciones .NET.

¿Cómo de fácil (o difícil) fue para ustedes empezar a ejecutar Qodana en sus aplicaciones?

Fue superfácil: la aplicación web Qodana Cloud hizo que fuera sencillo añadirla a nuestros flujos de trabajo de GitHub. Pudimos adoptar Qodana a medida que creábamos nuestros repositorios, y rápidamente pasamos a resolver todas las incidencias y a establecer una política de tolerancia cero para mantener nuestro código superlimpio.

Normalmente hacemos que Qodana verifique nuestra base de código en el flujo de trabajo de GitHub Actions y, a continuación, abordamos cualquier incidencia que detecte Qodana en ReSharper o JetBrains Rider. Actualmente no utilizamos la integración con los IDE de Qodana, que permite estudiar los informes de Qodana directamente en el IDE. La razón es que las inspecciones de Qodana coinciden con las inspecciones que están disponibles en ReSharper y JetBrains Rider, y podemos encontrar y solucionar rápidamente las incidencias de código allí.

¿Utilizan otras herramientas de calidad del código?

Utilizamos una combinación de Sonarqube y Qodana. Sonarqube es realmente genial para buscar vulnerabilidades conocidas y realiza un seguimiento de la complejidad del código. Para el análisis general del código utilizamos principalmente Qodana. Es muy fácil de añadir a nuestro flujo de trabajo de compilación, y nos garantiza que tenemos una alta calidad de código en todo nuestro equipo. A medida que Qodana añade más funcionalidades, esperamos simplificar nuestro conjunto de herramientas de análisis de código.

Tenemos una combinación de desarrolladores júnior, de nivel medio y sénior, y exigimos a todos nuestros desarrolladores los mismos estándares profesionales de codificación. Consideramos que Qodana ayuda a todos nuestros desarrolladores a escribir el mejor código posible, independientemente de su experiencia. Qodana ayuda a nuestros desarrolladores júnior a escribir código de nivel sénior, y también permite a nuestros desarrolladores sénior mantener la calidad del código esperada. Dados los diversos tipos de inspecciones que ofrece, esperamos que Qodana pueda actuar como un instructor de desarrolladores, además de ayudar a mantener los estándares de calidad del código en nuestros productos.

¿Podría compartir algún consejo con los equipos y desarrolladores que empiezan a adoptar Qodana?

Qodana se utiliza mejor desde el inicio con proyectos nuevos. Recomendamos utilizar las reglas de análisis del código más estrictas, integrarlas en GitHub y utilizar un umbral de error de «0» para que cualquier infracción bloquee la compilación y ofrezca al desarrollador la oportunidad de limpiar su código. También queremos hacer hincapié en la importancia de las anotaciones dentro del código utilizando JetBrains.Annotations, dado que le permitirá anotar las intenciones de su código a otros desarrolladores al escribir bibliotecas públicas, y a herramientas como ReSharper, JetBrains Rider y Qodana para proporcionar un análisis de código aún más relevante.

Pruebe Qodana de forma gratuita