java编码规范v10.docx
- 文档编号:12026671
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:16
- 大小:24.16KB
java编码规范v10.docx
《java编码规范v10.docx》由会员分享,可在线阅读,更多相关《java编码规范v10.docx(16页珍藏版)》请在冰豆网上搜索。
java编码规范v10
JAVA编码规范
目录
JAVA编码规范1
1概述7
1.1范围7
1.2说明7
2文件体系结构8
2.1文件体系规则8
规则2.1.1JSP文件目录结构8
建议2.1.2Java文件目录结构8
2.2源文件结构规则9
规则2.2.3类变量的声明顺序是public,protected,package,private9
规则2.2.4变量、常量的注释应放在其上方相邻位置9
规则2.2.5用递增的方式写构造器(比如:
参数多的写在后面)9
规则2.2.6类变量的存取方法:
get和set方法9
规则2.2.7如果定义main()方法,必须将main方法写在类的底部9
3文件命名规则10
规则3.1Structs配置文件命名10
规则3.2JSP文件命名10
规则3.3Java文件命名10
4排版规则11
4.1语句排版规则11
规则4.2.1简单语句每行至多包含一条语句11
规则4.2.2复合语句被括其中的语句缩进一个层次11
规则4.2.3左大括号"{"应位于复合语句起始行的行尾,前面需加一个空格符;右大括号"}"应另起一行并与复合语句首行对齐。
11
规则4.2.4必须用"{"和"}"将if内的语句括起来。
(即使只有一条语句的情况下)11
规则4.2.7在多层嵌套的for语句中,应在for上一行增加逻辑注释12
建议4.2.14“=”等比较符前后加一个空格12
5注释规则13
5.1类注释规则13
规则5.1.1使用JavaDoc,列出功能、版本信息、日期、作者和版权声明13
规则5.1.2如果对文件进行了修改,必须说明修改目的、修改日期、修改人,并变更版本信息13
5.2类方法注释规则14
规则5.2.1用中文写出每个参数和返回值的含义14
规则5.2.2当修改其他组员创建的类时,增加@author标签14
5.3单行注释规则14
规则5.4.1单行注释位于所描述内容之前14
规则5.4.2单行注释之前留一行空行14
5.3.1接口14
5.3.2局部变量14
5.3.3方法15
5.3.4方法内部注释15
6命名规则16
6.1包命名规则16
规则6.1.1包的名字全部小写16
6.2类命名规则17
规则6.2.1类名用英文名称,不用汉语拼音。
例如Customer,而不是KH17
规则6.2.2类名是名词,采用大小写混合的方式,每个单词的首字母大写17
规则6.2.3类名不要用复数17
规则6.2.4类名不要以“A”,“An”或“The”开头17
规则6.2.5如果不能选择适当的类名,而该类与数据库一个表紧密相关,再把数据库表名作为类名17
规则6.2.6使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)17
规则6.2.7命名方式采用匈牙利式17
6.3接口命名规则17
规则6.3.1接口的规则与类相同17
规则6.3.2接口名前面加“I”18
6.4方法命名规则18
规则6.4.1方法名是动词+名词对,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写18
建议6.4.2方法名应准确描述方法的功能,不要使用无意义或含义不清的动词为方法命名18
6.5变量命名规则18
规则6.5.1变量名采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写18
规则6.5.2除一次性的临时变量(如for循环变量)以外,不能用单个字符的变量名18
规则6.5.3如果变量名代表容器(collection),如Array,Vector等,在变量名后加“List”19
建议6.5.4变量名要简短且富于描述,能够指出其用途19
建议6.5.5临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型19
6.6常量命名规则19
规则6.6.1类常量全部用大写字母,单词间用下划线隔开19
6.7方法的参数命名规则19
规则6.7.1使用全英文命名。
首字母小写,后续单词首字母大写19
6.8数组命名规则19
规则6.8.1将[]放在类型后19
6.9Booleangetter方法命名规则20
规则6.9.1所有布尔型get方法必须用单词”is”作为前缀。
”is”为小写,后续单词首字母大写,其余字母小写20
6.10构造方法命名规则20
规则6.12.1构造方法使用类名20
7程序日志打印21
规则7.1后台不允许出现sysout控制台打印日志;21
规则7.2日志打印类统一采用“mons.logging.Log”,不允许使用其它jar包提供的类似方式;21
规则7.3日志级别INFO、ERROR;21
规则7.4异常信息的日志打印;21
规则8.8引用SPRING配置的bean统一采用@注解方式按类型注入21
8方法22
规则9.1用注释详细说明每个参数的作用、取值范围及参数间的关系22
9程序效率23
规则11.1不要在循环内执行重复操作23
规则11.2在对字符串有附加操作时,使用StringBuffer而非String。
使用StringBuffer性能会好很多23
建议11.3显式地把已经不再被引用的对象赋为null23
建议11.4不要频繁初始化对象23
10质量保证25
10.1质量保证规则25
规则12.1打开的数据库连接、文件在使用后必须关闭25
建议12.2合理设计程序,避免占用太大内存25
10.2安全规则25
规则12.3不要使用不推荐的API25
规则12.5在程序中出现连续get值时,需判断是否为空,杜绝空指针25
11WEB编码规范26
11.1html、css、js、images、jsp均须按照约定目录存放;26
JavaScript书写规范26
11.2注释规范26
附录A词典规范27
A.1动词词典27
A.2名词词典28
1概述
制定编码规范的最主要的目的是为了对产出代码的长期维护。
通常负责维护代码的人大多都不是开发者本人,如果有一个统一的代码格式以及说明就可以减少混淆提高理解速度。
因此,下列的编码规范是基于良好的编码习惯和可读性的原则来制定的。
特别说明:
不反对不提倡拷贝粘贴,但拷贝的每行代码务必清楚意思和原因!
1.1范围
本文档仅仅是编码规范,它定义了所有代码编写者在编写Java代码时应遵守的一些规则和习惯。
同时,还提供一些有关编写EnterpriseJavaBean代码的命名规则和习惯。
本规范采用以下术语描述:
规则:
编程时强制必须遵守的原则。
建议:
编程时需考虑的事项。
说明:
对此规则或建议进行必要的解释。
示例:
对此规则或建议从正、反两个方面给出例子。
1.2说明
本文档中标注规则的地方为强制要求。
鼓励对当次需求变更涉及代码进行重构,简单原则:
发现重复——抽取不同点——封装共同点并将不同点传参——递归。
特别注意:
在没有充分测试保证的前提下,避免主动对涉及其它重要业务功能的代码进行重构。
2文件体系结构
2.1文件体系规则
规则2.1.1WebRoot文件目录结构
|――images存放图片
|――resources
|――css存放样式表
|——js存放javascript脚本
|——模块分类名
|――WEB-INF存放页面和配置文件
|——config存放log4j文件、jdbc文件
|——jsp存放jsp页面
|——模块分类名
注:
jsp页面引用的js名称必须相同,基于js和jsp文件夹下的路径必须相同
规则2.1.2Java文件目录结构
com.56sino
|——base存放基础类
|——controller存放接口控制类
|——dao存放数据接口类
|——impl存放数据接口实现类
|——filter存放过滤类
|——listener存放监听类
|——service存放服务接口类
|——impl存放服务实现类
|——util存放公共工具类
|——<模块分类目录>
|——controller存放模块接口控制类
|——dao存放模块数据接口类
|——impl存放模块数据接口实现类
|——entity存放模块实体类
|——service存放模块服务接口类
|——impl存放模块服务接口实现类
|——sql存放Mybatis/IbatisSql文件
2.2源文件结构规则
规则2.2.3类变量的声明顺序是public,protected,package,private
公共变量(Public)
保护变量(Protected)
包一级别的变量(没有访问修饰符)
私有变量(Private)
根据实际变量的引用范围适当采用。
规则2.2.4变量、常量的注释应放在其上方相邻位置或右方
规则2.2.5用递增的方式写构造器(比如:
参数多的写在后面)
规则2.2.6类变量的存取方法:
get和set方法
规则2.2.7如果定义main()方法,必须将main方法写在类的底部
3文件命名规则
规则3.1JSP文件命名
xxxMain.jsp主页面
xxxInsert.jsp新增页面
xxxUpdate.jsp修改页面
xxxDetail.jsp详情页面
规则3.2Java文件命名
接口控制类模块名Controller.java
数据接口类I模块名Dao.java
数据接口实现类模块名DaoImpl.java
服务接口类I模块名Service.java
服务接口实现类模块名ServiceImpl.java
实体类数据库表名(去掉数据库前缀、下划线).java
sql文件实体类名.sqlMap
4排版规则
4.1语句排版规则
规则4.2.1简单语句每行至多包含一条语句
argv++;//正确
argc--;//正确
argv++;argc--;//禁止这样使用!
!
!
inti=0;//正确
intj=0;//正确
Inti=0,j=0;//禁止这样使用!
!
!
规则4.2.2复合语句被括其中的语句缩进一个层次
规则4.2.3左大括号"{"应位于复合语句起始行的行尾,前面需加一个空格符;右大括号"}"应另起一行并与复合语句首行对齐。
示例:
for(initialization;condition;update){
statements;
}
规则4.2.4必须用"{"和"}"将if内的语句括起来。
(即使只有一条语句的情况下)
正确:
If(condition){
System.out.println(“正确”);
}
错误:
if(condition)
System.out.println(“错误”);
规则4.2.5在多层嵌套的for语句中,应在for上一行增加逻辑注释
规则4.2.6“=”等运算符前后加一个空格
规则4.2.7重载方法按照参数个数升序排序
建议4.2.8行长度超过一屏时必须适当折行,以不出现横向滚动条为宜
5注释规则
5.1类注释规则
规则5.1.1类注释
示例:
/**
*@see类名注释
*@author作者
*/
规则5.1.2方法注释
示例:
/**
*@see方法功能
*@param参数类型及含义
*@return如有返回值需注明返回数据类型及含义
*@author作者
*/
规则5.1.3单行注释
双斜杠+空格+内容
除ifelse注释在左大括号后以外,其余注释于代码的上一行
规则5.1.4类属性必须用单行注释其含义
6命名规则
6.1包命名规则
规则6.1.1包的名字全部小写,所有包必须基于con.56sino
6.2类命名规则
规则6.2.1类名用英文名称,禁止汉语拼音。
规则6.2.2类名是名词,采用大小写混合的方式,每个单词的首字母大写
规则6.2.3类名不要用复数
规则6.2.4类名使用完整单词,避免缩写词(除非该缩写词被广泛使用)
规则6.2.5尽量简短易懂
规则6.2.6接口控制类后加Controller
规则6.2.7服务接口类前面加大写I,后加Service
规则6.2.8服务接口实现类后加ServiceImpl
规则6.2.9数据接口类前加大写I,后加Dao
规则6.2.10数据接口实现类后加DaoImpl
规则6.2.11实体类与对应数据库表名一致(去掉数据库前缀和下划线)
6.3方法命名规则
规则6.3.1首字母小写,其他首字母大写
规则6.3.2方法名准确描述方法的功能,禁止无意义或含义不清的方法名
规则6.3.3通用方法名
新增xxxInsert
修改xxxUpdate
删除xxxDelete
查询单体xxxLoad
查询结合xxxList/xxxMap
分页xxxPage
规则6.3.4前台js调用controller,controller调用service,service调用dao,dao调用sql语句,方法名保持一致
规则6.3.5参数用全英文命名。
首字母小写,后续单词首字母大写
6.4变量命名规则
规则6.4.1变量名采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写
规则6.4.2除一次性的临时变量(如for循环变量)以外,不能用单个字符的变量名
规则6.4.3如果变量名代表集合,如Map,List等,在变量名后加对应集合名字List,Map
建议6.4.4变量名要简短且富于描述,能够指出其用途
建议6.45临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型
6.5常量全部用大写字母,单词间用下划线隔开
6.6数组命名规则,将[]放在类型后
6.7Booleangetter方法命名规则
规则6.7.1所有布尔型get方法必须用单词”is”作为前缀。
”is”为小写,后续单词首字母大写,其余字母小写
6.8sqlMap文件命名规范
规则6.8.1实体类名字+.xml
规则6.8.2命名空间为实体类名字
规则6.8.3简称为实体类名字简称
7程序日志打印
规则7.1后台不允许出现sysout控制台打印日志;
规则7.2前台不允许出现alert输出语句,调试完成后必须删除
规则7.3日志打印类统一采用log4j打印,不允许使用其它jar包提供的类似方式;
规则7.4日志级别INFO、ERROR;
info为提示信息,error为错误信息
8程序效率
规则8.1不要在循环内执行重复操作
可在循环外调用一次的,就避免在循环内进行不必要的反复调用。
示例:
for(inti=0;i … } 应写成: introws=dw.getRowCount(); for(inti=0;i … } 规则8.2在对字符串有附加操作时,使用StringBuffer而非String。 建议8.3尽量避免多级嵌套循环 建议8.4尽量减少if中的判断条件 9Sql语句书写 规则9.1所有关键字大写,如SELECT,FROM,WHERE等 规则9.2语句折行,关键字前后加空格,逗号后加空格,运算符前后加空格 示例: SELECT字段1,字段2,字段3 FROM表1,表2 WHERE条件1AND条件2 ORDERBY条件 LIMIT 规则9.3一个方法使用一条sql,不允许sql复用 规则9.4按需查询,不允许SELECT* 建议9.5尽量减少子查询,尽量减少表关联 10数据类型转换 规则10.1使用数据类型.valueOf()转换 示例: String.valueOf(); Integer.valueOf(); 禁止xxx.toString(),Integer.pasInt(); 11异常处理 规则11.1公共方法直接抛出异常,调用时进行捕获处理 规则11.2dao层直接抛出异常,调用时进行捕获处理 规则11.3controller层禁止抛出异常,需对异常进行捕获处理 规则11.4service层禁止直接抛出异常,如受事物影响必须抛出异常,需在trycatch后,thrownewRuntimeException("错误信息"); 规则11.5方法异常处理 必须用trycatch捕获可能存在的异常,并调用日志服务公共类保存和打印错误日志,最后返回统一异常信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 编码 规范 v10