【Meta 提出代码审查新方案:杜绝代码 Bug,日均代码审查总量增长 17%】作者 | 李冬梅、核子可乐
代码审查是软件开发过程中最重要的环节之一 。如果这项工作做得好,代码审查能够切实帮助我们发现 Bug,普及最佳实践并保障代码质量 。
近日,Meta 技术团队宣布采用了几款工具和相应流程,很大程度提高了代码审查速率 。
Meta 技术团队将针对代码库做出的一组独立变更称为“diff” 。虽然 Meta 非常重视开发效率,但每条 diff 也必须经受严格审查,绝无例外 。代码审查团队深知 审查周期越长,留给开发者们完成工作的时间就会越短 。
为此,Meta 技术团队研究了多项指标,希望更多了解哪些代码审查瓶颈最令开发者们感到不满,并积极利用这些结论探寻在不牺牲审查质量的前提下加快审查速度的办法 。通过研究发现,缓慢的 diff 审查速度跟工程师们的不满情绪间存在相关性 。另外,新研发的工具能够在审查周期的各个关键节点向相应审查人员展示 diff,由此显著改善审查体验 。
为什么 diff 审查的速度总是那么慢?
为了回答这个问题,首先需要查看自己的数据 。在跟踪了一项名为“审查时间”的指标后,Meta 技术团队发现,需要衡量的是 diff 在单一审查周期内等待审查的时长 。这里只计算 diff 等待审查者操作的时间 。
审查时间(Time In Review)指标,计算的就是图中各蓝色部分(即无意义等待部分)耗费的时间总和 。
最终的发现令人惊讶 。回顾 2021 年初的数据,研发人员发现 diff 审查时间的中位数(第 50 百分位)只有几个小时,这样的结果还算不错 。但如果把目光投向第 75 百分位(即最慢的那四分之一审查),就会发现 diff 的审查时间延长到了一整天 。
研发人员分析了审查时间跟用户满意度(通过全公司范围内的量化调查)之间的相关性 。结果非常明确:速度最慢的那 25% diff 审查,才是决定人们实际体验的核心;这部分耗时越长,大家对代码审查过程的满意度就越低 。于是也就得出了最值得关注的改进指标:第 75 百分位(P75)审查时间 。
缩短审查时间不单能让人们对整个代码审查过程的满意度更高,也会提高每一位 Meta 工程师的工作效率 。缩短 diff 审查时间,意味着工程师耗费在审查上的时间将大大减少、提升工作效率、改善审查体验 。
在速度与质量间求取平衡
然而,简单粗暴地加快审查速度绝不是明智之举,甚至会将审查变成毫无意义的走过场 。因此需要设置一项护栏指标,防止过快审查带来的负面后果 。在这里,研究人员选择了“注视时间”,即审查者花在查看 diff 上的总时长 。查看时间过短,即代表审查者很可能是在敷衍了事 。
现在已经有了核心指标“审查时间”,也有了护栏指标“注视时间”,接下来要怎么办?
构建、试验和迭代
在 Meta,几乎每个产品团队都会使用试验加数据驱动的流程推进功能发布和迭代 。但对于这些内部辅助团队,这样的流程仍然比较新鲜 。因此人们需要克服一系列产品团队根本不需要考虑的挑战(样本量、随机化、网络效应等) 。研发人员通过运行网络实验积累起数据基准,并利用技术减少方差、增加样本量 。事实证明,这些努力都是值得的——通过奠定坚实的试验基础,使得研发团队最终拿出了具有积极影响且行之有效的新一代代码审查方案 。
试验过程:根据对代码审查意义和体验设计的假设,选择了目标指标和护栏指标 。此外还制定了一套选择不同实验单元以实现随机化抽样的机制,包括用户集群的随机化 。
以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!
「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助:- 缺少对象 代码0 怎么解决啊?
- 火焰纹章圣魔之光石金手指第一人经验代码多少
- 马克斯韦伯提出引料盾什么理论
- 中节能太阳能股份有限公司
- 怪物猎人P3自动防御护石金手指代码是多少 怎么?
- 分手后女孩提出继续陪伴男孩身边,谁知再见成了不再见
- 证券代码:688219 证券简称:会通股份 公告编号:2022-054
- 男子以隐私为由不给女友检查手机,女友提出分手,便含泪走出宿舍
- 深圳国债逆回购的代码有哪些?
- 国债逆回购的代码是多少?