你的团队会对所有代码进行代码评审吗?具体如何实施?如何评价代码评审的作用?

 侯震宇:我们是做代码评审的,但不会对所有代码做评审。代码是可以分级的,一方面从代码本身的重要性来分,另一方面从代码编写者的熟练度来分。代码评审在我们内部叫Code Review,其有两个目的。第一也是最主要的目的是检查代码的质量,第二是学习一些优秀的代码,大家关心的可能是第一点。对入职时间不长的新人,需要监控其代码质量,纠正其在编写代码中的不良习惯,并使他们逐步融入我们统一的编程风格中。对于这种情况,我们一般有安排专人Review新人的代码。需要指出的是,不能指望Code Review发现所有代码层面的问题,它只能解决一些表面问题,而很难发现代码逻辑上的问题。代码逻辑上的问题需要通过后期的测试来解决。这里说的表面问题主要指缺乏注释、大量使用全局变量以及明显的一些可能引发Bug的问题(如在不知道字符串长度的情况下使用Copy等),这其中包括程序员编码的基本素质和编程风格两个因素。编码的素质可以通过训练和逐步积累提高,但编程风格不容易改变,只能进行约束。

所以说Code Review只是发现问题的一种手段,但不是解决问题的方法。提高代码质量我觉得分为三个层次:第一,通过框架约束;第二,工具检查;第三,Code Review检查错误。我们逐个层面来看:

编程框架的约束。减少程序员代码中的Bug的最好方法,就是少写代码。我们会有专人编写适合绝大多数业务的编程框架,将我们的程序员从编写没有营养、易出错的代码工作中解放出来。程序员只需要写一些配置或描述,就可以由框架生成可运行的代码框架。这既提高了程序员的工作效率,使程序员关注在业务逻辑实现上,也由于框架的约束使程序形成了统一的风格和代码结构。同时由于是自动生成的框架代码,这部分经过严格的测试,可以确保是高质量的代码,大大降低Bug数。

编程规范的工具检查。肉眼Review代码的效率是很低的。结合我们自己的编程规范编写的工具,可以像编译检查一样检查出大批不符合规范的代码缺陷。这些缺陷如代码缺乏注释、参数未被使用、函数没有返回值等。代码检查工具执行后会形成报告,指出缺陷的位置和一定的统计信息,这对于程序员提高自己的代码水平是很有帮助的。将工具检查结果与代码准入的流程相结合,可以大批过滤掉提交代码的低水平缺陷或Bug。

最后才是Code Review,再往后就到了测试阶段了。

总之,代码评审对于提高代码质量是很有帮助的,但只做代码评审是不够的或者说意义不大。如何最大限度地提高代码质量减少缺陷,是每个工程师和架构师都需要考虑的问题,涉及诸多方面,这都需要我们去关注。

你可能感兴趣的:(技术)