乐趣区

关于代码质量:代码质量与安全-想在发布竞赛中胜出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/…

退出移动版