Code Review如何有效的进行

Code Review如何有效的进行?我们一起来看看

Code Review如何有效的进行


什么是Code Review?
Code Review代码评审是指在软件开发过程中,通过对源代码进行系统性检查的过程 。通常的目的是查找各种缺陷,包括代码缺陷、功能实现问题、编码合理性、性能优化等;保证软件总体质量和提高开发者自身水平 。Code Review是轻量级代码评审,相对于正式代码评审,轻量级代码评审所需要的各种成本要明显低得多,如果流程正确,它可以起到更加积极的效果 。正因如此,轻量级代码评审经常性地被引入到软件开发过程中 。
为什么Code Review?
1.提高代码质量 。
2.及早发现潜在缺陷,降低修改/弥补缺陷的成本 。
3.促进团队内部知识共享,提高团队整体水平 。
4.评审过程对于评审人员来说,也是一种思路重构的过程 。帮助更多的人理解系统 。
5.是一个传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码 。
6.鼓励程序员们相互学习对方的长处和优点 。
7.可以被用来确认自己的设计和实现是一个清楚和简单的 。
如何做Code Review?
【Code Review如何有效的进行】Code Review检查什么?
1.结构问题
代码比较大的问题,不是一两个地方有技术缺陷,也不是业务逻辑错误,而是整个软件设计的不好 。前两者更容易通过测试或使用来发现和更正,但后者就不同了 。如果回想一下自己见过的各种烂摊子,是不是有同感?具体哪里有问题怎么改说不上来,就是整个软件看上去混乱无章,无从下手 。
具体结构问题包括:重复拷贝代码(不封装函数,不用Template/泛型……),函数过长(超过一屏幕就叫过长),错误封装(不恰当的public/不用Interface/不内聚/强耦合/在类中封装了无关方法……),内容错误(多个无关类置于一个文件/不恰当的命名……)等等 。
改正结构问题,是从编写可靠软件向编写精美软件迈进的重要方法 。
2.业务逻辑问题
就是软件是否与需求的要求符合的问题 。审核者和被审核者经常对业务需求的理解有差异,借此机会同步一下,必要时引入PO(产品经理/产品负责人) 。
有人会说业务逻辑问题不是一测试就知道了吗?可是测试一般发生在很久以后,有些逻辑测试还需要一定的触发条件,而且测试只会发现失效(failure, 与预期不符)而不能发现缺陷(defect, 具体哪里出了错),等积累长了,谁也找不到原因了 。
3.编程素养问题
很多问题属于那种“这样也行那样也行”的状态,比如命名/初始值/缩进/断行……但是高手的做法总是比新手好一些 。
比如bool result = true; 这句话就有问题,刚初始化就先宣布成功,必有隐患 。这是一个真实案例,而下面也的确有一个分支错误地返回了这个true(实际案例是个HRESULT) 。而发现这个问题,不是测试而是代码检查 。实际上测试几乎发现不了这些问题,比如上面那段代码会在某文件打不开的时候错误地返回这个true,而在测试中几乎不会故事破坏那个文件来测试其结果 。
经常进行Code Review
常见的Code Review是高手审核新手,或者师傅走查徒弟 。一般而言,大致高手每天能编写100多行有效代码(按分号计数),新手会多一些但也不超过200(他们编写代码比较费),也就是10个屏幕以内 。有经验的人一定知道:高手看新手的代码,5秒钟就能发现问题 。所以不用花上很长时间去做Code Review,而应该“少吃多餐”,每次可以5分钟,10分钟,每天2-3次甚至更多 。看到一个问题就要彻底解决,不需要一次检查很多,问题一次比一次少即可 。

推荐阅读