代码质量与安全 | 想在发布竞赛中胜出?Sonar来帮你

在追求快速迭代、持续发布的现在,如何在发布竞赛中胜出?唯有简化应用程序的发布。使用Sonar的“边写边清洁”方法,可以帮助组织在保持时间进度的同时推出更多的功能,并且免于遭受技术债务带来的惩罚。

作为SonarQube授权合作伙伴,创实信息持续关注代码质量与安全领域的最新动态与实践,为中国用户带来全球范围内的优秀解决方案,帮助企业实现开发安全运营一体化。

<下午6点,Acme Software的会议室,所有人的目光都聚焦在产品经理的身上…>

房间里的每个人都在等待你的回答。你感觉汗水顺着脖颈往下流,时间冻结了片刻。你鼓起勇气,声音有些哽咽地说:“我认为发布候选版本很好,我们不能让时间表延期,只能继续加油。”说完,你松了一口气,但又感到很不安,因为你是凭直觉说出的这句话,而不是靠知识来进行判断。

你告诉自己,这是最后一次了,必须有更好的流程!

如果产品经理知道Sonar,所有的压力都可以避免!本篇文章将分享一个重要的Sonar方法——“边写边清洁”是如何帮助你简化应用程序发布过程。有了“边写边清洁”,您和您的团队就可以在保持时间进度的同时推出更多的功能,并免于遭受技术债务带来的后果,听起来难以置信?那就往下看!

代码中隐藏了什么?

从本质上来说,构建一个应用程序实际上只是将许多代码块组合起来,并将它们打包在一起,以便与其他应用程序进行交互和融合。

如果我们把代码块视为弹珠,它们可以被涂成红色或绿色。红色弹珠代表不清洁的代码,绿色弹珠代表清洁的代码。在sprint的过程中,开发人员不断地把弹珠添加到应用罐子中。在发布周期结束时,罐子将被新的/更改的代码填满,并进入下一个应用版本。

现在,可以想象应用程序罐子是不透明的,也没有盖子。在sprint过程中,随着弹珠的积累,我们将永远无法知晓里面代码的情况。因为它是一个开放的罐子,所以开发人员合并的代码有质量或安全问题时,也无法阻止。只有当我们把里面的东西倒入构建机器时,弹珠的颜色才会显现出来。

如果你把大量的红色弹珠扔进你的构建机器里,那就会出问题。伴随这些问题而来的是一些艰难的决策。要么推迟发布,把红色弹珠重构为绿色弹珠,或者保持发布的时间,稍后再处理红色弹珠?

这两种选择都不太好。一再推迟发布只会让沟通变得沮丧且艰难,而保持进度就意味着制造更多的技术债务……这会降低开发人员的士气。如果我们把脆弱性也考虑在内,情况会变得更糟。其中的一些红色弹珠可能是安全问题,随时会被泄露出去,给您组织的声誉带来巨大危机。

未知的代码质量影响着决策的好坏

太多的开发组织把上述情况称为他们的发布过程——好像那是一种规范。但实际上,用这种方式工作的组织等于把发布团队置于一辆无尽的、不可预测的过山车上——发布完一个接下来又一个……

随着计划发布日期的临近,你不断地与突发的质量问题作斗争,这时还怎么有信心的做出Go / No-Go决定?无论你是产品经理、发布经理还是工程副总裁,做这个决定都不容易。但如果你能一直知道有多少红色弹珠在堆积,事情是不是就容易多了?其实,如果可以一开始就把红色弹珠排除在应用罐子外,就更好了。这时创造高质量应用程序的最有效的方式,把未知转换成已知,这就是Sonar能帮助你实现的。

Sonar:一种更好的开发方式

Sonar将“边写边清洁”的 方法与IDE中的SonarLint和团队中的SonarQube或SonarCloud相结合。这个强大的组合可以持续分析代码,帮助你发现和修复IDE和PRs中的质量问题——在它们合并之前。这意味着你的应用罐子只会被绿色弹珠填充,因为它们是唯一被允许的。

在上面的类比中,我们说应用程序罐子没有盖子,所以红色和绿色的弹珠都很容易添加。如果我们能在罐子上加一个盖子,让它成为一个只允许绿色弹珠进入的智能盖子呢?Sonar可以这么做,它被称为质量门限,是“边写边清洁”概念的核心。

“边写边清洁”方法基于两个原则:

  • 每个开发者都对自己代码的质量负责

  • 只有通过质量门限的代码才会被合并

对于每个拉取请求,Sonar都会分析添加/更改的代码,如果代码不符合规定的质量标准,它就不会通过质量门限,而且不会被合并。红色弹珠不会造成发布时间问题了,因为它们根本不存在。

Sonar——营造轻松工作氛围

Sonar虽然简单,但它出奇的强大和高效。使用传统方法,你在有进展的同时需要偶尔停下来清洁、处理问题,然后再向前推进,属于进两步退一步。像这样的传统工作流程效率并不高,也不能持续地构建一个干净的应用程序,因为代码质量总是不透明。

Sonar还能系统地扭转技术债务负担,给团队带来良好的氛围。当你开始使用Sonar时,你可以通过“屏蔽”红色弹珠,将它排除在团队正在开发的新/更改代码以外,团队氛围立刻得到了缓和。随着时间的推移,您会重构代码库中重要的部分,当您这样做时,代码也将得到很好的清洁!代码库中充满了这些绿色代码,开发人员会很乐意工作。

Sonar——创造团队共赢

Sonar将清洁代码理论与实用工具相结合,使开发人员为自己编写的代码质量负责。流程可以说是最有力最重要的,也可能是最平淡无奇的一点。采用“边写边清洁”流程是真正的优势所在,因为这是Sonar的核心力量。它为开发工作流程中不可或缺的一部分,而没有它对团队来说是难以想象的!

开发者并不是唯一的受益方。为整个项目设置一个清晰的绿色/红色质量门限可以让发布决策变得简单——如果您的项目是绿色的,您就可以放心地发布。整个团队的压力就会变小,员工提高了工作满意度,保持了身心健康,员工保留率自然也更高。

Sonar可以成为催化剂,改变组织的发布思维,并且精简整个流程。Sonar对您的团队来说是一种变革。它真正实现了左移,为有才华的开发人员提供了满足客户的方法,让他们专注创造,而不是通过挖掘旧代码来修复问题——这种感觉超棒!

<下午6点,Acme Software的会议室,所有人的目光都聚焦在产品经理的身上…>

房间里的每个人都在等你着的回答。这时,你微笑着说:“Sonar质量门限是绿色的,我们准备好了!让我们与全世界分享它,他们正翘首以盼,大家干得漂亮!”你感到兴奋,因为这个版本有新的功能,能让竞争对手大吃一惊!

你对一位同事说,Sonar让你更容易判断应用程序的构建是否使用了清洁的代码,让你轻松做出了Go / No-Go的决定。

作者介绍:

克林特·卡梅隆

Sonar产品营销经理

文章来源:https://blog.sonarsource.com/sonar-streamlines-the-race-to-release/