最新版Java编码规范.docx

上传人:b****7 文档编号:9266443 上传时间:2023-02-03 格式:DOCX 页数:13 大小:20.73KB
下载 相关 举报
最新版Java编码规范.docx_第1页
第1页 / 共13页
最新版Java编码规范.docx_第2页
第2页 / 共13页
最新版Java编码规范.docx_第3页
第3页 / 共13页
最新版Java编码规范.docx_第4页
第4页 / 共13页
最新版Java编码规范.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

最新版Java编码规范.docx

《最新版Java编码规范.docx》由会员分享,可在线阅读,更多相关《最新版Java编码规范.docx(13页珍藏版)》请在冰豆网上搜索。

最新版Java编码规范.docx

最新版Java编码规范

目录

一、前言3

1.背景3

2.编码规范级别定义3

3.规范实施建议3

4.定义和约定3

5.参考资料4

二、格式规范4

1.缩进4

2.行长度4

3.声明4

a)声明变量、常量4

b)声明类4

4.语句5

三、命名规范6

1.通用规则6

2.附加说明6

四、组织规范7

1.web工程目录规范7

2.引入包规范7

五、注释规范7

1.通用注释规则7

a)说明7

b)javadoc注释标签语法定义说明7

2.类的注释8

3.方法的注释9

4.失效代码块的注释9

5.分支语句的注释10

6.变量、常量的注释10

六、异常处理规范11

七、补充规范11

 

一、前言

1.背景

在项目开发维护中,编码规范作为开发规范的一个组成部分,是十分重要和必须的,它不仅仅是为了提高开发效率,也有利于降低后期维护开发的成本。

编码规范的根本目的就是要让不仅代码可以一目了然,也可以很容易的理解开发人员所编写的代码程的用途和意义。

由此,用来减少项目中因为开发维护人员的更替或由于长时间不维护造成的记忆模糊或混乱等情况带来的对代码所实现的真正功能的理解困难和歧义。

另外也提高了代码复查效率和效果。

2.编码规范级别定义

根据实际情况分为2类等级的规范:

✓必要规范(默认):

对于新建或优化改造系统,开发维护人员必须严格遵守和保持。

对于历史系统和小范围调整的系统(2011年前上线的系统),开发维护人员可以根据实际情况进行实施。

✓推荐规范(该条目标记为【推荐】):

推荐规范即非强制规范,只是推荐和鼓励开发维护人员实施的编码规范

3.规范实施建议

✓不是为了规范而规范,以提高软件开发质量和效率为目标,辅以IDE等开发工具为保障,逐步改进编码规范化水平

✓对于格式规范、注释规范等部分规范的要求,可以通过使用eclipse自带的Format方法(快捷键:

Ctrl+Shift+F)进行自动格式化,可以提高开发效率又符合编码规范。

✓编码规范文档本身需要定期不断的修正和完善,以符合实际开发规范的要求。

4.定义和约定

✓【待讨论】

表示编码规范讨论时必须提出的待讨论内容

✓【推荐】

用该标签标示的条目表示是推荐规范

✓Pascal标记法

第1个字符大写,其后每个单词的第1个字母大写

✓camel标记法

第1个字符小写,其后每个单词的第1个字母大写

5.参考资料

《CodeConventionsfortheJavaProgrammingLanguage》

《TheElementsofJavaStyle》

二、格式规范

1.缩进

使用Tab键缩进;

不允许使用空格键进行缩进。

2.行长度

每行120字符

注:

使用eclipse自带的Format方法(快捷键:

Ctrl+Shift+F)时,需要配置“Maximumlinewidth”设置长度为120

3.声明

a)声明变量、常量

一行只声明一个变量或常量;

在代码块的开始处声明变量,不要在首次用到该变量时才声明【推荐】

b)声明类

左大括号"{"位于声明语句同行的末尾,右大括号"}"另起一行;

方法与方法之间以空行分隔

4.语句

可以使用eclipse自带的Format方法(快捷键:

Ctrl+Shift+F)时使用eclipse默认的“ControlStatements”格式化方法进行

注:

if语句总是用"{"和"}"括起来

示例

classExample{

voidbar(){

do{

}while(true);

try{

}catch(Exceptione){

}finally{

}

}

voidfoo2(){

if(true){

return;

}

if(true){

return;

}elseif(false){

return;

}else{

return;

}

}

}

三、命名规范

1.通用规则

标识符类型

命名规则

示例

包(Packages)

包名命名全部小写字母;

源代码使用cn.sh.sstic开头的包名;

测试代码使用.sh.sstic开头的包名

使用单个单词【推荐】

cn.sh.sstic.mwbas

.sh.sstic.mwbas

类(Classes)

类名命名采用Pascal标记法;

类名是一个名词【推荐】

classSaveProjectGroupAction

接口(Interfaces)

接口类名以大写“I”开头,命名采用Pascal标记法。

interfaceIProjGroupService

方法(Methods)

方法名命名采用camel标记法;

方法名是一个动词【推荐】

run();

变量(Variables)

变量名命名采用camel标记法;

变量中代表多个值时以-s等复数结尾;

包含Struts中的config.xml文件的path和name命名;

尽量避免单个字符的变量名,除非是一次性的临时变量。

临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型;【推荐】

变量名不应以下划线或美元符号开头【推荐】

String[]projects

charc;

inti;

floatmyWidth;

常量(Constants)

常量命名全部大写,单词间用下划线隔开;

常量必须是静态、final类型

publicstaticfinalStringINVITATION_TYPE_GENERAL="general";

JSP文件(*.jsp)

JSP页面命名采用camel标记法;

包括css和JavaScript文件命名同jsp文件

findExpertCheckState.jsp

2.附加说明

1、从命名中可以直观看懂其定义和用途,否则必须增加注释说明;

2、在同一系统内命名必须保持统一;避免出现类似示例中的情况;

示例:

项目组id变量定义:

pgid、projectgroupId、idprojectgroup、idProjGroup

3、特殊约定名词可以直接使用缩写kxx或rws等,但必须在设计文档中准确说明;

4、避免名字过长、命名采用英文缩写,避免使用汉语拼音【推荐】

四、组织规范

1.web工程目录规范

builderpath

src:

sourcecodefiles

etc:

configurationfiles

test:

JUnittestfiles

Web-root文件夹:

web

需要登录或控制的jsp必须存放在web/secure下

script存放javascript文件

style存放css文件

images存放图片文件

2.引入包规范

不仅对于源代码,也包括了jsp页面中的import;

不允许引入类中未使用的包;

引入包时不能直接引入“.*”,必须明确到引入的类名

五、注释规范

1.通用注释规则

a)说明

✓注释要精简并清晰容易理解;

✓保持注释与代码同步,如果做不到,则删除注释。

✓代码质量不好但能正常运行,或者还没有实现的代码用//TODO:

任务;

✓存在错误隐患的代码用//FIXME:

声明;

✓对于不建议使用的类或者方法,必须在他们的注释中增加@deprecated

b)javadoc注释标签语法定义说明

@author对类的说明标明开发该类模块的作者

@version对类的说明标明该类模块的版本

@see对类、属性、方法的说明参考转向,也就是相关主题

@param对方法的说明对方法中某参数的说明

@return对方法的说明对方法返回值的说明

@exception对方法的说明对方法可能抛出的异常进行说

@deprecated对类或方法的说明该类或方法不建议使用

2.类的注释

目的:

简单概述该类作用

范围:

所有java类,可以不包括javabean

书写规范:

类的注释必须写在该类的声明语法之前。

在注释中要描述该类的描述,创建者,创建日期,和CVS相关的最后commit时间、人和版本等信息。

类注释模板:

可以通过eclipse配置(CodeTemplates中的Code的NewJavafiles)

${filecomment}

${package_declaration}

/**

*Title:

${project_name}

*Description:


*Copyright:

Copyright(c)${year}

*CreateDateTime:

${date}${time}

*CVSlastmodifyperson:

$Author$

*CVSlastmodifyDateTime:

$Date$时间需+8小时

*CVSlastversion:

$Revision$

*@author迈博科技

*/

${typecomment}

${type_declaration}

类注释示例:

packagecn.sh.sstic.projectmanagement.projectfeasibleschemaeval;

/**

*Title:

mwbas2008

*Description:

可行性方案套数数组定义类

*CreateDateTime:

Oct6,20084:

41:

03PM

*CVSlastmodifyperson:

$Author:

lwc$

*CVSlastmodifyDateTime:

$Date:

2008/09/1802:

33:

42$时间需+8小时

*CVSlastversion:

$Revision:

1.22$

*

*@author迈博科技

*/

publicclassFormUtil{

3.方法的注释

目的:

简要概述该方法的功能,包括其参数、返回值意义的注释

注:

如果参数的命名已非常清楚的情况下,可以不写注释

范围:

java类中的各种方法

注:

接口的实现方法的注释应写在接口中而不是实现代码中;

对自动生成的get/set方法不需要添加注释;

如果方法允许null作为参数,或者允许返回值为null,必须在JavaDoc中说明,如果没有说明,方法的调用者不允许使用null作为参数,并认为返回值是null安全的。

书写规范:

方法注释必须写在方法定义之前。

该注释包括:

方法其功能的简单描述,方法的参数、返回值类型、返回值意义简单的描述。

模板:

对于已定义好的接口的方法,可以直接输入/**回车eclipse可自动生成注释模板

示例:

/**

*演示方法注释

*@paramargs

*@return

*返回null表示没有找到

*@throwsException

*/

privateString[]demoFunction(Stringargs)throwsException{

returnnull;

}

4.失效代码块的注释

目的:

对一块暂时不启用的代码进行注释。

注:

这里并不是指垃圾、无用的代码,只是暂时不启用或暂时不明确的代码

书写规范:

失效代码块采用块注释方法行注释方法进行标注。

注:

采用注释块在使用eclipse自带的Format方法(快捷键:

Ctrl+Shift+F)时需要配置,去掉选中“Enableblockcommnetformatting”

示例:

//if(1==1){

//

//}else{

//

//}

或者

/*if(1==1){

//如果1与1相等的时候

Stringcode1;

}else{

//如果1与1不相等的时候

Stringcode2;

}*/

5.分支语句的注释

目的:

简单描述该分支条件的意义

书写规范:

在分支语句代码的下一行进行注释

示例:

if(1==1){

//如果1与1相等的时候

code

}else{

//如果1与1不相等的时候

code

}

6.变量、常量的注释

目的:

简单描述该变量、常量的意义。

书写规范:

变量、常量注释必须写在变量、常量定义之前或同一行中,简单描述其代表的意义。

注:

对自循环所用的变量(i,j,k,)可以不需要注释。

示例:

StringcommitFlag;//提交标志

六、异常处理规范

重新抛出的异常必须保留原来的异常,即thrownewNewException("message",e);而不能写成thrownewNewException("message"),更不能不继续往上层抛出异常。

针对重要的可捕获的业务相关异常,需创建异常处理类,在方法中捕获到异常后,反馈到用户界面上,提示用户【推荐】

七、补充规范

commit到cvs上的代码中不允许出现System.out.println()等临时用代码,如必须则使用log4j工具进行代码编写;

明确的垃圾或无用代码必须删除

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1