How-To's

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

Read this post in other languages:

Qodana 平台将 JetBrains IDE 的所有检查引入 CI/CD 管道,有助于管理代码质量。

Zynex Monitoring Solutions今天,我们想分享 Zynex Monitoring Solutions 云团队的故事,这支团队最近采用 Qodana 跟踪其患者监测平台的质量和安全性。

我们采访了 Zynex Monitoring Solutions 云平台的软件架构师 Daniel Larson。

Daniel,您好! 能请您介绍一下您自己和 Zynex Monitoring Solutions 吗?

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

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

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,并快速转向解决所有问题和设置零容忍政策,这使我们的代码超级干净。 

Zynex 解决方案的 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 的团队和开发者,你们有什么建议吗?

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

想在项目中通过您的首选 CI 工具试用 Qodana 吗? 免费试用 Qodana

 

本博文英文原作者:

Sue

Maarten Balliauw

image description