1. 为评审的生命周期提速
一般情况下,代码评审通常是在特性分支推送之后,由作者在页面进行创建。时至今日,越来越多的产品选择支持基于命令行直接创建和更新代码评审。当然除了追求速度和操作上的便利之外,最核心的问题还包括“谁能创建代码评审?谁能向仓库中贡献?”的问题, 我们在2020年对外公开了内部实现的 AGit-Flow 的集中式工作流,亦或称之为 云效代码管理 Codeup 主干研发模式。
既然有了 AGit-Flow,那么有没有一种方式,进一步的在不需要安装任何工具的情况下,执行git push就可以自动创建或更新评审?这样的好处有:
∙ 向仓库贡献代码,发起代码评审,不再需要创建新的分支,直接在主干上进行修改并提交即可,避免了冗余的分支管理成本。
∙ git push 不再直接推送分支内容,而是创建/更新对应的代码评审。
∙ 如果需要发送新的补丁,本地提交后继续执行 git push,对应已发起的评审会自动更新。
∙ 向仓库贡献代码不再需要授予开发者权限,拥有仓库的浏览者权限即可贡献代码,而且贡献的代码需要经过评审才能正式合入代码库。因此可以将直接写库的权限最小化到少数管理者手中,而大部分开发者仅需要读权限即可,降低了代码库被意外修改的风险。
∙ 支持指定 push option 来控制具体的推送行为。
关于推送评审,我们已经在2022年年底发布上线,具体可参考云效官方文档:
https://help.aliyun.com/document_detail/460320.html
扫码查看推送评审模式实操演示:
2. 化零为整,评审操作更专注
经常参与评审的同学一定有一些体感,那就是完成一次评审通常需要完成一系列较为松散的操作,其中主要包括:
∙ 创建草稿评论。
∙ 发表评审意见。
∙ 回复某一评论。
∙ 增加评审人和抄送人。
针对本次评审过程,发表全局评论作为最终表态。
这些操作通常都是评审人较为关注的功能点,为了进一步提升评审者的评审效率,化零为整是十分重要的手段,具体解决两类问题:
∙ 将评审过程中各类常见操作进行聚合。
∙ 支持发表评审意见前,再次 review 和修订本次评审操作的关键内容。
云效 Codeup 的新版代码评审通过统一评审操作视图的产品支持,大幅提升在评审意见发表和review环节的评审效率:
3. 化繁为简,评审待办更直观
对于评审作者,当提交当前补丁之后,在最终合并之前,可能要经过多轮的 review,需要关注的点通常比较繁杂,例如:
∙ 待解决评论的及时回复。
∙ 持续集成的运行结果。
∙ 代码中存在的安全漏洞。
...
在代码评审的过程中,作者不仅需要提交和推送代码,还需要回答问题、解释代码、接受评审意见、修复测试用例和漏洞等等。针对这种情况,云效 Codeup 的新版代码评审中提供了 Todolist 功能组件,帮助评审作者简化繁杂的各类待办信息,更高效的解决当前评审的遗留问题,该功能主要包括:
∙ 快速浏览和定位待解决评论。
∙ 快速浏览和定位自动化检测问题。
∙ 快捷键支持。
4. 化腐为奇,评审评论可追溯
在代码评审中,评论需要具备以下功能:
∙ 支持代码文件的行内评论。
∙ 评论的跳转和定位。
∙ 支持代码评审的全局评论。
∙ 支持创建草稿评论。
∙ 评论支持markdown格式。
∙ 支持动态表情评论。
云效 Codeup 的新版代码评审中除了以上能力的支持之外,还另外支持追溯 outdated 评论(例如:早前补丁中对应行存在评论,但在当前补丁对应行已经被删除或修改,此时评论仍然有价值被当前评审者关注)。
与此同时,我们提供了几个充满个性的动态表情,帮助研发团队打造轻松有趣的评审氛围。