行业: 医疗保健

使用的 JetBrains 产品: Qodana

组织规模: 50

国家/地区: 美国

Zynex

Zynex Monitoring Solutions 通过优质监测产品的创建、分销和营销,为医生和术后护理提供者提供非侵入式解决方案。

我们认为 Qodana 可以帮助我们的所有开发者写出更好的代码,无论他们有多少经验。Qodana 帮助我们的初级开发者编写高级代码,也帮助我们的高级开发者保证预期代码质量。考虑到它提供的各类检查,我们希望 Qodana 除了帮助维护产品中的代码质量标准之外,还可以充当开发者的教练。

— Daniel Larson,Zynex Monitoring Solutions 的软件架构师

Zynex Monitoring Solutions 如何使用 Qodana 为其 .NET 应用程序管理代码质量

能请您介绍一下您自己和 Zynex Monitoring Solutions 吗?

我已经做了大约 25 年的软件开发者,主要使用 Microsoft 服务器和 .NET。 我和团队在 Azure 上开发软件有将近 10 年了,并且已经从本地部署转向云,主要关注可扩缩性和全局部署。

在 Zynex Monitoring Solutions,我们正在开发非侵入式患者监测医疗器械。我们的云团队正在构建一个互操作平台,将我们的设备与护理提供方和医疗系统集成。

云优先互操作平台为我们的软件和医疗组织带来了全新可能。与私有数据中心的旧企业软件模型相比,我们可以与更多客户集成,快速扩缩系统,并根据客户需求快速提供定制服务。

在 Zynex 构建应用程序时,你们使用哪些技术?所有应用程序都使用相同的架构/技术吗?

对于 Zynex Monitoring Solutions 云服务,我们使用在 Linux 容器上运行的 .NET,主要使用 C# 编写。我们使用最新的生产版 .NET,我们的大多数服务都使用 .NET 7。我们也已经开始使用 .NET 8。

开发使用 Visual Studio 和 ReSharper 完成,一些开发者使用 Rider IDE。我们主要使用 GitHub Actions 部署到我们的云基础架构来运行持续集成 (CI) 和部署。

我们的生产工作使用在 Kubernetes 上运行的现代云堆栈来承载我们的应用程序和服务,结合 NoSQL 用于数据存储,并混合了云原生消息传递。我们一直在寻找新的云技术来满足我们的需求,包括数据科学和人工智能 (AI)。

你们是如何了解到 Qodana 的?又是什么让你们决定尝试?

开发团队成员都是 JetBrains ReSharper 的粉丝,它可以在编码时提供建议和重构。它的代码分析有助于检测潜在代码质量问题。因此,当我们寻找代码分析工具并发现 JetBrains 正在开发代码分析工具时,我们知道它可以简化代码分析并提高代码质量,同时使用我们的开发者喜欢的工具。

我们知道,使用 JetBrains 工具可以让我们的工作变得更好,而不会增加任何麻烦,Qodana 也证明了这一点。现在,我们的所有 .NET 应用程序都使用 Qodana。

对你们来说开始在应用程序上运行 Qodana 有多容易(或困难)?

非常简单,Qodana Cloud Web 应用让它很容易添加到我们的 GitHub 工作流。我们能够在创建仓库时采用 Qodana,并快速转向解决所有问题和设置零容忍政策,这使我们的代码超级干净。

我们通常让 Qodana 在 GitHub Actions 工作流中验证我们的代码库,然后解决 Qodana 在 ReSharper 或 JetBrains Rider 中发现的问题。我们目前没有使用 Qodana IDE 集成,这项集成支持直接在 IDE 中研究 Qodana 报告。原因是 Qodana 检查与 ReSharper 和 JetBrains Rider 中提供的检查相匹配,我们可以在那里快速找到并修正代码问题。

你们使用其他代码质量工具吗?

我们混合使用 Sonarqube 和 Qodana。Sonarqube 非常适合扫描已知漏洞和跟踪代码复杂性。对于整体代码扫描,我们主要依赖 Qodana。它非常容易添加到构建工作流,还能确保整个团队拥有高质量的代码。

我们有初级、中级和高级开发者,我们要求所有开发者遵循相同的专业编码标准。我们认为 Qodana 可以帮助我们的所有开发者写出更好的代码,无论他们有多少经验。Qodana 帮助我们的初级开发者编写高级代码,也帮助我们的高级开发者保证预期代码质量。考虑到它提供的各类检查,我们希望 Qodana 除了帮助维护产品中的代码质量标准之外,还可以充当开发者的教练。

对于刚开始采用 Qodana 的团队和开发者,你们有什么建议吗?

最好从新项目一开始就使用 Qodana。我们建议使用最严格的代码分析规则,集成到 GitHub 中,并使用失败阈值 `0`,这样任何违规都会阻止构建,并让开发者有机会清理代码。我们还想强调使用 JetBrains.Annotations 进行代码注解的重要性,因为这可以让你在编写公共库时向其他开发者以及 ReSharper、 JetBrains Rider 和 Qodana 等工具注解代码的意图,提供更有意义的代码分析。

免费试用 Qodana