预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共28页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JAVA编码规范概述 编写目的 预期读者 重要规范 操作规范 日志规范 异常处理 安全规范 命名规范 包命名规则 类接口命名规则 方法命名规则 变量命名规则 常量命名规则 注释规范 注释的介绍 类注释规范 方法注释规范 程序块注释规范 废弃代码注释保留 特殊代码注释规范 其他规范和实践1.1编写目的 本文描述了JAVA开发中的一些需要注意的编程规范和经验,以及可以增强代码可读性的包、类、接口、方法、等的命名规则和注释规范,文档最后还介绍了一些编程的实践和技巧。 1.2预期读者和适用范围 开发组全体成员。适用于开发组所有基于JAVA开发的项目。 2.1操作规范 1、SVN代码提交 为防止代码冲突,在提交代码前必须先更新代码,然后再提交自己新加的代码,提交时必须添加本次变更注释。当多个文件有变更时,要成批一次性提交代码,不允许一次单个文件提交。如果更新后代码有冲突,要及时找相关人员共同解决冲突,坚决不允许私自删除或覆盖其他人的代码。 2、垃圾清理 对于项目改造或变更后,项目中没有用到的类、方法、变量、配置和引用(import)要及时清理掉。 2.2日志规范 1、日志输出 (1)日志输出统一使用logger进行输出,不允许使用System.out形式输出; (2)日志输出内容必须与系统中原日志输出格式保持一致; (3)每条日志输出都必须以日志跟踪号开头correlationID[xxx],并且保持一个请求的的correlationID一致,对于有会话session的交易,要保持整个session的correlationID一致; (4)内部dubbo系统调用异常必须捕获处理,并输出日志; (5)客户端,通过对象交互的交易接口中,可在调用关键接口完成后,输出retcode及retmsg;通过json或xml为数据交换的接口中,输出请求及响应报文; (6)服务端,对关键交易请求要素进行日志输出,交易处理完成后输出处理结果; (7)和外部系统交互,可将日志输出详细些,日志中尽量包括:请求地址、内容、http响应码等状态信息、外部系统响应内容等信息; (8)数据库操作,捕获SQLException并对异常进行输出,可增加数据库操作错误排查; (9)捕获异常后要对异常信息输出ERROR级别的日志,输出示例:logger.error(“XXX操作异常:”+e.getMassage(),e); (10)ERROR级别日志输出一般原则:对于由于系统原因造成业务处理失败的事件,需要记录错误日志。非系统原因的业务处理失败,不应该记录错误日志(推荐使用warn级别),避免错误日志过大,影响紧急情况下的故障分析和诊断; 2、记录操作日志 对于商户/用户密码变更,订单/支付单状态变更等安全性要求较高的操作,需要调用logServer添加操作日志。日志内容应该包括关键要素,方便后续追踪。 3、用户敏感信息保护 用户的敏感信息包括:密码、短信验证码、支付验证码、身份证号、银行卡号、信用卡CVV码、信用卡有效期、银行密钥,商户密钥等信息;用户敏感信息不能泄露,否则可能会带来不安全因素。 可能会导致敏感信息泄露的方式有:Logger、URL的get参数QQ聊天(在为商户客服或技术解答问题时,如果需要回复身份证号、信用卡CVV码、信用卡有效期、商户密钥等敏感数据时,要加*处理或单独私聊)。另外,项目中使用的log4j包是经过改造扩展后的日志输出jar包,会根据log4j.xml的配置内容,自动对一些敏感信息进行加*处理。 2.3异常处理 1、java异常的体系结构 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在JavaAPI中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。在Java中,异常分为受检查的异常,与运行时异常.两者都在异常类层次结构中。 Java异常体系结构呈树状,其层次结构图如图所示: 第二章重要规范受检查的异常:粉红色的是受检查的异常(checkedexceptions),其必须被try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为CHeckedException是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守。 运行时异常:绿色的异常是运行时异常(runtimeexceptions),需要程序员自己分析代码决定是否捕获和处理,比如空指针,被0除... 而声明为Error的,则属于严重错误,需要根据业务信息进行特殊处理,Error不需要捕捉。 2、异常的捕获 受检查的异常必须捕获,捕获后输出ERROR级别的日志。 调用子系统服务必须捕获异常,捕获