编者按:本文源自阿里云云效团队出品的《阿里巴巴DevOps实践指南》,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电子书,了解阿里十年DevOps实践经验。
代码评审,英文名是 Code Review,简称 CR,它是结对编程相互切磋相互学习的方式。严肃地讲,CR能够提升代码质量、促进人才成长、培养技术情怀。
首先,代码也是一种资产且具有“流通性”,通常会需要 3 到 5 年的维护。过程中将面临维护人员更替、其他人参考引用的情况,谁都不希望自己接手或参考的是一份“天书”一样的代码。所以通过 CodeReview能够发现除程序逻辑以外的设计、性能、安全、规范等多方面的问题。
其次,CodeReview 是一个互相检查错误,互相学习代码用法的机会。如果团队的核心骨干人员,能参与到团队日常的架构评审、设计评审以及代码评审中,一定可以切切实实地帮助到其他研发人员的成长,不论是新人的融入,还是处于瓶颈期的其他研发人员。我们期望看到 CodeReview 可以促使团队"战斗力"的提升。同时CodeReview 因为涉及到研发之间就某一个具体的问题或场景交互式的讨论,所以也成为了工程师们提升编程能力的最佳途径。
最后,CodeReview 是一种文化,通过一个个小团队内部的评审实践逐渐形成为 IT 企业的一种开发者文化。当一个企业拥有了特定的技术文化,这对人才的吸引和成长是至关重要的。
如上图所示,代码评审主要分为三个阶段:评审开始、评审中、评审结束。
综上所述,传统的代码评审流程主要有以下几个问题:
针对传统评审流程面临的问题,阿里巴巴的代码平台团队借助智能化和流程管控的手段,提升评审效率,如下图所示:
具体从以下几个方面进行优化:
通过智能算法,自动推荐最合适的评审人。对于大型应用,和跨团队共建的中台应用,自动推荐可以节约大量的沟通成本,快速推进评审流程。
通过提交数据分析当前一次评审预计需要多长时间可以完成,帮助评审人根据当前评审所需的时间来合理安排自己的工作。此外,对于一个评审人同时拥有多个代码评审的场景,还可以根据评审耗时来安排评审任务的优先级。
git-repo 是由阿里巴巴开发的一款客户端工具,可以从客户端直接发起代码评审,实现在客户端快速创建并在页面端快速打开浏览。git-repo 并不会改变 git 用户的使用习惯,而是提供了对 git 命令的扩展。
传统的代码评审工作模式,代码贡献者要将代码推送到个人/特性分支,再通过在浏览器页面上发起创建合并请求,整个过程要经历多个步骤,开发者要切换到不同的工具才能完成。而使用 git-repo,一个用户只要拥有仓库的读取权限,就可以在本地工作区中执行下面的一条命令,将代码以合并请求的方式贡献到服务端。
在阿里巴巴内部,从上自下都在推行代码评审文化,要求每个开发者不仅要对自己的代码负责,也要作为代码评审人帮助其他同事一起把控代码的发布质量。想要做好一个评审,除了需要好用的工具辅助之外,还需要开发者注意以下几点:
【关于云效】
云原生时代一站式DevOps平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。
|