1:什么是Code Review
Code Review代码评审是指在软件开发过程中,通过对源代码进行系统性检查的过程。通常的目的是查找各种缺陷,包括代码缺陷、功能实现问题、编码合理性、性能优化等。
2:为什么要Code Review
(1)提高代码质量。
(2)及早发现潜在缺陷,降低修改/弥补缺陷的成本。
(3)促进团队内部知识共享,提高团队整体水平。
(4)评审过程对于评审人员来说,也是一种思路重构的过程。帮助更多的人理解系统。
(5)是一个传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码。
(6)鼓励程序员们相互学习对方的长处和优点。
(7)可以被用来确认自己的设计和实现是一个清楚和简单的。
3:如何Code Review
我觉得主要考虑三个方面:代码规范问题,业务逻辑问题,效率优化。
1:编程风格
普通的程序员最痛恨接手或使用没有文档的代码,而程序员一般又不喜欢些文档,代码注释是文档的一种。建议在Eclipse中设置Code
2:可读性
命名规范,函数不要太长。所有的变量名尽量能够说明它的用意和类型。
如果一个函数,别人需要看你的长篇注释才能明白,那这个函数就一定有重构的空间。
另外,如果不可避免有一些注释,则一定要保证注释准确且与代码完全一致。
3:漏洞
帮代码作者想想他/她有没有漏掉任何 corner case。
很多时候这是业务逻辑相关的,尤其需要比较老的工程师帮助指出需要处理的所有情况。
4:异常处理Error handling。
这是最常见也是代码审核最容易帮别人看出的问题。
举个例子,下面一段简单到不能再简单的代码就至少有三个潜在的问题:
params 里面需要 validate 是不是有 user_id 和 new_name 这两个 key;
能不能找到这个 user_id 对应的 user;
save 的时候会不会有 DB level 的 exception,应该怎么处理。
5:日志
合理分配日志级别,warn和error要分开
日志中,异常信息要记录,第一个参数简短说明,第二个异常信息
日志异常注意把相关的参数信息记录下来,例如userId等
6:代码封装
同样的业务逻辑处理,不要有两份代码
7:资源关闭
对于IO流(所有IO流实现了Closeable,Closeable实现了AutoCloseable),用完是需要关掉的,关闭流写在finally块里是为了在任何情况下都能执行到关闭语句。
8:硬编码(Hard Code)
硬编码是众所周知该避免的。限于工期、配合、规划、架构等等原因,经常会违背。比如:
String appKey = “**“;
String appSecret = “**“;
String tokenUrl = “https://*.com/*“;
String refreshTokenUrl = “https://*.com/*“;
String suggestionUrl = “https://*.com/*“;
这些信息应该配置在配置项中,通过属性文件带入程序。