带你读《代码管理实践10讲》——五、重评审还是轻评审,企业该如何选择代码评审模式?

简介: 带你读《代码管理实践10讲》——五、重评审还是轻评审,企业该如何选择代码评审模式?

代码评审带来的好处不言自明, 但企业业务快速发展的诉求与代码评审推动落地两者之间, 往往存在矛盾。到底选择重评审,还是轻评审?今天我们继续跟着云效代码团队同学一起认识下轻重评审,探讨下企业如何选择适合现在发展阶段的评审模式。

 

我们可以基于评审过程的严格程度,把评审分为轻/重两类,可以根据自身业务情况选择最合适的评审方式。

 

 

轻评审

重评审

卡点

合并时走评审,但不设强制卡点

合并必须走评审流程,设强制卡点

评审严格度

评审者自行决定

严格度高,评审人必须审阅且通过

评审追求

迭代速度优先

安全质量优先

适用团队

敏捷研发、质量风险要求不高的团队

迭代速度稳定、质量风险要求高的团队

 

1. 轻量级评审

轻评审即轻量级评审,适合将迭代速度放在第一优先级的产研团队,对代码质量和上线后的风险方面有一定包容度。

 

在研发资源极度紧张,业务需求井喷的场景下,质量和速度是鱼和熊掌不可兼得的事,很多初创企业的管理者或者是技术Leader都选择接受一定的技术债务。在研发流程上,不要求一定满足严格的评审合入准则, 在这种情况下,轻评审是不错的选择。

 

 

 

2. 重量级评审

重量级评审与轻量级评审采取不同的策略,有严格的卡点规则,通常见于以下场景:

 

∙        业务类:对于代码质量要求较高的业务模块

∙        服务类:基础类应用、中台类应用、通用性工具

∙        开源类:开源贡献场景通常对于代码质量的要求较高

3. 灵活的卡点支持

不同的企业对于代码评审的卡点支持上,通常主要关注通用性、扩展性和灵活性三个维度。

1 通用性

通用卡点主要包括:

 

∙        支持代码冲突检测结果作为合并卡点 。

∙        待解决评论作为合并卡点 。

∙        评审人评审是否通过作为合并卡点 。

2 扩展性

扩展性主要体现在,根据自身业务诉求,在基础卡点类型基础之上,支持扩展平台内置或者三方接入的自定义卡点:

 

∙        代码风格:支持 code-style 检测结果作为合并卡点。

∙        代码规范:支持代码规范类检测结果作为合并卡点。

∙        代码测试:支持单元测试、集成测试、可交付测试等测试结果作为合并卡点。

∙        安全合规:支持依赖包漏洞检测、代码漏洞检测、代码扫描检测、开源合规检测等检测结果作为合并卡点。

∙        其他自定义卡点类型。

3 灵活性

通常在一些特殊的场景下,尽管设置了代码评审的相关卡点,你可能仍旧希望在特定规则下,可以灵活的控制卡点的生效逻辑,包括:

可灵活选择观测项结果是否作为卡点,例如只希望对代码风格进行检查和结果查看,但
是不作为真正卡点阻碍代码的合并过程。

 

在紧急发布情况下,本地已经验证通过,希望临时将某些卡点检查自动跳过,从而尽快进行合并从而修复线上缺陷。

 

基于以上通用性、扩展性、灵活性的卡点考虑,代码评审应该灵活支持企业内不同的团队对于轻量级评审和重量级评审的不同诉求。

 

云效 Codeup 的新版代码评审通过对于合并卡点的理解和抽象,支持常见基础卡点以及自定义卡点(灰度中),进而提供该方法论的支撑落地方案:

 

image.png  

云效 Codeup 新版代码评审支持常见基础卡点以及自定义卡点(逐步开放中)

目录
打赏
0
0
0
0
197
分享
相关文章
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(1)
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(1)
157 2
带你读《代码管理实践10讲》——三、评审协同如何提效,我们团队的4点思考
带你读《代码管理实践10讲》——三、评审协同如何提效,我们团队的4点思考
116 1
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(2)
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(2)
149 0
云效代码管理问题之代码仓库配置需要评审如何解决
云效仓库是阿里云提供的代码托管和版本控制服务,支持Git等多种版本管理工具;本合集聚焦于云效仓库的使用技巧、团队协作流程以及常见问题解答,旨在帮助开发者更高效地进行代码管理和协作开发。
1879 0
前端开发中的Git版本控制:构建可靠的协作和代码管理
前端开发中的Git版本控制:构建可靠的协作和代码管理
103 0
代码管理的艺术:你的团队是否还在为 Git 分支管理头疼?
本文回顾了作者从2~3人初创团队到百人技术团队的经历,分享了代码管理工具从无到SVN再到Git的演变。重点介绍了Git Flow和GitHub Flow两种常用的Git分支管理模型,分析了它们的适用场景和优缺点。Git Flow适合中大型项目,而GitHub Flow则更适合小型团队和Web应用开发。
140 0
版本控制与源代码管理:在 Visual Basic 项目中使用 Git
【4月更文挑战第27天】本文介绍了在Visual Basic项目中使用Git进行版本控制和源代码管理的重要性。Git作为一个流行的分布式版本控制系统,具备分布式架构、高效性能和强大分支管理等特点。在项目中,需先安装Git,然后初始化仓库、添加文件和提交更改。常用操作包括查看状态、日志、创建及切换分支和合并分支。团队协作时,借助远程仓库和推送拉取命令实现代码共享。虽然Git有学习曲线,但其优势在于强大的功能、灵活性和社区支持,能提升开发效率和代码质量。通过学习和实践,开发者可充分利用Git优化协作和项目管理。
104 1
带你读《代码管理实践10讲》——二、新一代高效Git协同模型AGit-Flow详解
带你读《代码管理实践10讲》——二、新一代高效Git协同模型AGit-Flow详解
115 0