评审内容
u 工具检查
□ Eclipse警告
□ FindBug
□ CheckStyle
□ Jupiter
□ Subclipse 或者Subversive
u 代码注释内容(详细参考《代码注释规范》)
□ 类注释内容
□ 接口注释内容
□ 方法注释内容
□ 方法内部注释内容
u 业务逻辑
□ 业务逻辑实现的正确性
□ 业务逻辑实现的完整性
u 代码细节
u 异常处理
□ 接口方法声明需要抛出BusinessException
□ 接口实现类最外层需要强制try….catch,对Exception进行marsh BusinessException包装
□ 禁止出现try….catch后,没有对异常做任何处理的情况
□ 在EJB边界对所有的异常进行marsh BusinessException包装
□ 后台所有方法不再显示的进行异常的抛出声明,如有异常用wrappBusinessException包装成运行时异常直接抛出
□ 前台代码直接抛出后台传递过来的异常
□ 前台代码主动抛异常时,需要使用ExceptionUtils.wrappBusinessException;
□ 前后台异常处理类统一使用nc.vo.pubapp.pattern.exception.ExceptionUtils
□ 未用异常作为业务流程转换的判断
u 效率
□ 接口的定义使用参数数组来进行批量调用,而不是循环调用非批量接口
□ 方法内部禁止出现循环执行相似重复的SQL语句
□ 尽量使用绑定变量的sql
□ sql关联的表不超过3个
□ sql不采用外连接
u 内存
□ UFDobule常量必须使用UFDouble.ZERO, UFDouble.ONE
□ UFBoolean常量必须用UFBoolean.TRUE, UFBoolean.FALSE
□ UFBoolean的值必须采用UFBoolean.valueof(true|false|y|n|Y|N),的形式进行构造
u 其他
□ 临时表命名方式为:TEMP_(模块名称)_(具体作用) 例如:temp_gl_assid temp_fa_depdata
□ 常量要使用NC枚举类
□ 加锁应用统一的工具类,一定先加锁再查询
□ 代码中访问数据库都用相应的VO类,禁止直接使用JDBC
□ 面向接口编程
□ 方法入口处不能对传入参数进行容错处理
□ VO的get/set方法中不能包含业务逻辑
□ VO中不能有业务方法,也不能有数据校验方法
□ 避免全局变量
注:代码评审不负责检查功能、逻辑是否正确,这些要靠单元测试和QA工作来解决