Code review
我们把代码审查叫做CR,即Code Review。它是项目进展到编码阶段非常重要的品质保证活动。但是很多时候,我们的CR工作都流于形式,在CR过程中不能发现本质问题,主要有以下四点原因:
一,CR时的目的性不强,缺乏针对性。CR的根本目的是保证品质,但不能把它做为一次CR活动的直接目标,这样的目标太泛泛,让我们在CR活动过程中抓不住重点。
二,CR活动时参与的角色不合理。参与CR活动的人大多是技术合格,但业务不合格,这样对于一些复杂的业务逻辑问题就很难发现,从而使得这些业务逻辑问题在CR的保护伞下,堂而皇之的蒙混过关。
三,CR活动过于集中,一次CR的代码量太大。在有限的几个小时内,面对上千行,甚至更多的代码时,再有耐心的人也难免产生视觉疲劳。
四,准备不足,对于要CR的代码缺少必要的审查规范和标准。在代码审查过程中,我们往往只有代码编写规范,但是代码的设计规范、业务的逻辑规范和标准等准备不足。
那么,我们应该怎样做,才能使CR工作保质而且高效呢?一个标准的CR活动应该分为三个阶段:
一,事前准备阶段。在一次CR前,以下对以下内容进行充分准备。
1.CR的对象。在准备CR代码对象时,我们要注意代码的数量,如果代码量比较大,要对代码进行必要的分解,确定其中的关键代码,对关键代码进行CR,可以达到举一反三的目的。
2.CR内容。我们对代码的审查内容很多,如代码的编写是否规范(注释的书写格式、命名规范等)、技术处理规范(异常处理、日志处理、代码组织结构等)、业务实现等。我们不能希望通过一次CR活动,完成所有这些内容的审查,因此我们必须设定本次CR活动内容界限,确定审查重点;
3.评审规范和标准。在CR前设计确定评审规范和标准是必要,通过规范和标准我们在审查过程中可以有据可依,有理可循,而且还可以做到标准统一。
4.选择CR活动的参与者。在CR开始前,必须把本次CR活动的对象、审查内容以及审查的规范和标准通报给所有的参与者。
5.选择CR活动的实施方式。CR活动有很多形式可供我们选择,我们可以根据实际情况选择桌面式CR、演示讲解式CR、一对一的座位CR等等。
二,实施阶段。充分的事前准备,只是做好CR活动的前提,在CR实施过程中,我们要做好以下工作。
1.准确记录。对于CR过程发现的问题,我们必须清晰准确的记录,可以使用问题点记录单,明确记录的项目和内容。
2.CR过程中,要采用代码作者讲解和审查者提问方式。审查者不能只在发现问题时提问,同时也要根据本次审查的内容要求代码作者对某个特定问题的讲解。
3.对事前确定的审查内容,要逐项审查,不能因为时间不足等因素一扫而过。
4.实施审查时,要营造一个讨论问题、解决问题的氛围,不能把审查会搞成批判会,这样会影响相关人员的积极性。
三,事后跟踪跟踪。CR结束后,对发现的问题,首先需要确定以下内容。
1.问题点的难易程度以及影响的范围;
2.解决问题的责任者和问题点修正结果的确认者;
3.解决问题点的时限。
其次是对于修正问题责任者,在问题点的修正过程中,要三方面内容的记录。
1.问题点的原因;
2.解决问题点的对策;
3.修正的内容。
做为修正结果的确认者,必须按照事前约定的时限及时的对修正结果进行全面的确认