这个开发者工具已经有40年历史:它还能改进吗?

这个开发者工具已经有40年历史:它还能改进吗?

💡 原文英文,约2600词,阅读约需10分钟。
📝

内容提要

在AI带来指数级加速的时代,开发者使用现代化的工具包,其中最古老的工具是“git”。新的研究测试了一组更新的“diff operators”,减少了代码审查时间。使用更新的diff算法可以减少30%的代码审查时间。根据CodeGrip的调查,84%的公司使用代码审查,开发者每周花费2-5小时进行代码审查。GitClear的Commit Cruncher算法可以更精确地表示diff,减少了代码审查的工作量。使用Commit Cruncher算法的pull request需要审查的代码行数平均减少了22-29%。更新git diff处理工具可以减少近三分之一的代码审查工作量。

🔎

延伸解读

代码审查的时间成本与优化空间

文章引用CodeGrip 2022年调查指出,84%的公司使用代码审查,开发者每周花费2-5小时进行审查,超过10%的工作时间被占用。GitClear的研究表明,使用Commit Cruncher算法可减少22-29%的审查行数,从而可能节省近三分之一的审查时间。对于10人团队,每月可重新分配约40小时用于编码,这还不包括上下文切换的隐性成本。

Commit Cruncher如何减少审查行数

与Myers算法仅区分添加和删除不同,Commit Cruncher能识别移动、更新、查找/替换、复制/粘贴等更多操作。例如,对于空白更改、文件重命名、函数重构和增量更新,它能更简洁地表示差异,避免将无实质变化的行标记为新增或删除。在超过10亿行更改的数据库中,约10-15%是增量更新,这些优化累积起来显著减少了审查负担。

审查效率与缺陷发现率的平衡

针对“更短的审查是否导致漏掉缺陷”的担忧,GitClear对48名开发者进行了访谈。结果显示,使用Commit Cruncher的审查时间减少了23-36%,而缺陷发现率与Myers算法在误差范围内相当,理解准确率差异小于5%。这表明减少审查行数不会牺牲审查质量,反而可能提升开发者士气。

为何Myers算法统治四十年

尽管新算法显示出优势,但Myers算法自1986年以来一直是git diff的默认选择。文章提出两个原因:一是开发者习惯了现有的diff呈现方式,很少寻求替代方案;二是Myers算法经过长期测试,稳定可靠,而大型git平台不愿冒险改变用户信任的基石。只有当未来研究进一步证实超过20%的审查时间节省时,现状才可能被打破。

❓

Q&A

git的diff算法自何时开始使用?

git的diff算法自1986年以来未有实质性变化。

Commit Cruncher算法如何改善代码审查效率?

Commit Cruncher算法能够识别更多类型的代码变更操作,平均减少22-29%的代码行数需要审查,从而提高审查效率。

使用更新的diff算法能减少多少代码审查时间?

使用更新的diff算法可以减少30%的代码审查时间。

根据调查,开发者每周花费多少时间进行代码审查?

根据CodeGrip的调查,开发者每周花费2-5小时进行代码审查。

减少代码审查时间对开发团队有什么影响?

减少代码审查时间可能会显著提高开发团队的士气和工作效率。

Commit Cruncher算法与Myers算法相比有什么不同?

Commit Cruncher算法比Myers算法更精确,能够识别更多类型的代码变更操作,如添加、删除、更新、移动等。

🏷️

标签

➡️

继续阅读