在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

使用 SonarQube 和 Visual Studio 减轻技术债

  • 2015-05-06
  • 本文字数:1136 字

    阅读完需:约 4 分钟

来自 SonarSource 的 Olivier Gaudin 与来自微软的 Stuart Kent 在本周举行的 Build 大会上为听众介绍了使用 SonarQube 所带来的益处,以及如何让它更方便地为.NET 开发者所用。Kent began 在演讲的开始描述了技术债的累积所带来的沉重负担。当某个项目的开发过程结束之后,此时的技术债只是会分散实现新功能的注意力而已,但随着时间的推移,开发团队经常会发现他们的所有时间都消耗在处理技术债上了。

Gaudin 在这个背景下介绍了如何衡量代码的质量与技术债的技巧。在分析代码库时,有一种非正式的衡量指标叫做每分钟飙脏话的次数。他为我们描述了技术债的出现是由于开发者这 7 种致命的原罪所造成的:

  1. 重复
  2. 糟糕的复杂性分布
  3. 意大利面式设计风格
  4. 缺少单元测试
  5. 缺乏代码标准
  6. 潜在的 bug
  7. 注释不足或过多,或者干脆不正确(单元测试对这种类型的 bug 无能为力)

Gaudin 表示,当项目已经开始运行之后,再回过头去实现某种试图缓解技术债的策略是非常困难的。有许多原因会让团队感觉实现这一点过于困难,包括缺乏自主性(在 QA 与开发者之间,谁应当对质量拥有自主权呢)、多样化的需求以及质量门。为了“改变游戏规则”,Gaudin 提出了以下几条建议:

  • 让开发团队拥有质量的自主权
  • 缩短反馈循环
  • 统一质量门
  • 成本并不重要
  • 这很有趣!

为了对实现目标起到帮助,应当尽量缩短反馈循环,让开发团队能够第一时间获得反馈。对于现有的软件来说,重要的是不要让问题变得更糟了,因此首先要改进正在编写的新代码的质量,然后再去处理遗留代码中的问题。

SonarQube 为开发者提供了一种描述代码库的仪表板,其中提供了多种实用的指标。例如某些仪表板上的 widget 就提供了处于监控中的项目的代码行数和代码覆盖率,此外还包括单元测试覆盖率和这些单元测试的通过率。它还能够对新编写的代码进行分离式的代码覆盖率检查,而不会受现有代码库的影响,因此团队就能够确保他们所编写的新代码不会使质量继续下降。

SonarQube 从用户那里获得的反馈是,虽然这一工具在 Java 项目上表现很好,但它并不符合 C#的风格。因此 SonarQube 联系了微软,希望得到一些优秀 C#开发者的帮助。Kent 表示,虽然代码质量数据非常实用,但一上来就面对大量的指标(代码分析、克隆、代码指标等等)会让人感到喘不过气。他建议使用者创建一个质量简报,对显示哪些数据进行过滤、建立基线、设立质量门、并设立一种补救政策,从而得到一个经过精练的问题列表,让它帮助你避免、或至少是减少你被过多的工作压垮的机会。

虽然还有一部分工作还在进行中,但新版本已经可以在 TFS2013 中使用了,有兴趣的开发者可以尝试一下。要了解更多的细节,请参考Stuart Kent 撰写的关于使用SonarQube 整合MSBuild 与Team Build 的文章。

查看英文原文: Reducing Technical Debt with SonarQube and Visual Studio

2015-05-06 09:303881
用户头像

发布了 428 篇内容, 共 201.3 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

Kmesh进入CNCF云原生全景图,实现网格治理sidecarless化

华为云开发者联盟

云原生 华为云 华为云开发者联盟 企业号2024年5月PK榜

三能一体运营体系助力政企支撑水平提升

鲸品堂

运营商 政企 企业号 5 月 PK 榜

低代码与无代码的区别

天津汇柏科技有限公司

低代码 无代码

企业数字化不装逼系列(二)- 你绝对想不到的为什么要数字化转型

加贝羊羽

数字化 企业数字化转型 数字化时代 企业数字化 数字化经济

福昕软件荣获2023中国电子学会科技进步二等奖

新消费日报

企业数字化不装逼系列(一)- 你绝对不知道的企业数字化概念

加贝羊羽

数字化生态 数字化 数字化时代 企业数字化 数字化经济

KubeAI大模型推理加速实践|得物技术

得物技术

算法 kube 大模型 ChatGPT 企业号 2024年5月 PK 榜

AI日报|李飞飞解读创业方向「空间智能」,OpenAI将使用Reddit实时数据训练AI...

可信AI进展

哈银消费金融七周年:创新金融服务,助力消费金融行业高质量发展

极客天地

用 MVP(最小可行性产品) 做低成本快速验证,为什么不灵了?| Liga译文

LigaAI

创业 敏捷开发 MVP 最小可行产品 企业号 2024年5月 PK 榜

最后三天,还没上车的抓紧时间!

霍格沃兹测试开发学社

企业数字化不装逼系列(三)- 你绝对想不到的如何数字化转型

加贝羊羽

数字化生态 数字化 数字化时代 企业数字化 数字化经济

跨端自渲染绘制的实践与探索

京东科技开发者

高并发系统-使用自定义日志埋点快速排查问题

京东科技开发者

使用SonarQube和Visual Studio减轻技术债_.NET_Jeff Martin_InfoQ精选文章