java编码规范

上传人:第*** 文档编号:54445690 上传时间:2018-09-13 格式:PPTX 页数:28 大小:345.62KB
返回 下载 相关 举报
java编码规范_第1页
第1页 / 共28页
java编码规范_第2页
第2页 / 共28页
java编码规范_第3页
第3页 / 共28页
java编码规范_第4页
第4页 / 共28页
java编码规范_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《java编码规范》由会员分享,可在线阅读,更多相关《java编码规范(28页珍藏版)》请在金锄头文库上搜索。

1、JAVA编码规范,移动产品研发部,概述 编写目的 预期读者 重要规范 操作规范 日志规范 异常处理 安全规范 命名规范 包命名规则 类接口命名规则 方法命名规则 变量命名规则 常量命名规则 注释规范 注释的介绍 类注释规范 方法注释规范 程序块注释规范 废弃代码注释保留 特殊代码注释规范 其他规范和实践,目录,1.1编写目的 本文描述了JAVA开发中的一些需要注意的编程规范和经验,以及可以增强代码可读性的包、类、接口、方法、等的命名规则和注释规范,文档最后还介绍了一些编程的实践和技巧。 1.2预期读者和适用范围 开发组全体成员。适用于开发组所有基于JAVA开发的项目。,第一章概述,2.1操作规

2、范 1、SVN代码提交 为防止代码冲突,在提交代码前必须先更新代码,然后再提交自己新加的代码,提交时必须添加本次变更注释。当多个文件有变更时,要成批一次性提交代码,不允许一次单个文件提交。如果更新后代码有冲突,要及时找相关人员共同解决冲突,坚决不允许私自删除或覆盖其他人的代码。 2、垃圾清理 对于项目改造或变更后,项目中没有用到的类、方法、变量、配置和引用(import)要及时清理掉。,第二章重要规范,2.2日志规范 1、日志输出 (1)日志输出统一使用logger进行输出,不允许使用System.out形式输出; ( 2 )日志输出内容必须与系统中原日志输出格式保持一致; ( 3 )每条日志

3、输出都必须以日志跟踪号开头correlationIDxxx,并且保持一个请求的的correlationID一致,对于有会话session的交易,要保持整个session的correlationID一致; ( 4 )内部dubbo系统调用异常必须捕获处理,并输出日志; ( 5 )客户端,通过对象交互的交易接口中,可在调用关键接口完成后,输出retcode及retmsg;通过json或xml为数据交换的接口中,输出请求及响应报文;,第二章重要规范,( 6 )服务端,对关键交易请求要素进行日志输出,交易处理完成后输出处理结果; ( 7 )和外部系统交互,可将日志输出详细些,日志中尽量包括:请求地址、

4、内容、http响应码等状态信息、外部系统响应内容等信息; ( 8 )数据库操作,捕获SQLException并对异常进行输出,可增加数据库操作错误排查; ( 9 )捕获异常后要对异常信息输出ERROR级别的日志,输出示例:logger.error(“XXX操作异常:”+e.getMassage(),e); ( 10 ) ERROR级别日志输出一般原则:对于由于系统原因造成业务处理失败的事件,需要记录错误日志。非系统原因的业务处理失败,不应该记录错误日志(推荐使用warn级别),避免错误日志过大,影响紧急情况下的故障分析和诊断;,第二章重要规范,2、记录操作日志 对于商户/用户密码变更,订单/支

5、付单状态变更等安全性要求较高的操作,需要调用logServer添加操作日志。日志内容应该包括关键要素,方便后续追踪。 3、用户敏感信息保护 用户的敏感信息包括:密码、短信验证码、支付验证码、身份证号、银行卡号、信用卡CVV码、信用卡有效期、银行密钥,商户密钥等信息;用户敏感信息不能泄露,否则可能会带来不安全因素。 可能会导致敏感信息泄露的方式有:Logger、URL的get参数QQ聊天(在为商户客服或技术解答问题时,如果需要回复身份证号、信用卡CVV码、信用卡有效期、商户密钥等敏感数据时,要加*处理或单独私聊)。另外,项目中使用的log4j包是经过改造扩展后的日志输出jar包,会根据log4j

6、.xml的配置内容,自动对一些敏感信息进行加*处理。,第二章重要规范,2.3异常处理 1、java异常的体系结构 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。在Java中,异常分为受检查的异常,与运行时异常. 两者都在异常类层次结构中。 Java异常体系结构呈树状,其层次结构图如图所示:,第二章重要规范,第二章重要规范,受检查的异常:粉红色的是受检查的异常(checked exceptions),其必须被 trycatch语句块所捕

7、获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 CHecked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守。 运行时异常:绿色的异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除. 而声明为Error的,则属于严重错误,需要根据业务信息进行特殊处理,Error不需要捕捉。,第二章重要规范,2、异常的捕获 受检查的异常必须捕获,捕获后输出ERROR级别的日志。 调用子系统服务必须捕获异常,捕获后输出ERROR级别的日志。 对于

8、运行时异常,要认真分析是否有必要进行捕获,捕获后输出ERROR级别的日志。 ERROR级别的日志输出示例:logger.error(“XXX操作异常:” +e.getMassage(),e);,第二章重要规范,2.4安全规范 1、WEB安全规范 对于前台的web页面,必须加上表单防重复提交功能。 对于业务关键字段(用户编号、支付单号、支付金额等)需要加上防篡改的功能,否则可能被客户端恶意修改。 对于前台的web页面,严禁出现方便调试的后门页面。 2、其他安全规范 对系统资源的访问,使用后必须释放系统资源。这类资源包括:文件流、线程、网络连接、数据库连接等。 对于文件、流的IO操作,必须通过fi

9、nally关闭。 对于线程,线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 对于网络连接与数据库连接,必须由框架通过连接池提供,不允许应用中自行建立网络与数据库连接。 对于大批量数据的处理,要考虑是否可能会导致系统出现内存不足,最好的解决方式是采用分批处理。 避免将URL、文件名、系统开关参数、业务规则的可变参数等硬编码。,第二章重要规范,3、1包命名规则 java开发中产生的包分为两类,一类是与各业务系统相关的包;另一类是与业务系统无关的、可公用的包。 规则: 包名应全部是小写字母; 包名中不能出现下划线和其他特殊字符; 第一个字母不能是数字。 示例: 与业务系统相关的包命名格

10、式为:com. lianpay 其中:为项目英文简称或缩写;为模块英文名称或简称,如果无细分模块的话可省略模块名。 与业务系统无关的、可公用的包:com. lianpay.share./所有项目通用,第三章命名规范,3.2类接口命名规则 规则: 类的名称应使用名词; 类和接口首字母必须大写,每个单词的首字母应大写(骆驼法则); 接口名称应以大写I开始,接口实现类以Impl结尾。 示例: public class UserBase;/类 public interface IUserBaseService; /接口 public class UserBaseServiceImpl implemen

11、ts IUserBaseService; /接口实现类,第三章命名规范,3.3方法命名规则 规则: 方法名应是一个动词或动名结构; 方法名首字母应使用小写,其后每个单词的首字母大写(骆驼法则); 方法返回类型boolean类型时,一般以is作为前缀。 示例: getUserBase(); boolean isValid();,第三章命名规范,3.4变量命名规则 规则: 变量命名首字母小写,其后单词的首字母大写(骆驼法则); 变量名一般不要用数字、下划线、$等特殊字符开头; 变量名应简短且有意义,即,能够指出其用途,不要像出现a、b、str这样的命名。 采用该领域的术语对变量进行命名。 对于集合

12、或数组类型的变量,可以使用其复数形式命名。 示例: String fileName; String fileNames; List fileList;,第三章命名规范,两变量比较时,变量命令尽可能具有意义。 String version; String serverVersion;/ 避免使用 version1 String clientVersion;/避免使用version2,第三章命名规范,3.5常量命名规则 常量名所有字母全部大写,单词间以_隔开。 public static final String TRANS_QUERY_RESULT_LIST = “result“;,第三章命名规

13、范,4.1注释的介绍 在Java程序的编写过程中我们需要对一些程序进行注释,除了自己方便阅读,更为别人更好理解自己的程序,所以我们需要进行一些注释,可以是编程思路或者是程序的作用,总而言之就是方便自己他人更好的阅读。 对于Java注释主要有三种: 1、 / 注释一行 2、 /* */ 注释若干行 3、 /*/文档注释(javadoc提取注释的工具/*注释内容*/),第四章注释规范,4.2类注释规范 1、添加注释模板 (1)在MyEclipse中,打开Window-Preference-Java-Code Style-Code Template-Comments-Types (2)参照(3)注释

14、规范,点击Edit对应设置即可。 (3)注释规范: /* * Copyright: 连连银通电子支付有限公司 * Description: $todo(用一句话描述该类做什么) * author: guoyx * date: $date $time * version: V1.0 */,第四章注释规范,2、配置自动注释 (1)在MyEclipse中,打开Window-Preference-Java-Code Style-Code Template-Code-New Java files (2)参照(3)注释规范,点击Edit对应设置即可。 (3)注释规范: $filecomment $pack

15、age_declaration /* * Copyright: 连连银通电子支付有限公司 * Description: $todo(用一句话描述该类做什么) * author: guoyx * date: $date $time * version: V1.0 */ $typecomment $type_declaration,第四章注释规范,4.3方法注释 1、添加注释模板 1、在MyEclipse中,打开Window-Preference-Java-Code Style-Code Template-Comments-Methods 2、参照(3)注释规范,点击Edit对应设置即可。 3、注

16、释规范: /* * Title: $enclosing_method * Description: $todo(这里用一句话描述这个方法的作用) * param: $tags * return: $return_type * throws */,第四章注释规范,4.4程序块注释规范 注释要点: 语句和程序块的注释要在被说明语句的上面行书写,缩进方式与被说明语句相同; 对不易理解的分支条件表达式加注释; 复杂的循环,说明出口条件; 过长的方法实现,按功能实现进行分段概括说明; 示例:,第四章注释规范,4.5废弃代码注释保留 注解要点: 用“ /* */ ”实现废弃代码保留,不允许使用“ / ”; 尽量完整的将代码注释掉,最好完整的注释掉一个程序段; 请说明注释掉的原因、人员和时间; 示例:,第四章注释规范,4.6特殊代码注释 代码质量不好但能正常运行,或者还没有实现的代码用/TODO: 声明 存在错误隐患的代码用/FIXME:声明 示例:,第四章注释规范,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号