Сфера деятельности: Здравоохранение

Используемые продукты JetBrains: Qodana

Число сотрудников: 50

Страна: США

Zynex

Компания Zynex Monitoring Solutions разрабатывает, производит и продает оборудование высочайшего качества для неинвазивного мониторинга, предназначенное для врачей и организаций послеоперационного ухода.

Мы видим, что Qodana помогает нашим разработчикам писать наилучший код, независимо от их опыта работы. С помощью Qodana даже начинающие программисты пишут код не хуже опытных, а опытным разработчикам проще поддерживать высокое качество кода. Qodana предлагает множество разных инспекций, и мы рассчитываем, что это решение может не только обеспечить соответствие кода нашим высоким требованиям, но и сыграть роль тренера для наших разработчиков.

— Дэниел Ларсон, архитектор ПО, Zynex Monitoring Solutions

Как Zynex Monitoring Solutions контролирует качество кода в .NET-приложениях при помощи Qodana

Привет, Дэниел! Расскажи немного о себе и о Zynex Monitoring Solutions.

Я занимаюсь разработкой почти 25 лет, в основном используя серверы Microsoft и .NET. Последние 10 лет я разрабатываю ПО с командами, работающими в Azure, и перешел от локальных развертываний к облачным. Особое внимание я уделяю масштабированию и возможностям глобального развертывания.

Zynex Monitoring Solutions разрабатывает оборудование для неинвазивного мониторинга состояния пациентов. Команда облачной разработки создает платформу взаимодействия для интеграции нашего оборудования с системами медицинских учреждений, обеспечивающих лечение и уход.

Облачная платформа открывает широкий спектр принципиально новых возможностей как для нашего ПО, так и для медицинских организаций. В отличие от старых версий корпоративного ПО, размещенных в частных дата-центрах, наши продукты можно интегрировать с гораздо большим числом клиентов. Их также можно быстро настроить и масштабировать под потребности каждого заказчика.

Какие технологии используются в Zynex для создания приложений? Все приложения используют одну и ту же архитектуру и стек технологий?

Для облачных сервисов Zynex Monitoring Solutions мы запускаем .NET в контейнерах Linux, а приложения в основном написаны на C#. Мы используем самую свежую официальную версию .NET — в большинстве сервисов это .NET 7. Сейчас мы переходим на .NET 8.

Разработка идет в Visual Studio с использованием ReSharper, а некоторые разработчики пишут код в IDE Rider. У нас настроен пайплайн непрерывной интеграции (CI) и развертывания. Для развертывания в облачную инфраструктуру в основном используются GitHub Actions.

Для производственной среды используется стек современных облачных технологий в Kubernetes: там размещаются наши приложения и сервисы. Для хранения данных мы используем NoSQL, а для обмена информацией — набор облачных решений. Мы постоянно изучаем новые облачные технологии, которые можно было бы использовать в работе, в том числе решения для Data Science и возможности искусственного интеллекта (ИИ).

Как вы узнали о Qodana и почему решили попробовать это решение?

Вся наша команда разработчиков очень любит JetBrains ReSharper: во время работы над кодом оно очень помогает с автодополнением и рефакторингом, а анализ кода позволяет найти возможные ошибки и проблемы. Поэтому, когда мы начали искать инструмент для анализа кода и узнали, что JetBrains как раз его разрабатывает, то были уверены, что он наверняка будет очень удобен и позволит упростить анализ и повысить качество кода.

Мы уже знали, что с инструментами JetBrains работать становится проще, и Qodana не обманул наших ожиданий. Теперь мы используем Qodana со всеми приложениями .NET.

Насколько легко (или сложно) было начать использовать Qodana для ваших приложений?

Очень легко. Веб-приложение Qodana Cloud мы быстро встроили в рабочие процессы GitHub. По мере создания репозиториев мы внедряли туда Qodana и быстро привыкли устранять все проблемы, чтобы код был абсолютно чистым и там не было никаких ошибок.

Обычно Qodana проверяет кодовую базу в рамках рабочего процесса GitHub Actions, а потом мы устраняем обнаруженные Qodana проблемы в ReSharper или в JetBrains Rider. Сейчас мы не используем интеграцию Qodana с IDE, которая позволяет просматривать прямо в IDE отчеты об ошибках. Дело в том, что инспекции Qodana аналогичны инспекциям в ReSharper и JetBrains Rider, так что мы можем легко найти и устранить в IDE все ошибки.

Используете ли вы другие инструменты для контроля качества кода?

Мы используем сочетание Sonarqube и Qodana. Sonarqube очень хорошо отслеживает известные уязвимости и проверяет уровень сложности кода. Но при общем сканировании кода мы в основном полагаемся на Qodana. Этот инструмент легко встроить в процесс сборки, и он гарантирует высокое качество кода у всех участников команды. Надеемся, что в Qodana появятся новые функции и мы сможем сократить наш набор инструментов.

В нашей команде есть разработчики самого разного уровня, но ко всем предъявляются единые требования с точки зрения качества кода. Мы видим, что Qodana помогает нашим разработчикам писать наилучший код, независимо от их опыта работы. С помощью Qodana даже начинающие программисты пишут код не хуже опытных, а опытным разработчикам проще поддерживать высокое качество кода. Qodana предлагает множество разных инспекций, и мы рассчитываем, что это решение может не только обеспечить соответствие кода нашим высоким требованиям, но и сыграть роль тренера для наших разработчиков.

Можете дать командам и разработчикам, которые только начинают работать с Qodana, какой-нибудь совет?

Qodana лучше всего использовать с самого начала на новых проектах. Рекомендуем настроить самые строгие правила анализа кода, встроить инструмент в GitHub и установить нулевой порог ошибки: тогда любые несоответствия будут блокировать сборку, чтобы разработчик мог поправить код. Кроме того, подчеркну, что важно добавлять к коду аннотации с помощью JetBrains.Annotations. Это позволит объяснить назначение кода, во-первых, другим разработчикам, когда вы пишете общедоступные библиотеки, а во-вторых, таким инструментам, как ReSharper, JetBrains Rider и Qodana, чтобы анализ кода был максимально точным.

Попробовать Qodana бесплатно