




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA编码规范1 / 27目 录JAVA编码规范11 概述71.1 范围71.2 说明72 文件体系结构82.1 文件体系规则8规则2.1.1 JSP文件目录结构8建议2.1.2 Java文件目录结构82.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方法写在类的底部93 文件命名规则10规则
2、3.1 Structs配置文件命名10规则3.2 JSP文件命名10规则3.3 Java文件命名104 排版规则114.1 语句排版规则11规则4.2.1简单语句每行至多包含一条语句11规则4.2.2 复合语句被括其中的语句缩进一个层次11规则4.2.3 左大括号""应位于复合语句起始行的行尾,前面需加一个空格符;右大括号""应另起一行并与复合语句首行对齐。11规则4.2.4 必须用""和""将if内的语句括起来。(即使只有一条语句的情况下)11规则4.2.7 在多层嵌套的for语句中,应在for上一行增加逻辑注释
3、12建议4.2.14 “=”等比较符前后加一个空格125 注释规则135.1 类注释规则13规则5.1.1 使用JavaDoc,列出功能、版本信息、日期、作者和版权声明13规则5.1.2 如果对文件进行了修改,必须说明修改目的、修改日期、修改人,并变更版本信息135.2 类方法注释规则14规则5.2.1 用中文写出每个参数和返回值的含义14规则5.2.2 当修改其他组员创建的类时,增加author标签145.3 单行注释规则14规则5.4.1单行注释位于所描述内容之前14规则5.4.2 单行注释之前留一行空行145.3.1 接口145.3.2 局部变量145.3.3 方法155.3.4 方法内
4、部注释156 命名规则166.1 包命名规则16规则6.1.1包的名字全部小写166.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 命名方式采用匈牙利式176.3 接口命名规则17规则
5、6.3.1接口的规则与类相同17规则6.3.2接口名前面加“I”186.4 方法命名规则18规则6.4.1方法名是动词名词对,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写18建议6.4.2方法名应准确描述方法的功能,不要使用无意义或含义不清的动词为方法命名186.5 变量命名规则18规则6.5.1 变量名采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写18规则6.5.2 除一次性的临时变量(如for循环变量)以外,不能用单个字符的变量名18规则6.5.3 如果变量名代表容器(collection),如Array, Vector等,在变量名后加“List”
6、19建议6.5.4 变量名要简短且富于描述,能够指出其用途19建议6.5.5 临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型196.6 常量命名规则19规则6.6.1 类常量全部用大写字母,单词间用下划线隔开196.7 方法的参数命名规则19规则6.7.1使用全英文命名。首字母小写,后续单词首字母大写196.8 数组命名规则19规则6.8.1将 放在类型后196.9 Boolean getter 方法命名规则20规则6.9.1所有布尔型get方法必须用单词”is”作为前缀。”is”为小写,后续单词首字母大写,其余字母小写206.10 构造方法命名规则2
7、0规则6.12.1 构造方法使用类名207 程序日志打印21规则7.1后台不允许出现sysout控制台打印日志;21规则7.2日志打印类统一采用“mons.logging.Log”,不允许使用其它jar包提供的类似方式;21规则7.3日志级别INFO、ERROR;21规则7.4异常信息的日志打印;21规则8.8 引用SPRING配置的bean统一采用注解方式按类型注入218 方法22规则9.1 用注释详细说明每个参数的作用、取值范围及参数间的关系229 程序效率23规则11.1 不要在循环内执行重复操作23规则11.2 在对字符串有附加操作时,使用StringBuffer而非String。使用
8、StringBuffer性能会好很多23建议11.3 显式地把已经不再被引用的对象赋为null23建议11.4 不要频繁初始化对象2310 质量保证2510.1 质量保证规则25规则12.1 打开的数据库连接、文件在使用后必须关闭25建议12.2 合理设计程序,避免占用太大内存2510.2 安全规则25规则12.3不要使用不推荐的API25规则12.5在程序中出现连续get值时,需判断是否为空,杜绝空指针2511 WEB编码规范2611.1 html、css、js、images、jsp均须按照约定目录存放;26JavaScript书写规范2611.2 注释规范26附录A 词典规范27A.1 动
9、词词典27A.2 名词词典28 1 概述制定编码规范的最主要的目的是为了对产出代码的长期维护。通常负责维护代码的人大多都不是开发者本人,如果有一个统一的代码格式以及说明就可以减少混淆提高理解速度。因此,下列的编码规范是基于良好的编码习惯和可读性的原则来制定的。特别说明:不反对不提倡拷贝粘贴,但拷贝的每行代码务必清楚意思和原因!1.1 范围本文档仅仅是编码规范,它定义了所有代码编写者在编写Java代码时应遵守的一些规则和习惯。同时,还提供一些有关编写Enterprise JavaBean代码的命名规则和习惯。本规范采用以下术语描述: 规则:编程时强制必须遵守的原则。建议:编程时需考虑的事项。 说
10、明:对此规则或建议进行必要的解释。 示例:对此规则或建议从正、反两个方面给出例子。1.2 说明本文档中标注规则的地方为强制要求。鼓励对当次需求变更涉及代码进行重构,简单原则:发现重复抽取不同点封装共同点并将不同点传参递归。特别注意:在没有充分测试保证的前提下,避免主动对涉及其它重要业务功能的代码进行重构。2 文件体系结构2.1 文件体系规则规则2.1.1 WebRoot文件目录结构|images 存放图片|resources |css 存放样式表|js 存放javascript脚本|模块分类名 |WEB-INF 存放页面和配置文件|config 存放log4j文件、jdbc文件|jsp 存放j
11、sp页面|模块分类名注:jsp页面引用的js名称必须相同,基于js和jsp文件夹下的路径必须相同规则2.1.2 Java文件目录结构com.56sino|base存放基础类|controller存放接口控制类|dao存放数据接口类|impl存放数据接口实现类|filter存放过滤类|listener存放监听类|service存放服务接口类|impl存放服务实现类|util存放公共工具类|<模块分类目录>|controller存放模块接口控制类|dao存放模块数据接口类|impl存放模块数据接口实现类|entity存放模块实体类|service存放模块服务接口类|impl存放模块服务
12、接口实现类|sql存放Mybatis/Ibatis Sql文件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.
13、1 JSP文件命名xxxMain.jsp主页面xxxInsert.jsp新增页面xxxUpdate.jsp 修改页面xxxDetail.jsp 详情页面规则3.2 Java文件命名接口控制类模块名Controller.java数据接口类I模块名Dao.java数据接口实现类模块名DaoImpl.java服务接口类I模块名Service.java服务接口实现类模块名ServiceImpl.java实体类数据库表名(去掉数据库前缀、下划线).javasql文件实体类名.sqlMap4 排版规则4.1 语句排版规则规则4.2.1简单语句每行至多包含一条语句argv+; / 正确argc-; / 正确
14、argv+; argc-; / 禁止这样使用!int i = 0;/ 正确int j = 0;/ 正确Int i = 0, j = 0;/ 禁止这样使用!规则4.2.2 复合语句被括其中的语句缩进一个层次规则4.2.3 左大括号""应位于复合语句起始行的行尾,前面需加一个空格符;右大括号""应另起一行并与复合语句首行对齐。示例:for (initialization; condition; update) statements;规则4.2.4 必须用""和""将if内的语句括起来。(即使只有一条语句的情况下)正确:
15、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 参数类型及含义 * re
16、turn 如有返回值需注明返回数据类型及含义 * author 作者 */规则5.1.3 单行注释双斜杠+空格+内容除if else注释在左大括号后以外,其余注释于代码的上一行规则5.1.4 类属性必须用单行注释其含义6 命名规则6.1 包命名规则规则6.1.1包的名字全部小写,所有包必须基于con.56sino6.2 类命名规则规则6.2.1类名用英文名称,禁止汉语拼音。规则6.2.2类名是名词,采用大小写混合的方式,每个单词的首字母大写规则6.2.3类名不要用复数规则6.2.4类名使用完整单词,避免缩写词(除非该缩写词被广泛使用)规则6.2.5 尽量简短易懂规则6.2.6 接口控制类后加C
17、ontroller规则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分页xxx
18、Page规则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 临时变量通常被取名
19、为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型6.5 常量全部用大写字母,单词间用下划线隔开6.6 数组命名规则,将放在类型后6.7 Boolean getter 方法命名规则规则6.7.1所有布尔型get方法必须用单词”is”作为前缀。”is”为小写,后续单词首字母大写,其余字母小写6.8 sqlMap文件命名规范规则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 (int i = 0; i < dw.getRowCount(); i+) 应写成:int rows = dw.getRowCount();for (int i = 0; i <row
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022圣诞节气氛感言(8篇)
- 老旧停车场智能化改造可行性研究报告(参考模板)
- 五以内的加法大班教学
- 年货促销策划方案
- 初创公司股权设计
- 河南司法警官职业学院《大数据平台及应用》2023-2024学年第二学期期末试卷
- 广西体育高等专科学校《土建工程基础》2023-2024学年第二学期期末试卷
- 福州科技职业技术学院《虚拟仪器技术》2023-2024学年第二学期期末试卷
- 江苏理工学院《电气检测技术》2023-2024学年第二学期期末试卷
- 安徽扬子职业技术学院《法律文献检索》2023-2024学年第二学期期末试卷
- 2025届山东省师大附中高考数学一模试卷含解析
- 房产出租授权委托书
- 音乐引导的运动节奏
- 起重工的安全技术操作规程(4篇)
- 2024年官方兽医考试题库及参考答案
- 污水处理工程的安全管理考核试卷
- 装配式围挡施工方案
- 2024年黑龙江齐齐哈尔市纪委监委择优调入人员10人管理单位遴选500模拟题附带答案详解
- 网络系统集成(项目式微课版)-课程标准
- 2023年国家知识产权局知识产权检索咨询中心招聘笔试真题
- 人力资源管理:基于创新创业视角学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论