JAVA编码规范V10
java编码规范(华为)(完整资料).doc
![java编码规范(华为)(完整资料).doc](https://img.taocdn.com/s3/m/ee674735a45177232f60a2ac.png)
Java语言编码规范Prepared by拟制Date日期yyyy-mm-ddReviewed by 评审人Date日期yyyy-mm-ddApproved by批准Date日期yyyy-mm-ddRevision Record 修订记录Date 日期RevisionVersion修订版本Sec No.修改章节Change Description修改描述Author作者yyyy-mm-ddVx.xxTable of Contents 目录1. 范围 (4)2. 规范性引用文件 (4)3. 术语和定义 (4)4. 排版规范 (5)4.1. 规则 (5)4.2. 建议 (7)5. 注释规范 (8)5.1. 规则 (8)5.2. 建议 (13)6. 命名规范 (16)6.1. 规则 (16)6.2. 建议 (17)7. 编码规范 (19)7.1. 规则 (19)7.2. 建议 (23)8. JTEST规范 (25)8.1. 规则 (25)8.2. 建议 (26)1.范围本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。
本规范适用于使用Java语言编程的产品和项目。
2.规范性引用文件下列文件中的条款通过本规范的引用而成为本规范的条款。
凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。
凡是不注日期的引用文件,其最新版本适用于本规范。
序号编号名称《Java语言编程规范》1 公司- DKBA1040-2001.123.术语和定义规则:编程时强制必须遵守的原则。
建议:编程时必须加以考虑的原则。
格式:对此规范格式的说明。
说明:对此规范或建议进行必要的解释。
示例:对此规范或建议从正、反两个方面给出例子。
4.排版规范4.1.规则4.1.1.*程序块要采用缩进风格编写,缩进的空格数为4个。
JAVA编码规范
![JAVA编码规范](https://img.taocdn.com/s3/m/0f67a024ccbff121dd3683c4.png)
JA V A编码规范GWP项目研发组2003.6.17目录一、JA V A编程规范简介 (4)二、程序设计标准 (4)(一)命名约定 (4)(二)注释约定 (5)1、Java 注释语句类型 (6)2、快速浏览javadoc (8)三、成员函数标准 (9)(一)、命名成员函数 (9)1、命名存取成员函数 (10)(二)命名构造函数 (11)(三)成员函数的可见性 (11)(四)注释成员函数 (12)1、成员函数的函数头 (12)2、内部注释 (14)(五)编写清晰整洁的代码的技巧 (15)1、给代码加上注释 (16)2、让代码分段/缩进 (16)3、在代码中使用空白 (16)4、遵循30 秒条法则 (17)5、写短小单独的命令行 (17)6、说明运行顺序 (17)四、字段标准(字段/属性) (17)(一)命名字段 (18)1、命名组件 (18)2、命名常量 (19)3、命名集合 (20)(二)字段可见性 (20)(三)注释一个字段 (21)(四)使用存取成员函数 (22)1、为什么采用存取函数? (22)2、命名存取函数 (23)3、存取函数的高级技术 (24)4、存取函数的可见性 (30)(五)一定要初始化静态字段 (30)五、局部变量标准 (30)(一)命名局部变量 (31)1、命名流 (31)2、命名循环计数器 (31)3、命名异常对象 (32)(二)声明和注释局部变量 (32)六、成员函数参数标准 (32)(一)命名参数 (33)(二)注释参数 (33)七、类、接口、包和编译单元的标准 (34)(一)类的标准 (34)1、命名类 (34)2、注释类 (35)3、类的声明 (36)4、公共和保护接口最小化 (37)(二)接口标准 (37)1、命名接口 (38)2、注释接口 (38)(三)包的标准 (39)1、命名包 (39)2、注释包 (39)(四)编译单元标准 (40)1、命名编译单元 (40)2、注释编译单元 (40)八、错误处理和异常 (41)九、各种标准和版本 (42)(一)复用 (42)(二)导入类 (43)(三)优化Java 代码 (43)(四)编写Java 测试集 (44)十、成功的模式 (45)(一)有效地使用这些标准 (45)(二)其它导向成功代码的因素 (46)十一、概括 (48)(一)Java 命名约定 (48)(二)Java 注释约定 (50)1、Java 注释类型 (51)2、注释哪些部分 (52)(三)Java 程序设计约定 (54)十二、附录 (55)(一)标准缩写列表 (55)参考文献 (56)词汇表 (56)一、JA V A编程规范简介本文提供一整套编写高效可靠的 Java 代码的标准、约定和指南。
JAVA编程规范(修订)
![JAVA编程规范(修订)](https://img.taocdn.com/s3/m/649a9e3043323968011c9268.png)
JAVA编程规范1.1 Java文件名与文件组织结构1.一个java源文件不应该超过2 000行。
2.在Java源文件中应该包含一个单一的公共类(class)或接口(interface),这个公共类或公共接口,应该是这个源文件的第一个类或接口。
3.一个Java源文件一般由下面的顺序构成:(1)文件注释头(2)包名(package)(3)引入(import)声明(4)类(class)或接口(interface)的声明部分1.2 Java文件注释头Java类文件注释头是用来描述该类功能及其特点,以及相关开发信息的,如该类的关联类(通常情况下不描述Java系统核心类如java.util.Vector, ng.Thread等)、开发公司或单位、版权、作者、代码审定人该类所支持的JDK版本、该类版本、开发日期、最后更改日期、修改人、复审人等信息,下面就是一个Java类文件注释头:/****************************************************************** 该类功能及其特点的描述(例如:该类是用来……)** 该类未被编译测试过。
** @see(与该类相关联的类):(AnatherClass.java)*** 开发公司或单位:××软件有限公司研发中心** 版权:本文件版权归属××公司研发中心*** @author(作者):必胜利** @since(该文件所支持的JDK版本):Jdk1.3 或JDK1.42.在重点同时难以理解的地方另加注释。
方法体内的注释应该与其所描述的代码位于同一个层次上。
在一个块注释之前一般有一空白行用于做区分代码与注释的边界。
1.7 变量的声明初始化与放置1.7.1 变量声明1.在一般情况下我们建议每一行代码,只声明一个变量;2.如果变量名称较短并且又是同一数据类型同一结构类型,并且没有给变量初始化则可以在同一行声明;1.7.2 变量初始化尽量在变量声明的地方初始化,如果变量的初始化与有待于计算或处理后的值有关,则我们可以在取得这个值后对变量做初始化。
【安全开发】java安全编码规范
![【安全开发】java安全编码规范](https://img.taocdn.com/s3/m/38ad2755814d2b160b4e767f5acfa1c7aa0082c1.png)
} }
3表 达 式
3.1不 可 忽 略 方 法 的 返 回 值
忽略方法的放回值可能会导致无法预料的结果。
}
public static int divideInt(int v1, int v2) throws ArithmeticException { BigInteger b1 = BigInteger.valueOf(v1); BigInteger b2 = BigInteger.valueOf(v2); BigInteger res = intRangeCheck(b1.divide(b2)); return res.intValue();
程序接受数据可能来源于未经验证的用户网络连接和其他不受信任的来源如果未对程序接受数据进行校验则可能会引发安全问题
【安全开发】 java安全编码规范
申明:本文非笔者原创,原文转载自:https:///SecurityPaper/SecurityPaperweb/blob/master/_posts/2.SDL%E8%A7%84%E8%8C%83%E6%96%87%E6%A1%A3/2018-08-17-SDL-3java%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83.md
1输 入 验 证 和 数 据 合 法 性 校 验
程序接受数据可能来源于未经验证的用户,网络连接和其他不受信任的来源,如果未对程序接受数据进行校验,则可能会引发安全问题。
java代码格式规范
![java代码格式规范](https://img.taocdn.com/s3/m/0bd67d51804d2b160a4ec008.png)
SOAR项目Java开发规范1. 引言 (2)2.文件 (2)3.命名规则 (3)3.1基本的规则 (3)3.2常量命名 (3)3.3变量命名 (3)3.4方法命名 (5)3.5类和接口的命名 (5)3.6包的命名 (6)4.注释规范 (6)4.1 基本规则 (6)4.2 Java中有三种注释方式说明 (6)4.2.1文档注释/** */ (6)4.2.2行注释// (7)4.2.3块注释:/* */ (7)4.3类/接口注释 (7)4.4 变量注释 (8)4.5 方法注释 (9)4.6 修改记录 (10)5.编码规范 (10)5.1基本原则 (10)5.2类编写规范 (14)5.3变量 (14)5.4方法 (15)5.5 语言使用及书写规范 (16)1. 引言软件开发涉及到各方面人员的交互、协作,为了有效地进行项目开发的沟通,完善代码的维护和交付,有必要在一个小组中采用统一的软件开发标准。
一般来说,制定这样的标准有下列好处:方便软件维护。
据统计,80%的软件开发费用在维护,规范化的代码才方便维护,降低维护成本。
在软件的整个生命期内,期望一个编码人员从开始到该软件报废一致维护其代码是不现实的,必然需要不断地交付、协同好的编码规范能够大大增强代码的可读性,便于开发人员快速的理解新代码。
任何产品都需要好的包装。
我们可以把代码本身看作是一种产品,那么按照规范编程也是对这个“产品”的包装规范化的代码也是软件质量的保证手段之一,也是软件过程能够流畅的基础。
我们每个人必须牢牢树立这样的观念:你今天所编写的代码,会一直使用很多年,并且很有可能被其他人维护和改进。
所以,我们必须努力写出“干净”和易读的代码。
本文档适用于软件开发过程中开发人员,主要包括编码人员、测试人员,开发人员,规范必须严格遵守,否则程序被视为不合格程序。
注:本规范中标红的内容为强制性遵循内容,开发人员必须遵守。
蓝色为强烈建议性内容,最好遵守,这样可以避免程序出现一些莫名奇妙的问题。
JAVA编码(代码)规范(WORD版)
![JAVA编码(代码)规范(WORD版)](https://img.taocdn.com/s3/m/69e7d7dbce2f0066f53322ed.png)
Java编码规范及实践目录Java编码规范及实践 (1)1.2术语 (2)1.3约束 (3)||!(condition5 && condition6)) { (14)4.1一般命名规范 (14)IQuery, IDataAccess,IReportBuilder (15)MAX_TIMES, DEFAULT_NAME (15)4.2特殊命名规范 (17)AbstractReportBuilder,AbstractBeanFactory (18)AccessException, RuntimeException (19)5.2一般原则 (20)1.代码应该和注释保持同步,如果代码和注释不同步,则阅读代码的人会 (20)2.注释尽量简洁,尺度没有准确的定义,大部分人能明白即可,可以将自 (20)Result getResult() throws Exception{ (21)Object getAction(); (22)JavaDoc 工具不要改变格式. (22)Get a default date/time formatter that uses the SHORT (23)Thread.sleep(1000); (24)Derived,如果一个方法可以接受基类对象b 的话:method1(Base b), (25)7.1工厂模式 (26)7.1.1简单工厂 (26)7.1.2工厂方法 (26)7.2单例模式 (27)Client: (27)7.3适配器模式 (28)7.4组合模式 (29)Client: (29)7.5外观模式 (30)Client: (30)7.6代理模式 (31)7.7命令模式 (32)Client: (33)7.8观察者模式 (33)7.9策略模式 (35)Client: (35)IKeyPairGenerable desGenerator = (35)IKeyPairGenerable rsaGenerator = (36)IKeyPairGenerable ideaGenerator = (36)KeyPairManager manager = new KeyPairManager(); (36)7.10模版方法模式 (36)7.11参观者模式 (38)总价格 (40)Client: (40)第1章概述1.1前言代码之于程序员,就像零件之于机械工,庄稼之于农民,它是软件的基石,一行行代码都是程序员的心血经过日日夜夜凝结成的。
Java10个常见的违规编码
![Java10个常见的违规编码](https://img.taocdn.com/s3/m/630deaccbb4cf7ec4afed042.png)
1. public static final String MY_APP = "My Application"; 2. 3. private void someMethod(){ 4. logger.log(MY_APP + e); 5. ....
Ctrl + Shift + O——组织输入并删除未使用的代码
代替手动调用这两个函数,只需根据 Eclipse 自动格式和自动组织选项,可以随时保存文件。
操作步骤,在 Eclipse 中进入 Window -> Preferences -> Java -> Editor -> Save Actions,然后以选定的方式保存,最后检查 Format source code + Organize imports。
作者veerasundar在清理代码工作时发现一些常见的违规编码因此veerasundar把针对常见的一些违规编码总结成一份列表以便帮助java爱好者提高代码的质量和可维最近我给java项目做了一次代码清理工作
Java 中十个常见的违规编码
发表于 23 小时前| 次阅读| 来源 CSDN 编译| 27 条评论| 作者夏梦竹
JavaEclipse 代码编程 摘要:作者 Veera Sundar 在清理代码工作时发现一些常见的违规编码,因此,Veera Sundar 把针对常见的一些违规编码总结成一份列表,以便帮助 Java 爱好者提高代码的质量和可维 护性。 最近,我给 Java 项目做了一次代码清理工作。经过清理后,我发现一组常见的违规代码(指 不规范的代码并不表示代码错误)重复出现在代码中。因此,我把常见的这些违规编码总结 成一份列表,分享给大家以帮助 Java 爱好者提高代码的质量和可维护性。
JAVA编码规范
![JAVA编码规范](https://img.taocdn.com/s3/m/ac1f1960a417866fb84a8e42.png)
第二章重要规范
( 6 )服务端,对关键交易请求要素进行日志输出,交易处理完成后 输出处理结果; ( 7 )和外部系统交互,可将日志输出详细些,日志中尽量包括:请 求地址、内容、http响应码等状态信息、外部系统响应内容等信息; ( 8 )数据库操作,捕获SQLException并对异常进行输出,可增加数 据库操作错误排查; ( 9 )捕获异常后要对异常信息输出ERROR级别的日志,输出示例: logger.error(“XXX操作异常:”+e.getMassage(),e); ( 10 ) ERROR级别日志输出一般原则:对于由于系统原因造成业务 处理失败的事件,需要记录错误日志。非系统原因的业务处理失败, 不应该记录错误日志(推荐使用warn级别),避免错误日志过大,影 响紧急情况下的故障分析和诊断;
第三章命名规范
3、1包命名规则 java开发中产生的包分为两类,一类是与各业务系统相关的 包;另一类是与业务系统无关的、可公用的包。 规则:
包名应全部是小写字母; 包名中不能出现下划线和其他特殊字符; 第一个字母不能是数字。
示例:
与业务系统相关的包命名格式为:com. lianpay.<projectname>.<modulename>
其中:<projectname>为项目英文简称或缩写; <modulename>为模块英文名称或简称,如果无细分模块的话可 省略模块名。
与业务系统无关的、可公用的包:com. lianpay.share.<modulename>//所有项目通用
第三章命名规范
3.2类接口命名规则 规则:
类的名称应使用名词; 类和接口首字母必须大写,每个单词的首字母应大写(骆驼法 则); 接口名称应以大写I开始,接口实现类以Impl结尾。
java 代码规范
![java 代码规范](https://img.taocdn.com/s3/m/9fb9af4e02d8ce2f0066f5335a8102d276a2612d.png)
java 代码规范Java代码规范是指在Java程序设计中遵循的一些规则和约定,旨在提高代码的可读性、可维护性和可移植性。
遵守代码规范可以帮助团队成员更好地理解和协作开发,提高代码的质量和可靠性。
本文将围绕Java代码规范展开讨论,包括命名规范、代码风格、注释规范、异常处理等方面的内容。
一、命名规范1.包名规范包名应该全小写,连接符可以使用小写字母和下划线,不推荐使用数字。
包名应该能够清晰地表达包所包含的内容,不要使用太长或者太短的包名。
2.类名规范类名应该采用驼峰命名法,首字母大写,类名应该能够清晰地表达类的用途,不要使用太长或者太短的类名。
如果类名由多个单词组成,应该遵循每个单词首字母大写的命名规范。
3.接口名规范接口名应该采用驼峰命名法,首字母大写,接口名应该能够清晰地表达接口的用途,不要使用太长或者太短的接口名。
如果接口名由多个单词组成,应该遵循每个单词首字母大写的命名规范。
4.变量名规范变量名应该采用驼峰命名法,首字母小写,变量名应该能够清晰地表达变量的用途,不要使用太长或者太短的变量名。
如果变量名由多个单词组成,应该遵循每个单词首字母小写的命名规范。
5.常量名规范常量名应该全大写,单词之间使用下划线分隔,常量名应该能够清晰地表达常量的用途,不要使用太长或者太短的常量名。
6.方法名规范方法名应该采用驼峰命名法,首字母小写,方法名应该能够清晰地表达方法的用途,不要使用太长或者太短的方法名。
如果方法名由多个单词组成,应该遵循每个单词首字母小写的命名规范。
二、代码风格1.缩进和空格缩进使用4个空格,不使用tab键。
在操作符前后使用空格,增强代码的可读性。
2.大括号的使用在类定义、方法定义、控制结构等的语句块后面使用大括号,增强代码的可读性。
3.代码行长度每行代码的长度不要超过80个字符,超过80个字符的代码应该使用换行符进行分割。
4.引号的使用字符串常量应该使用双引号,字符常量应该使用单引号。
java 编码规范
![java 编码规范](https://img.taocdn.com/s3/m/b30a90e7d05abe23482fb4daa58da0116c171f98.png)
java 编码规范《Java编码规范》1. 代码风格- 代码缩进:使用4个空格进行缩进,不使用制表符。
- 行长限制:每行代码不超过80个字符,超出则进行换行。
- 行尾空格:行尾不留空格。
- 行尾注释:行尾注释与代码之间至少保留2个空格的距离。
- 命名规范:使用驼峰命名法,类名首字母大写,变量和方法名首字母小写。
- 常量命名:常量使用全大写字母,并用下划线分隔单词。
- 空行:类与方法之间保留一个空行,方法内逻辑块之间保留一个空行。
2. 注释规范- 文件注释:每个源文件的头部必须包含文件注释,说明该文件的作者、日期等信息。
- 类注释:每个类的头部必须包含类注释,描述该类的作用、用法等。
- 方法注释:每个方法必须包含方法注释,描述该方法的功能、参数、返回值等。
- 代码注释:在代码中需要加入注释说明的地方,添加合理的注释来增加代码可读性。
3. 包和导入规范- 包名规范:包名全部小写,多个包名之间用英文句点"."分隔,采用反域名形式命名。
- 导入规范:不要使用通配符"*"导入整个包,应明确导入所需的类。
4. 类和接口规范- 类结构顺序:依次按照成员变量、构造方法、普通方法的顺序来编写类的结构。
- 成员变量声明:先声明公有的静态常量,再声明私有的静态变量,接着声明私有的实例变量。
- 构造方法:在类的开头部分声明构造方法,按照方法名和参数顺序进行编写。
- 方法和变量:局部变量应放在使用的最近位置上,避免声明太早或太迟,增加代码的可读性。
5. 异常处理规范- 异常的捕获和处理:在可能发生异常的地方进行捕获和处理,而不是简单地将异常抛出给上层调用者。
- 不要捕获并忽略异常:捕获异常后应该进行适当的处理,而不是简单地将异常信息打印出来或者忽略它们。
6. 标准化代码结构- 采用分层结构:将代码按照功能、模块进行划分,每个模块或类负责一部分功能。
- 逻辑清晰:保持代码逻辑清晰,避免重复、冗余的代码,使用合适的设计模式来优化代码结构。
阿里JAVA编码规范手册
![阿里JAVA编码规范手册](https://img.taocdn.com/s3/m/e72854ee9e31433239689374.png)
目录前言 (1)一、编程规约 (2)(一) 命名规约 (2)(二) 常量定义 (4)(三) 格式规约 (5)(四) OOP规约 (7)(五) 集合处理 (11)(六) 并发处理 (13)(七) 控制语句 (16)(八) 注释规约 (17)(九) 其它 (18)二、异常日志 (20)(一) 异常处理 (20)(二) 日志规约 (21)三、MySQL规约 (23)(一) 建表规约 (23)(二) 索引规约 (25)(三) SQL规约 (27)(四) ORM规约 (28)四、工程规约 (29)(一) 应用分层 (29)(二) 二方库规约 (30)(三) 服务器规约 (32)五、安全规约 (33)附1:版本历史 (34)附2:本规约专有名词 (34)附3:法律声明 (34)(注:全文浏览时请使用PDF左侧导航栏)前言《阿里巴巴Java开发手册》是阿里巴巴集团技术团队的集体经验总结,经历了多次大规模一线实战的检验及不断的完善,反馈给广大开发者。
现代软件行业的高速发展对于开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。
比如:数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致维护困难;没有鉴权的漏洞代码被黑客攻击等等。
所以本手册以Java开发者为中心视角,划分为编程规约、异常日志规约、MySQL规约、工程规约、安全规约五大块,再根据内容特征,细分成若干二级子目录。
根据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。
对于规约里的内容,“说明”对内容做了引申和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需要提防的雷区,以及真实的错误案例。
本手册的愿景是码出质量、码出高效。
代码的字里行间流淌的是软件生命中的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升质量意识。
另外,现代软件架构都需要协同开发完成,高效考虑的是降低协同成本,所谓无规矩不成方圆,无规范不能协作。
java编码规范
![java编码规范](https://img.taocdn.com/s3/m/dc839ed9a58da0116c1749aa.png)
编码规范1.编写目的本规范的目的在于编写可靠的、一致的、便于理解的JAVA源代码,并且写出的代码被其他人阅读,所有的JAVA代码保持良好的致性,容易在以后的阶段中进行维护和升级。
同时,也是为了通过一定时间的实践,增加我们的软件产品的投入产出量,以提高我们的工作效率。
2.适应范围适用于JAVA程序开发人员,或后续开发人员。
可以方便系统的开发与维护,使系统开发与维护可以顺利展开。
3.代码命名一般原则我们开发的是一个JSP新闻发布系统,用的编码方式是JAVA,因此用的命名总原则是:3.1.用全英文单词命名的方式,准确地描述变量、属性、类等。
如:使用firstNname、grandTotal、等命名就比x1、y1、fn等更容易让人理解其含义,尽管它们的长度要大一些。
3.2.采用一些更加准确的术语来命名。
例如:如果我们的用户称他们的clients为customers ,那么我们就应该用customer来命名,而不是采用client来命名。
这是一些细微的地方,但也希望能注意。
3.3.采用大小写混合的方式来命名,以便命名有很好的可读性。
在JAVA代码中,将采用如下原则:类或接口命名中每个单词的首字母均大写,而单词的剩余部分均小写。
其它像变量、成员方法、属性等除第一个单词全部小写以外,其它单词的首写字母均大写,而单词的剩余部分均小写。
3.4.尽量少用单词的缩写形式,但如果一定要用,则选择大家通用的缩写方式,并且要在本JAVA源代码中坚持用它,而不要一会用这种缩写方式,一会用那种缩写方式。
比如,如果要用“number”的缩写方式,则可用“no”或“num”两种缩写方式,而不要用“nu”这种大家不常用的缩写方式,并且要保持不变。
3.5.尽量避免太长的命名,一般以少于20个字符为宜。
3.6.尽量避免使用这样命名:两个或多个命名仅仅是其中的有些字符大小写不一样,或者仅仅是其中有些单词是单复数之区别。
例如:persistentObject与persistentObjexts;anSqlDatabase与anSQLDataBase等。
Java代码规范详细版
![Java代码规范详细版](https://img.taocdn.com/s3/m/2c0df2324028915f814dc22d.png)
Java代码规范1。
标识符命名规范1.1 概述标识符的命名力求做到统一、达意和简洁。
尽量做到每个人按照规范来,多人开发如一人开发一样。
1.1.1 统一统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用provider,但是我们只能选定一个使用,至少在一个Java项目中保持统一.统一是作为重要的,如果对同一概念有不同的表示方法,会使代码混乱难以理解。
即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。
1。
1.2 达意达意是指,标识符能准确的表达出它所代表的意义,比如:newSupplier,OrderPaymentGatewayService等;而supplier1, service2,idtts等则不是好的命名方式。
准确有两成含义,一是正确,而是丰富。
如果给一个代表供应商的变量起名是order,显然没有正确表达。
同样的,supplier1, 远没有targetSupplier意义丰富。
1。
1。
3 简洁简洁是指,在统一和达意的前提下,用尽量少的标识符.如果不能达意,宁愿不要简洁。
比如:theOrderNameOfTheTargetSupplierWhichIsTransfered 太长,transferedTargetSupplierOrderName则较好,但是transTgtSplOrdNm就不好了.省略元音的缩写方式不要使用,我们的英语往往还没有好到看得懂奇怪的缩写.1。
1.4 骆驼法则Java中,除了包名,静态常量等特殊情况,大部分情况下标识符使用骆驼法则,即单词之间不使用特殊符号分割,而是通过首字母大写来分割。
比如: supplierName,addNewContract,而不是supplier_name, add_new_contract.1.1。
5 英文vs 拼音尽量使用通俗易懂的英文单词,如果不会可以向队友求助,实在不行则使用汉语拼音,避免拼音与英文混用。
java编码规范_缩进和注释
![java编码规范_缩进和注释](https://img.taocdn.com/s3/m/e1ec99a80129bd64783e0912a216147917117e18.png)
java编码规范_缩进和注释1. 缩进排版(Indentation)4个空格常被作为缩进排版的⼀个单位。
缩进的确切解释并未详细指定(空格 vs. 制表符)。
⼀个制表符等于n个空格(视具体的编辑器⽽定,Eclipse默认⼀个制表符为4个字符)。
3.1 ⾏长度(Line Length)尽量避免⼀⾏的长度超过80个字符,因为很多终端和⼯具不能很好处理之。
注意:鉴于Eclipse开发⼯具⼯作区的左侧和右侧都被⾮代码编辑器所占据,因此建议每⾏的代码长度不要超过70个字符。
3.2 换⾏(Wrapping Lines)当⼀个表达式⽆法容纳在⼀⾏内时,可以依据如下⼀般规则断开之:·在⼀个逗号后⾯断开;·在⼀个操作符前⾯断开;·宁可选择较⾼级别(higher-level)的断开,⽽⾮较低级别(lower-level)的断开;·新的⼀⾏应该与上⼀⾏同⼀级别表达式的开头处对齐。
·如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格,或者以调⽤参数的⾸个括号对齐,或者以⾸个运对齐。
以下是断开⽅法调⽤的⼀些例⼦:someMethod(longExpression1, longExpression2, longExpression3,longExpression4,longExpression5);var = someMethod1(longExpression1,someMethod2(longExpression2, longExpression3));以下是两个断开算术表达式的例⼦。
前者更好,因为断开处位于括号表达式的外边,这是个较⾼级别的断开。
longName1 = longName2 * ( longName3 + longName4 - longName5 ) +4 * longname6; //推荐使⽤longName1 = longName2 * ( longName3 + longName4- longName5 ) + 4 * longname6; //应避免这样使⽤以下是两个缩进⽅法声明的例⼦。
java代码开发规范
![java代码开发规范](https://img.taocdn.com/s3/m/5830a527bc64783e0912a21614791711cc7979f1.png)
java代码开发规范⼀编码规范1.1 命名规范1. 代码中的命名均不能以特殊字符(如下划线、$#符号)开始或结束。
反例: _name / #Object2. 代码中的命名严禁使⽤拼⾳与英⽂混合的⽅式,更不允许直接使⽤中⽂的⽅式。
反例: toubao / lipei。
3. 类名使⽤UpperCamelCase风格,必须遵从驼峰形式。
正例:CommonUtils / BaseVo4. ⽅法名、参数名、成员变量、局部变量都统⼀使⽤lowerCamelCase风格,必须遵从驼峰形式。
正例: orderService / getOrderService()5. 常量命名全部⼤写,单词间⽤下划线隔开,⼒求语义表达完整清楚,不要嫌名字长。
正例: ZK_CONFIG_ROOTNODE6. 抽象类命名使⽤Abstract或Base开头;异常类命名使⽤Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾。
7. 包名使⽤com.hetai.服务名.分层名。
正例: oauth系统的DAO, com.hetai.oauth.dao8. 如果使⽤到了设计模式或具有明确职责,建议在类名中体现出具体模式或职责。
正例:ExecutorFactory / AbstractProducer9. 各分层都需要接⼝和实现类,实现类⽤Impl作后缀与接⼝区别。
正例:OrderServiceImpl实现OrderService接⼝。
10. 枚举类名建议带上Enum后缀,枚举成员名称需要全⼤写,单词间⽤下划线隔开。
正例:枚举名字:PolicyIdTypeEnum,成员名称:ID_CARD/ PASSPORT。
11. 各层⽅法命名规范: 1)查询的⽅法⽤get/ query做前缀。
2)插⼊的⽅法⽤add 或insert做前缀。
3)删除的⽅法⽤remove 或delete做前缀。
4)修改的⽅法⽤modify/ update做前缀。
Java编码规范(中文版)
![Java编码规范(中文版)](https://img.taocdn.com/s3/m/f5ab956f1611cc7931b765ce0508763231127482.png)
Java编码规范(中⽂版)S u n MicrosystemCode C onven t i on s for the J a v a?P r o g r a mm i n g Language (中⽂⽂档)Revised April 20, 1999整理:杨海昕yhx001@/doc/836330750.html 2007-12-171 / 21前⾔ (4)1 导论 (4)1.1 为什么要有程序代码惯例 (4)1.2 致谢 (4)2 ⽂件名 (5)2.1 扩展名 (5)2.2 ⼀般⽂件名 (5)3. 档案组织 (5)3.1 J ava原始码档案 (5)3.1.1 起始批注 (6)3.1.2 package 和import 叙述 (6)3.1.3 class 和interface 宣告 (6)4. 缩排 (7)4.1 ⾏长度 (7)5. 批注 (7)5.1 实作批注格式 (8)5.1.1 区块批注 (8)5.1.2 单⾏批注 (8)5.1.3 尾随批注 (9)5.1.4 ⾏结尾批注 (9)5.2 ⽂件批注 (9)6. 宣告 (10)6.1 每⼀⾏的数⽬ (10)6.2 初始化 (11)6.3 布置 (11)6.4 类别和接⼝宣告 (11)7. 叙述 (12)7.1 简单叙述 (12)7.2 复合叙述 (12)7.3 return 叙述 (12)7.4 if, if-else, if else-if else 叙述 (13)7.5 for 叙述 (13)7.6 while 叙述 (14)7.7 do-while 叙述 (14)7.8 s w i t ch叙述 (14)7.9 try-catch 叙述 (15)8. 空⽩ (15)8.1 空⽩⾏ (15)8.2 空⽩ (15)9. 命名惯例 (16)10. 程序习惯 (18)10.1 提供实体变量和类别变量的权限 (18)10.2 引⽤类别变量和⽅法 (18)10.3 常数 (18)10.4 变数指定 (18)10.5 杂项惯例 (19)10.5.1 ⼩括号 (19)10.5.2 传回值 (19)10.5.3 在条件运算符中"?" 之前的表⽰式 (19)10.5.4 特别批注 (20)11 J ava原始码档案范例 (20)11.1 J ava原始码档案范例 (20)以下⽂件翻译⾃h tt p://j a v a.s un.c o m/do cs/c ode c on v/i nde x.h t m l PDF 版翻译取⾃⽹络繁体版本(h tt p://www.j a v a w o r l d.c o m.t w),若未获得授权请勿以商业⽤途的任意形式转载复制或是修改C op y r i gh t 1995-1999 Sun M i c r o sys t e m s,I n c.A ll r i gh t s r e s e r v ed.U s ed by pe r m i ss i on.前⾔因为⽬前J ava领域的应⽤是⼀个世界性的潮流,对我们国内的有志于计算机编程的⼈员来说,学习J ava是⼀个提⾼⾃⾝⽔平,获取新技术的途径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java编码规范目录1 说明 (3)1.1 版本说明 (3)1.1.1 V1.0 (3)1.2 文档阅读说明 (3)2 项目规范 (3)2.1 项目编码 (3)3 JAVA规范 (3)3.1 构建 (3)3.2 代码架构 (4)3.3 排版 (4)3.4 注释 (5)3.5 命名 (7)3.6 编码 (9)3.7 性能与可靠性 (14)4 附录........................................................................................................... 错误!未定义书签。
4.1 代码管理规范............................................................................... 错误!未定义书签。
4.2 MyEclipse优化设置...................................................................... 错误!未定义书签。
1说明1.1版本说明1.1.1V1.0初始版本,根据2013年公司J2EE版本规范修订而来。
去除了JavaScript规范(该部分规划为未来单独整理);去除了代码评审相关评审表格(这部分该由项目管理流程提供);去除了项目目录规划部分的描述(该规划后续单独提供)。
1.2文档阅读说明R:规则,必须遵守S:建议,根据实际情况而定2项目规范2.1项目编码项目编码统一使用utf-8进行编码,包括java、jsp、js、css、properties、xml等。
3JAVA规范3.1构建R1 Java项目均应采用maven进行项目构建,并能实现通过命令行自动构建。
说明:采用Maven或Gradle进行项目构建是Java项目开发工作自动化的常见选项。
Gradle目前普及程度不及Maven。
故此公司决定采用Maven作为项目构建的基础工具。
未来推广自动构建、持续集成、代码自动审查等工作,均依赖于项目最基础的标准化工作。
希望大家遵守。
3.2代码架构S1 如果类在当前定义文件外被使用,则需要定义为public说明:Java强制要求每个Java文件中有一个public类型的类。
因此,public类和Java文件具有一一对应关系。
这背后隐含着Java语言推荐的代码组织规则。
我们在编码过程中,也应尽量遵循该规则,避免非public 类在当前定义文件外被使用的情况。
如果需要被当前定义文件外的类使用,请声明为public,以增加代码可读性。
3.3排版R1程序块要采用缩进风格编写,代码缩进单位为4个空格,不使用Tab缩进。
R2左分界符(如大括号‘{’)应在语句同一行,并与语句间隔一个空格,右分界符(如大括号‘}’)独占一行,同时与引用它们的语句左对齐。
在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序或者static、,synchronized等语句块中都要采用如上的缩进方式。
R3每行语句字符不超过100字符,对于较长的语句、表达式或参数要分成多行书写,换行应遵循逗号后面,操作符前面的原则。
R4不允许把多个短语句写在一行中,即一行只写一条语句。
说明:阅读代码更加清晰示例:如下例子不符合规范。
Object o = new Object(); Object b = null;R5if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while,switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。
说明:阅读代码更加清晰,减少错误产生R6在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。
说明:阅读代码更加清晰S1类属性和类方法不要交叉放置,不同存取范围的属性或者方法也尽量不要交叉放置。
格式:类定义{类的静态属性定义类的静态方法定义类的私有属性定义类的保护属性定义类的公有属性定义类的私有方法定义类的保护方法定义类的公有方法定义}S2修饰词按照指定顺序书写:[访问权限][static][final] 。
示例:public static final String str = “abc”;S3可以使用MyEclipse或Eclipse自带的ctrl+shift+F来自动格式化编码排版,格式化后请认真检查一下。
说明:注意如果使用搜狗输入法,请确认与其快捷键不冲突,详细参照:3.4注释R1类和接口的注释放在class 或者interface 关键字之前,import 关键字之后。
注释主要是功能简述。
类注释使用“/** */”注释方式。
说明:类和接口注释要着重功能描述、作者、交付后修改记录。
/*** 〈功能简述〉* @author [作者](必须)*/示例:package m;import java.util.Date;/*** LogManager 类集中控制对日志读写的操作。
* @author 张三,李四,王五*/public class LogManagerR2类属性(成员变量)、公有和保护方法注释:写在类属性、公有和保护方法上面,注释方式为“/** */”。
示例:/*** 注释内容*/private String logType;/*** 注释内容*/public void write()R3公有和保护方法注释内容:列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、异常等。
格式:/*** 〈功能简述〉* @param [参数1] [参数1说明]* @param [参数2] [参数2说明]* @return [返回类型说明]* @exception/throws [异常类型] [异常说明]*/示例:/*** 根据日志类型和时间读取日志。
* 分配对应日志类型的LogReader,指定类型、查询时间段、条件和反复器缓冲数,* 读取日志记录。
查询条件为null或0的表示没有限制,反复器缓冲数为0读不到日志。
* 查询时间为左包含原则,即[startTime, endTime) 。
* @param logTypeName 日志类型名(在配置文件中定义的)* @param startTime 查询日志的开始时间* @param endTime 查询日志的结束时间* @param logLevel 查询日志的级别* @param userName 查询该用户的日志* @param bufferNum 日志反复器缓冲记录数* @return 结果集,日志反复器*/public static LogIterator read(String logType, Date startTime, Date endTime, int logLevel, String userName, int bufferNum)R4对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。
对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
说明:异常注释用@exception或@throws表示,在JavaDoc中两者等价,但推荐用@exception标注Runtime 异常,@throws标注非Runtime异常。
异常的注释必须说明该异常的含义及什么条件下抛出该异常。
R5注释应与其描述的代码相近,对代码的注释应放在其上方,并与其上面的代码用空行隔开,注释与所描述内容进行同样的缩排。
说明:可使程序排版整齐,并方便注释的阅读与理解。
示例:/*** 注释*/public void example2( ) {// 注释CodeBlock One// 注释CodeBlock Two}/*** 注释*/public void example( ) {// 注释CodeBlock One// 注释CodeBlock Two}R6修改代码同时修改相应的注释,以保证注释与代码的一致性。
R7避免在注释中使用缩写,特别是不常用缩写。
说明:在使用缩写时或之前,应对缩写进行必要的说明。
R8对重写父类的方法必须进行@Override声明。
说明:可清楚说明此方法是重写父类的方法,保证重写父类的方法时不会因为单词写错而造成错误(写错方法名或者参数个数,类型都会编译无法通过)示例:@Overridepublic void doRequest(SipServletRequest req) throws ServletException,IOExceptionR9 对于需要注释掉(不使用)的代码,应使用//注释,而不是/**/注释考虑到对SCM系统(SVN等)的友好,注释掉的代码段,应采用//而不是/**/,因为采用/**/注释,修改的代码行只有首位两行,中间的代码段无任何变化。
这样svn工具无法判断出实际所做的修改。
而通过//注释的代码,必须逐行注释,在svn工具中可以很容易判断出整个被注释掉的代码段。
这对于依赖svn等SCM系统进行代码审查的工作来说,是很有价值的。
S1在代码的功能、意图层次上进行注释,提供有用、额外的信息。
说明:注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码,防止没必要的重复注释信息。
S2对关键变量的定义和分支语句(条件分支、循环语句等)编写注释。
说明:这些语句往往是程序实现某一特定功能的关键,对于维护人员来说,良好的注释帮助更好的理解程序,有时甚至优于看设计文档。
注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。
中文注释中需使用中文标点。
方法和类描述的第一句话尽量使用简洁明了的话概括一下功能,然后加以句号。
接下来的部分可以详细描述。
说明:注释语言不统一,影响程序易读性和外观排版,出于对维护人员的考虑,建议使用中文。
JavaDoc工具收集简介的时候使用选取第一句话。
S3一些复杂的代码需要说明。
示例:这里主要是对闰年算法的说明。
//1. 如果能被4整除,是闰年;//2. 如果能被100整除,不是闰年;//3. 如果能被400整除,是闰年。
3.5命名R1类名和接口使用意义完整的英文描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。
(Pascal命名法)示例:OrderInformation, CustomerList, LogManager, LogConfig, SmpTransactionR2方法名使用类意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写、其余字母小写。