代码评审的目标是提高代码库的可读性和可维护性,评审流程从根本上支持这一点。支持该流程的工具在其成功中也扮演者重要的角色。
代码评审工具对代码评审的主要角色有明确的支持,为评审人员和作者提供了评审的视图,并能够评论提交的代码变更。代码评审工具还为被检入代码库时设置了门禁。代码评审信息在进行代码考古时也很有用,一些技术决策能在代码评审中得到解释。
代码评审工具的原则有:
一、简单。用户界面围绕使代码评审变得容易,而无需太多不必要的选择而进行设计的,并且界面流畅,导航简单,评审状态清晰可见。
二、基本的信任。不需要额外的评审阶段来再次检查小的评论意见是否被真正得到了处理。所有代码变更可以被公开访问。
三、日常的沟通。鼓励用户在评论中阐明他们想要的东西,甚至可以提供修改建议。
四、工作流集成。与其他核心软件开发工具有许多集成点。开发人员可以容易地在代码搜索和浏览工具中浏览正在评审的代码,在代码编辑工具中编辑代码,或查看代码变更相关联的测试结果。
基于简单原则,不创建一种能在一个工具中进行代码编辑、检查和搜索的代码中心工具。
典型的评审步骤如下:
1、创建变更。作者在代码评审工具上传一个快照,触发自动代码分析。
2、发起评审。作者对评审工具中显示的变更差异和分析结果满意后,将变更邮件给一个或多个评审人。
3、评论。评审人打开变更,对差异给出初步意见。评审人也可以添加可选的信息性评论。自动代码分析的结果对评审人也是可见的。任何人都可以随手评论一下。
4、修改变更并且回复意见。作者根据反馈修改变更,上传新快照。作者和评审人可以查看任意快照之间的差异,以查看修改的内容。前一个步骤和这个步骤可以重复多次。
5、变更确认。当评审人对最新的变更满意时,批准该变更。在界面中标记为绿色。
6、提交变更。作者触发提交流程。变更提交到代码库。
评审流程应丝滑流畅,工具必须快速。信任和沟通是代码评审过程的核心。工具可以增强体验,但不能取代它们。与其他工具的紧密集成是良好代码评审体验的关键。优化工作流增加清晰度,减少摩擦。