行业: 物流

使用的 JetBrains 产品: Qodana, IntelliJ IDEA

组织规模: 16,000 名员工

团队规模: 800 位开发者,1,600 个 GitLab 项目

技术栈: Java、PHP、Swift、Typescript、Jenkins

改变开发者体验:Evri 如何通过 Qodana 执行高代码质量标准

Evri 是英国最大的专业包裹递送公司,每年递送超过 7.2 亿件包裹。公司的使命是以更划算的价格打造最便捷的包裹寄送、接收和退回方式。Evri 的合作伙伴包括欧洲大多数顶级零售商、市场和旧货网站。Evri 的起源可以追溯到 1974 年的约克郡,经过数十年的发展,公司现已拥有 8,000 多名员工、26,000 多名快递员、14,000 多个户外网点,以及持续增长的先进枢纽和仓库网络。

挑战:在加快产品发布速度的同时保持一致的代码分析工作流

作为一家大型物流服务提供商,Evri 在英国各地管理着大量包裹,并将其分发给最终客户。他们的软件涵盖用于包裹预订的电子商务网站、支持零售和国际客户管理包裹数据的 API,以及用于实体基础架构运营的内部工具。

为了确保尽可能顺畅高效地部署和维护这一系列软件,Evri 成立了专门的开发者体验 (DevEx) 团队,这支团队致力于改善开发工作流并提高开发者的绩效和满意度。

DevEx 团队力求自动执行代码质量扫描,希望保持一致的标准、促进协作、加速产品发布,以及尽早解决问题。

工具选择:从 SonarQube 迁移到 Qodana

Evri 先前使用 SonarQube 进行质量分析,但后来开始寻找替代方案。他们质疑其成本效益,并担心环境中存在过多遗留问题。Evri 高级技术架构师 Luke Morton 提到:“…使用者可以创建自己的分析规则,让代码通过质量门。我们对编码标准的质量控制有限。”

他们决定迁移到 Qodana 的原因:

  • 增强的控制。经由 Jenkins 在运行时通过全局配置的 YAML 文件集中管理质量规则。如果开发者想要进行更改,他们需要向 DevEx 团队提出 YAML 文件的合并请求。
  • 改进的项目概览。使用 Qodana 的旭日图清晰、统一地呈现项目状态。
  • 即时反馈。集成 Jenkins 中合并请求的反馈,改进代码质量管理。

“将反馈作为合并请求评论的一部分直接呈现给开发者,是让他们优先采取行动的关键。”

— Luke Morton,Evri 高级技术架构师

  • IntelliJ IDEA 集成。在 IntelliJ IDEA 中直接访问报告和文件,以及直接在 IDE 中打开 Qodana 发现的问题。
  • 新的开始。有机会重新定义标准,实施更现代化的解决方案。

“新鲜事物是正确的选择。这让我们能从一开始设定期望。”

— James Hattersley-Dykes,Evri 首席工程师

结果:代码分析速度提高 6 倍,发布更频繁、速度更快

对于 Evri 来说,Qodana 的关键优势在于在管道中设置完成后,他们就可以依赖它,而不需要持续监督。

在 Evri 的管道中,流程从编译代码、运行单元测试和集成测试开始。随后,各种质量门(包括 Qodana 和 Snyk)并行运行。每个工具都会对合并请求提供反馈。如果任何质量门失败,构建就会停止,阻止合并请求集成到 main 分支中。不过,代码仍然可以部署到功能环境中进行额外测试。

缩短发布时间,代码分析速度提高 6 倍

Qodana 为缩短 Evri 的发布时间做出了重大贡献。这款工具与其管道集成,使发布更加频繁、快速。具体来说,Qodana 在 MR 中提供“快速反馈”,使开发者能够快速解决问题,从而加快发布流程。

“Qodana 对 MR 提供快速反馈,大幅缩短了 Evri 的发布时间,加快了问题解决速度。它的快速分析时间短至三到五分钟,取代了繁琐的 20 分钟。”

— Luke Morton,Evri 高级技术架构师

高代码质量,低维护成本

Qodana 运行噪音极小,需要的持续管理较少,因此更易于使用。

“我们不会每天都在 DevEx 中使用 Qodana,我们只是进行管理。它很可靠,我们不需要过多考虑。我已经好几个星期没有想到 Qodana 了,这就说明它运作良好。”

— Louis Jones,Evri 首席开发者体验工程师

教育机会

Qodana 可以为开发者提供额外的学习资源。

“Qodana 为我们的开发者提供了一个微学习机会,如果 Qodana 在合并请求上添加了评论,开发者就可以点击它,查看问题并了解如何解决。”

— Luke Morton,Evri 高级技术架构师

同类客户案例

Moovit

Amit Weinblum,Moovit 基础架构团队负责人

Qodana 确保我们的生产系统稳定运行,并让开发者能够及时修正管道中的问题。我们看到了模式的转变,在 Qodana 的帮助下,开发团队遵循政策,并且不必承受数日的熬夜之苦。

Zynex

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

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

更多客户案例