JAVA编码规范PPT教学课件
java编码规范培训(精)

7
www. Fiberhome. com. cn Copyright © 2008 All right reserved, Fiberhome
confidential
命名约定--采用大小写混合,提高 名字的可读性
一般应该采用小写字母,但是类和接口的名字的 首字母,以及任何中间单词的首字母应该大写
12
www. Fiberhome. com. cn Copyright © 2008 All right reserved, Fiberhome
confidential
成员函数标准
命名成员函数 成员函数的命名应采用完整的英文描述符,大小写混合使用:所有中 间单词的第一个字母大写。成员函数名称的第一个单词常常采用一个 有强烈动作色彩的动词。
Java编码规范 培训教材
2009年1月14日
Copyright © 2008
简介
本文提供一整套编写高效可靠的 Java 代码的标准 、约定和指南。它们以安全可靠的软件工程原则 为基础,使代码易于理解、维护和增强。而且, 通过遵循这些程序设计标准,作为一个 Java 软件 开发者的生产效率会有显著提高。经验证明,若 从一开始就花时间编写高质量的代码,则在软件 开发阶段,对代码的修改要容易很多。最后,遵 循一套通用的程序设计标准将带来更大的一致性 ,使软件开发团队的效率明显提高。
11
www. Fiberhome. com. cn Copyright © 2008 All right reserved, Fiberhome
confidential
注释约定
注释应该增加代码的清晰度 避免使用装饰性内容,也就是说,不要使用象广 告横幅那样的注释语句 保持注释的简洁 先写注释,后写代码 注释信息不仅要包括代码的功能,还应给出原因
Java基础编码规范

Java基础编码规范1. 语法基础标识符、关键字、保留字标识符:由程序员指定的变量、⽅法、类、接⼝等的别名.。
标识符规范:区分⼤⼩写;⾸字母可以是下划线、字母、美元。
但不能是数字;出⾸字符以外的其它字符,可以是下划线、字母、美元和数字;关键字不能作为标识符.关键字:语⾔已经定义好的类似于标识符的保留字符序列,不能挪作他⽤,关键字⼀律⼩写表⽰。
保留字:在语⾔中既不能当作标识符使⽤,也不是关键字,也不能在程序中使⽤的字符序列,Java语⾔的保留字只有const,goto,其中const可以使⽤public static final 来代替。
Java分隔符:分号:表⽰⼀条语句的结束。
⼤括号:表⽰⼀个语句块,即语句的⼀个集合,在定义类和⽅法是,语句块也被⽤作分隔类体或⽅法体。
空格:适当的使⽤空格可以改善代码的可读性。
变量:变量所代表的内容是可以修改的。
常量:变量的内容是不可以的被修改的,常量⼀旦被初始化就不能被修改。
事实上常量:有三种类型:静态常量,成员常量和局部常量。
变量作⽤域:作⽤域规定了变量的适⽤范围,超过了变量作⽤域,变量内容就会被释放,根据变量作⽤域的不同可以分为全局变量和局部变量。
2. 编码规范除了包和常量以外,java编码规范均使⽤驼峰命名法。
包名⼀律全部⽤⼩写,作为命名空间,包名必须具有唯⼀性。
⽅法名、变量名使⽤⼩驼峰命名法,如balanceAccount。
类和接⼝名、⽂件名使⽤⼤驼峰命名法,如CatDao。
常量,全部使⽤⼤写,多个单词构成可以使⽤下划线间隔开。
3. 注释规范⽂件注释:即在每⼀个⽂件的开头进⾏注释,⽂件注释通常包括版权信息、⽂件信息、历史版本信息和⽂件内容等等。
⽂档注释:⽂档注释就是可以⽣成API帮助⽂档的注释,⽂档注释主要针对类(或者接⼝)、实例变量、静态变量、实例⽅法、静态⽅法等进⾏注释,主要提供给不看源码的⼈做参考⽤代码注释:给阅读源码的⼈以参考的代码注释地标注释:在源代码中添加⼀些表⽰,以便于IDE⼯具快速定位代码。
编码规范培训-Java编码规范

文档修订记录1引言 (5)1.1文档目的 (5)1.2本规范的指导意义 (5)1.3文档预期读者 (5)1.4文档适用范围 (5)1.5参考文档 (6)2JA V A代码开发规范 (7)2.1命名规范 (7)2.1.1 文件File (7)2.1.2 包Package (7)2.1.3 接口Interface (7)2.1.4 类Class (8)2.1.5 方法Method (8)2.1.6 参数Parameter (9)2.1.7 变量Variable (9)2.1.8 实例变量Instance Variable (10)2.1.9 常量Constant (10)2.1.10 数组Array (10)2.2格式规范 (11)2.2.1 版权信息Copyright Information (11)2.2.2 注释Comment (11)2.2.3 缩进Indentation (13)2.2.4 空格Space (13)2.2.5 空行Blank Line (13)2.2.6 行长度Line Length (14)2.2.7 换行New Line (14)2.2.8 圆括号Parentheses (15)2.2.9 大括号Big Brackets (15)2.3语句规范 (16)2.3.1 变量、常量的使用 (16)2.3.2 简单语句Simple Statement (16)2.3.3 条件语句Condition Statement (17)2.3.4 分支语句Switch Statement (17)2.3.5 循环语句Loop Statement (18)2.3.6 包和引入语句Packet and Import Statement (19)2.3.7 声明语句Declare Statement (19)2.3.8 例外控制语句Exception Control Statement (20)2.3.9 类和接口Class and Interface (20)2.3.10 构造/析构Constructor/Finalizer (21)2.3.11 方法Method (21)2.3.12 属性Attribute (23)2.3.13 SQL语句SQL Statement (24)2.4日志规范 (25)2.5一般性规范 (26)2.6其它代码开发规范 (27)2.6.1 多线程Multi-Threading (27)2.6.2 Servlet (27)2.6.3 JDBC (28)2.6.4 异常规范 (29)2.6.5 工程配置文件规范 (30)1引言1.1文档目的制定这个规范的目的是为了增加代码的可读性,使项目的所有代码具有统一的编码风格,减少人员变动造成的损失,提高软件开发团队的生产效率,有利于相关项目(票据集中提入、批量代收付、影像采集、前后台分离)向营运平台整合。
Java编码规范【终极版】ppt课件

• 静态成员变量 / Static Fields
• 静态初始化块 / Static Initializers
• 成员变量 / Fields
• 初始化块 / Initializers
• 构造器 / Constructors
• 静态成员方法 / Static Methods
• 成员方法 / Methods
/** * 〈一句话功能简述〉 * 〈功能详细描述〉 * @author [作者](必须,使用汉语) * @see [相关类/方法](可选) * @since [产品/模块版本] (可选) * @deprecated (可选) */
代码示 import java.blah.blahdy.Blah;
/** * Blah类处理订单业务流程. * 全部为静态变量和静态方法,对外提供统一接口。提供了订单保存, * 订单业务处理,查询等功能。 * * @author 张三 * @see OrderCmd * @since */ public class Blah extends SomeClass {}
4
技术部
命名规范
• 接口
采用完整的英文描述符说明接口封装,所有单词 的第一个字母大写。习惯上,名字前面加上大写 的 I, 遵守单一职责原则及接口隔离原则 比如:
interface Iraster
• 方法
方法采用完整的英文描述说明成员方法功 能,第一个单词尽可能采用一个生动的动词,尽 量满足见名知意且注意使用设计原则
技术部
20
异常注解
• 对于方法内部用throw语句抛出的异常,必须在方法的
注释中标明,对于所调用的其他方法所抛出的异常,选 择主要的在注释中说明。 对于非RuntimeException, 即throws子句声明会抛出的异常,必须在方法的注释中 标明。
JAVA编码规范

第二章重要规范
( 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编码规范(开发培训讲义)

9 //}
10 //else {
11 // return false;
12 //}
可编辑课件
PANFOT JAVA Developer
文档注释
JAVA描述信息|类、接口、构造器,方法,以及字段 注释定界符|/**...*/ 位置|应位于声明之前 ,不能在其内部
/** * The Example class provides ... */
可编辑课件
PANFOT JAVA Developer
单行注释
短注释|可以显示在一行内,与其后的代码具有一样的缩进 多于一行|不能在一行内写完,就该采用块注释
1 if (condition) { 2 /* Handle the condition. */ 3 //code…. 4}
可编辑课件
PANFOT JAVA Developer
齐 缩进后若使第二行和第三行移得很靠右,可以代之
以缩进8个空格
可编辑课件
PANFOT JAVA Developer
换行(断行原则)
//正常断行 someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) { ... }
可编辑课件
PANFOT JAVA Developer
IF语句断行
通常使用8个缩进,看起来清晰
//缩小过少,不易阅读
1 if ((condition1 && condition2)
2 || (condition3 && condition4)
3 ||!(condition5 && condition6)) {
JAVA编码规范和指南培训(新改)ppt课件

制定编码规范和指南的意义 JAVA编码规范包括的几个方面 JAVA编码指南包括的几个方面 JAVA编码规范相关文档
代码检查工具介绍及使用
3
PPT概要
一、编码规范的目的
❖ 宗旨:为了开发小组能够在编码过程中遵循一致 的风格,使得代码阅读者能够非常清晰的各个成 员编写的代码,使得维护人员能够很好的继承前 辈的代码,制定编码规范;
24
❖ JS目录结构 ❖ JS源代码格式规范 ❖ JS文件样式约定 ❖ JS编程约束和技巧
JavaScript编码规范
25
JS目录结构
❖ 公司级公用的JavaScript文件放在scripts目录的 servyou下;
❖ 项目级公用的JavaScript文件放在scripts目录的XX 项目下;
26
JS源代码格式规范
❖ 应该采用面向对象的方式去管理、书写函数和变 量;
❖ 每行长度 ❖ 缩进 ❖ 关于空格
27
JS一些编程约束和技巧
❖ JS的压缩与混淆 ❖ 怎样刷新JS脚本由于浏览器缓存引起的错误
Ctrl+F5刷新,或者 <script language="JavaScript" src="./scripts/common.js?v=1.0.002"></script>
8
制定编码规范和指南的意义 JAVA编码规范包括的几个方面 JAVA编码指南包括的几个方面 JAVA编码规范相关文档
代码检查工具介绍及使用
9
PPT概要
JAVA编码指南包括的几个方面
❖ 开发环境、技术框架、工程结构及命名规定 ❖ 开发方面规范和约束的关键要素 ❖ 编码过程负责人分工
Java编码规范终极版

22
构造数字
技术部
23
Байду номын сангаас
在finally中释放资源
• 描述:在finally中释放资源 —— 数据库连接、打开的文件等
// 关闭文件 OutputStream ostream = null;
try { ostream = new FileOutputStream(file); ostream.write(…);
• 自包含 • 尽量捕获异常输出日常并返回业务方错误的code
技术部
9
使用正确的code format
• 制作codetemplate和codeformat文件 • 打开Eclipse,导入code-style/codeformat.xml
技术部
10
Eclipse code tempaltes
技术部
• 变量字段
采用驼峰标示法,遵守见名知意原则 比如:
int myIndex
6
技术部
组合语句
• 错误代码
if (condition) statement1;
if (condition1) if (condition2) statement2;
else statement3;
• 正确代码
if (condition) { statement1;
11
Eclipse code tempaltes-auto add
技术部
12
Eclipse Save Actions
技术部
13
Java工程命名
1 、应用名中用_来连接 ,2 子工程的命名是用. 如:这个应用是叫wuage_web 里面的子工程可以叫wuage_web.config 注意: 2 、autoconfig的文件需要放在src/main/resource中,或者是在war中
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*@see ng.System#getProperty(ng.String)
*/
public String path;
5.语句的注释/程序块的注释
语句和程序块的注释要在被说明语句的上面行书写,缩进 方式与被说明语句相同;(必须)
对不易理解的分支条件表达式加注释;(可选)
数。(建议)
算法或程序本身的特性有特殊要求时,可以超过5级。 代码缩进不建议采用TAB键的形式(因为各个编辑器对TAB 键的宽度定义不一致),一律向右缩进4个空格。(必须)
程序应以缩进形式展现程序的块结构和控制结构,在不影
响展示程序结构的前提下尽可能地减少缩进的层次。结构缩 进强制采用下面的形式:(必须)
复杂的循环,说明出口条件;超过20行的循环说明出口条 件。(必须)
过长的方法实现,按功能实现进行分段概括说明;(必须)
过长的条件、循环程序段,在结束的‘}’附近进行简短的 起始描述,比如“}//end of if (x!=y)”;“}//end of while ( a < maxnum )(必须)
引用其他方法文档用 @see 完整类名#方法名 表示;( 可选)
例子:
/**
* This abstract pathname's normalized pathname
string. A normalized
*contain any duplicate or redundant separators.
@version 版本信息 表示;(必须)
作者信息用
@author 返回说明 表示;(必
须)
支持的JAVA版本 @since JAVA版本说明 表示;(可选)
引用其他类文档用
@see 完整类名 表示;(可选)
注释体用 “/** …… */”
下例: /* * <p> Instances of the <code>> class are immutable; * * @version 1.102, 12/03/01 * @author unascribed * @since JDK1.0 **/
JAVA编码规范
(一)注释规范
Java项目的技术文档最终将由JavaDoc工具从Java源文件 的注释中提取。因此注释的格式将以JavaDoc的格式为基 础。具体细节请参阅JavaDoc的说明文档。
1.文件起始注释
文件名;(必须) 版本号;(必须) 文件修改备忘录,记录主要修改人、修改时间、修改原 因等,每个修改活动单独一行;(必须)
*
<code>null</code>
* @return An .
* @see another method.
*/
public (String parent, String child)
{
if (child == null)
{
throw new NullPointerException();
}
……
}
4.类成员变量的注释
public class java.io.Serializable, Comparable {
…… } 版本号使用版本控制软件自动跟踪(SourceSafe标志为$Revision: $)。
3.方法的注释
函数实现时在函数体前要对函数的功能、注意事项做描
述;
参数用 @param 参数名 参数描述 表示,一个参数一行 (方法有参数则必须)。
• if ( expression ) •{ • statements •} • else •{ • statements •} • 不允许出现下面的缩进方式: • if ( expression ){ • statements •} • else{ • statements •}
JAVA编码规范
目标:
• 要求从试行当日起所有提交的代码都要接受代码 评审的考核,从此刻编写的程序必须尽全力满足 编码规范要求。如果编码大幅度不符合规范,将 在考核中有体现。
• 备注:规范条例分为“必须”“可选”和“建议”三个级 别;其中“必须”是在编码过程中必须满足的,“可选” 可以按照项目经理和开发人员把握尺度,“建议”是一些 经验性的规范,建议大家遵守。
6.废弃代码注释保留
使用“/* */”实现废弃代码保留,不允许使用“//”;(必 须) 尽量完整的将代码注释掉,最好完整的注释掉一个程序
段;(建议)
请说明注释掉的原因、人员和时间(必须);
(二)缩进规范
程序包括注释最大行宽不得超过100列,超过者应折行书 写。(必须)
一个函数的缩进不得超过5级,超过者应将其子块写为子 函
* pathname string and a child pathname string.
*
* @param parent The parent pathname string
* @param child The child pathname string
* @throws NullPointerException If <code>child</code> is
在常量和变量声明后应该对该名字作适当注释,要点如下 :
类成员变量的注释使用/**…… */作为注释标志;(必须) 注释在类定义的上一行,缩进与变量定义相同;(必须)
成员变量中public、protect以及friendly的变量的含义(必 须),private变量的含义(可选); 合法取值范围(可选);
• 文件注释举例: • /* • * @(#) 1.102 01/12/03 • * MODIFY MEMO: • * 张三/2009_01_1/主要修改…,因为…; • * 李四/2009_01_31/主要修改…,因为…。 • */
2.类的注释
类描述的对象的功能描述、注意事项等。(必须)
版本号用
返回值用 @return 返回说明 表示;(有返回则必须)
违例用
@throws 违例类 说明 表示,一个违例
一行;(有违例则必须)尽可能列举出所有会抛出此异常
的情况。
引用其他方法文档用 @see 完整类名#方法名 表示;( 可选)
注释Creates a new <code>> instance from a parent