记得刚到公司做第一个项目时,mentor要和我一起看看我刚实现完的一些代码,当时有些不解,难道是不相信我写的代码么?最后事实证明:我的代码中有很多缺陷,有的还是很严重的缺陷。后来知道这个过程叫'代码评审',是保证软件质量的一种手段,而且是很重要的一种手段。代码评审的形式有多种,最正式的一种就是召集公司或者部门的一些'大牛'们,围坐在会议室中,一行一行的审查你的代码;简单的形式就像我和mentor做的那种,一个编写代码的人和一个对系统特别了解的人在一起评审,效果不见得不如正式的评审,起码我是这么认为的。
那么什么时候进行代码评审呢?代码评审的粒度又该如何确定呢?一般在你的代码已具雏形,并且已通过单元测试,未提交进行集成测试之前的这个时机。评审的粒度要看代码的规模,当然评审的代码覆盖面越大,代码的质量越有保证。对于涉及业务流程较复杂的模块一定要和熟悉业务的人一起完成代码的评审,对这类模块应给予重点关注,因为往往业务流程逻辑的错误多于语言使用的错误。还有一个时机建议作代码评审,即在系统第一版发布后,如果有需求变动需要增加新功能,记住这时代码评审的效果可能好于简单的测试,当然两者都要有才能保证代码质量更高。
粗略的想了一下,代码评审有以下几点好处:
1、代码评审会尽可能的将Bug杀死在萌芽阶段
实践证明:项目先期发现Bug的成本要远远小于后期发现Bug的成本,越早发现代码中的问题对整个系统的控制和把握就越有利。
2、代码评审的过程是一个知识技能传承的过程,有利于新人成长
代码评审类似于师傅手把手教徒弟,是知识、技巧和经验的直接传授,所以这样的机会是很难得的,特别是对于新人,要十分珍惜代码评审这样的机会,新人在这个环节中学习的效率和成果实践证明也都是最高的。
3、代码评审会让你加深对系统的理解
代码评审的过程实际上也是从新梳理思路的一个过程,特别是对于那些业务流程复杂的模块,和精通业务的人一起做代码评审可以让你加深对业务和系统的理解。
总之,代码评审是必要的,而适当的加大代码评审的粒度,你将会收到意想不到的效果。
|