JAVA编码规范17646.docx

上传人:b****8 文档编号:12118721 上传时间:2023-06-04 格式:DOCX 页数:17 大小:24.89KB
下载 相关 举报
JAVA编码规范17646.docx_第1页
第1页 / 共17页
JAVA编码规范17646.docx_第2页
第2页 / 共17页
JAVA编码规范17646.docx_第3页
第3页 / 共17页
JAVA编码规范17646.docx_第4页
第4页 / 共17页
JAVA编码规范17646.docx_第5页
第5页 / 共17页
JAVA编码规范17646.docx_第6页
第6页 / 共17页
JAVA编码规范17646.docx_第7页
第7页 / 共17页
JAVA编码规范17646.docx_第8页
第8页 / 共17页
JAVA编码规范17646.docx_第9页
第9页 / 共17页
JAVA编码规范17646.docx_第10页
第10页 / 共17页
JAVA编码规范17646.docx_第11页
第11页 / 共17页
JAVA编码规范17646.docx_第12页
第12页 / 共17页
JAVA编码规范17646.docx_第13页
第13页 / 共17页
JAVA编码规范17646.docx_第14页
第14页 / 共17页
JAVA编码规范17646.docx_第15页
第15页 / 共17页
JAVA编码规范17646.docx_第16页
第16页 / 共17页
JAVA编码规范17646.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JAVA编码规范17646.docx

《JAVA编码规范17646.docx》由会员分享,可在线阅读,更多相关《JAVA编码规范17646.docx(17页珍藏版)》请在冰点文库上搜索。

JAVA编码规范17646.docx

JAVA编码规范17646

 

Java编码规范

Version1.0

文档记录

版本

日期

主要作者

描述

1.0

2009-11-23

Winnie

初始版本

 

目录

一、前言3

1.背景3

2.编码规范级别定义3

3.规范实施建议3

4.定义和约定3

5.参考资料3

二、格式规范3

1.缩进3

2.行长度3

3.声明3

a)声明变量、常量3

b)声明类3

4.语句3

三、命名规范3

1.通用规则3

2.J2EE项目规则3

3.附加说明3

四、组织规范3

1.web工程目录规范3

2.引入包规范3

五、注释规范3

1.通用注释规则3

a)说明3

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

2.类的注释3

3.方法的注释3

4.失效代码块的注释3

5.分支语句的注释3

6.变量、常量的注释3

六、异常处理规范3

七、补充规范3

一、前言

1.背景

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

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

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

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

2.编码规范级别定义

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

必要规范(默认):

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

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

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

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

3.规范实施建议

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

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

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

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

4.定义和约定

【待讨论】

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

【推荐】

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

Pascal标记法

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

camel标记法

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

5.参考资料

《CodeConventionsfortheJavaProgrammingLanguage》

《TheElementsofJavaStyle》

二、格式规范

1.缩进

使用Tab键缩进;

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

2.行长度

.java文件:

每行不超过120字符;

注:

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

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

.jsp文件:

每行不超过250字符,不允许使用eclipse自带的Format方法。

.properties:

不折行

.xml:

每行不超过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)

包名命名全部小写字母;

源代码使用com.huatek.项目名缩写开头的包名;

测试代码使用test.com.huatek.项目名缩写开头的包名

使用单个单词【推荐】

com.huatek.demoproject

test.com.huatek.demoproject

类(Classes)

类名命名采用Pascal标记法;

类名是一个名词【推荐】

classSaveProjectGroupAction

接口(Interfaces)

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

接口的实现类同类名,以Impl为结束标记。

【推荐】

interfaceIProjGroupService

方法(Methods)

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

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

runMethod();

变量(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文件

注:

JSP页面中,HTML元素避免使用name等关键字为元素id或名称

findExpertCheckState.jsp

2.J2EE项目规则

●JAVA代码

小数计算不使用float,double类型的数据。

统一用BigDecimal。

对象变量的定义初始值必须为null,无论JS还是Java。

使用装箱的数据类型:

Integer,String等。

调用外部的接口方法必须校验是否为空,Size是否等于0。

Object参数的问题。

请注意相同的方法不同参数的调用可能覆盖掉Object参数的方法,导致错误调用。

必须编写单元测试用例,确保测试用例能够覆盖处理的每个分支。

判断对象、字符串相等使用equal方法

●页面

所有页面输出,如果不是数字类型或是特定字符集的,(无论是回填,隐藏域,还是页面显示)都要使用标准标签

out>输出。

如果没有采用,请确认执行了特殊字符的输出处理。

避免使用弹出窗口【推荐】

必须验证页面回退后的操作结果。

必须限制输入字符的最大长度。

输入域可以显示的数据长度应该和可输入长度一致以length限制。

打印需要考虑数据过长,折行和空间不够的问题。

每种事件的处理最好定义自己的处理函数,不要统一到一个函数上去。

降低程序的复杂度。

功能点的权限应该分开而不是包含关系。

要求功能点的第一个动作为进入功能界面的初始(init)动作。

不能拷贝公共代码,只能引用。

保证公共代码的唯一版本。

●Javascript

避免js进行业务判断

避免使用alert()方式提示信息

●国际化资源文件

避免内容相同key值不同的资源存在

Key的命名采用camel标记法。

业务错误信息以error.business.开头。

如:

error.business.user.null

实体的显示字段由其实体名.属性名定义。

如:

user.userName;user.email

页面提示信息以label.开头。

如:

label.welcome=欢迎登陆系统

菜单以menu.开头。

如:

menu.userManagement

按钮以button.开头。

如:

button.submit=提交

3.附加说明

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下

js存放javascript文件

css存放css文件

img存放图片文件

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"),更不能不继续往上层抛出异常。

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

七、补充规范

提交到CVS或SVN上的代码中不允许出现system.out.println(),alert()等临时调试代码,如必须则使用log4j工具进行代码编写;

开始编码时请确保SVN代码已经更新到最新版本

SVN代码冲突时请勿用本地文件覆盖冲突文件以保证其他人的代码不被覆盖,仔细检查代码解决冲突后再行提交。

SVN提交时需填写简要注释

明确的无用代码必须删除

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

当前位置:首页 > 农林牧渔

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2