java编码规范教材@v0.4.ppt_第1页
java编码规范教材@v0.4.ppt_第2页
java编码规范教材@v0.4.ppt_第3页
java编码规范教材@v0.4.ppt_第4页
java编码规范教材@v0.4.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编码规范java,AC李军治,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则EJB代码文件命名习惯变量方法可读性程序效率质量保证附录A,范围,范围定义了编写Java代码时应遵守的规则和习惯。提供编写EnterpriseJavaBean代码的命名规则和习惯。术语:规则:强制必须遵守的原则。建议:必须加以考虑的原则,无标注的视为建议。说明【】:对规则或建议的必要解释。示例:对规则或建议给出的例子。,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则EJB代码文件命名习惯变量方法可读性程序效率质量保证附录A,2.1文件体系规则,规则-JSP文件目录结构,|cgi存放cgi程序|cgi-bin存放cgi编译后的程序|css存放样式表|html存放html文件|images存放图片|include存放系统要引用的文件|js存放javascript脚本|ocx存放ocx控件|page存放JSP页面|WEB-INFWEB配置文件,class文件,建议-Java文件目录结构,|模块分类|action存放action(控制层)文件|dao存放dao(数据层)文件|form存放form(展示层)文件|service存放业务逻辑文件|vo存放数据对象文件,2.2源文件结构规则,规则-包和引入语句先写包语句,再写引入语句。package行和import行之间留一行空行。引入的标准包名要在本地包名之前,并且包名按照字母顺序排列。如果import行中包含了同一个包中的类超过5个,则用*来处理。import的标准包和本地包之间留一行空行。示例:,packagecom.sitech.crmpd.core.codegen;importjava.io.*;importjava.sql.DatabaseMetaData;importjava.sql.ResultSet;importcom.sitech.crmpd.core.config.Config;importcom.sitech.crmpd.core.jdbc.ConnectionFactory;,规则-类/接口先写类/接口注释,标明类/接口的用途、版本、作者等信息。类/接口注释之后空一行,然后写类/接口声明。extends和implements写在不同行。,/*authorAdministrator*类/接口声明*/publicclasstestextendsFaultProcess,规则-类变量的声明顺序是public,protected,package,private规则-变量、常量的注释应放在其上方相邻位置或右方规则-用递增的方式写构造器(比如:参数多的写在后面)规则-类变量的存取方法:get和set方法规则-如果定义main()方法,必须将main方法写在类的底部,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则EJB代码文件命名习惯变量方法可读性程序效率质量保证附录A,文件命名规则,规则-Structs配置文件命名sc-模块名.xml规则-JSP文件命名规则-Java文件命名,模块名Action.javaaction文件模块名Form.javaform文件模块名Svc.javaservice文件表名Dao.javadao文件表名Vo.javavo文件表名PK.java主键的vo文件,模块名_main.jsp主文件模块名_xxx.jspxxx命名详见附录A:词典规范,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则EJB代码文件命名习惯变量方法可读性程序效率质量保证附录A,4.1方法排版规则,规则-方法名和其后的括弧之间不应有空格示例:intgetResult(intforInt,charforChar)规则-缩进采用4个空格注意:一定要使用空格键。这样可以避免使用不同的编辑器阅读程序时,因TAB键所设置的空格数目不同而造成程序布局不整齐。规则-在方法的局部变量声明和其它语句之间加一个空行,voidmethod1()/声明intanInt=0;StringaString=null;ObjectanObj=null;/语句if(condition),4.2语句排版规则,规则-简单语句每行至多包含一条语句规则-左大括号应位于复合语句起始行的行尾;右大括号应另起一行并与复合语句首行对齐。规则-必须用和将if内的语句括起来。(即使只有一条语句的情况下),argv+;/正确argc-;/正确argv+;argc-;/不允许这样使用!,for(initialization;condition;update)statements;,正确:if(condition)System.out.println(“正确”);,错误:if(condition)System.out.println(“错误”);,规则-在多层嵌套的if语句中,需以尾端注释的方式表示出层次关系规则-for语句中的表达式要用空格分开示例:for(expr1;expr2;expr3)规则-在多层嵌套的for语句中,应以尾端注释的方式表示出层次关系规则-每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位置添加注释。下面的示例代码中就包含注释/*fallsthrough*/示例:,一个switch语句应该具有如下格式:switch(condition)caseABC:statements;/*fallsthrough*/caseDEF:statements;break;caseXYZ:statements;break;default:statements;break;,建议-关键词for和后面的括号之间加一个空格建议-关键词while和后面的括号之间加一个空格建议-关键词switch和后面的括号之间加一个空格建议-关键词catch和后面的括号之间加一个空格,4.3表达式排版规则,规则-左括号和后一个字符之间不应该出现空格,同样,右括号和前一个字符之间也不应该出现空格规则-用空格分隔所有的二元运算符(除了.)和操作数示例:规则-一元操作符和操作数之间不加空格一元操作符包括负号(-)、自增(+)、自减(-)。示例:规则-强制转型后要跟一个空格示例:,a=(a+b)/(c*d);,i+;j-;,myMethod(byte)aNum,(Object)x);myMethod(int)(cp+5),(int)(i+3)+1);,建议4.3.6单行不应超过80个字符断行的原则是:在逗号后。在操作符前。所断的行之间要对齐。,someMethod(longExpression1,longExpression2,longExpression3,longExpression4,longExpression5);longName1=longName2*(longName3+longName4-longName5)+4*longname6;/更好一些longName1=longName2*(longName3+longName4longName5)+4*longname6;/避免这样使用,示例:,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则EJB代码文件命名习惯变量方法可读性程序效率质量保证附录A,5.1类注释规则,规则-使用JavaDoc,列出功能、版本信息、日期、作者和版权声明示例:规则-如果对文件进行了修改,必须说明修改目的、修改日期、修改人,并变更版本信息示例:,/*Title:缴费*Description:缴费*Copyright:Copyright(c)2006*Company:*authorxxxx*version1.0*/,/*Title:缴费*Description:缴费*Copyright:Copyright(c)2006*Company:*authorxxxx*version1.0*修改日期修改人修改目的*/,5.2类方法注释规则,使用JavaDoc。示例:规则5.2.1用中文写出每个参数和返回值的含义,/*paramCustID:客户ID*return返回用户的单位信息*throwsException*/,5.3块注释规则,规则-方法内部的块注释位于所描述内容之前规则-块注释之前留一行空行块注释的格式如下:示例:块注释和所描述代码具有一样的缩进格式。,方法内容/*这里是块注释*/方法内容,5.4单行注释规则,规则-单行注释位于所描述内容之前规则-单行注释之前留一行空行单行注释的格式如下:示例:规则-单行注释和所描述代码具有一样的缩进格式规则-注释不能在一行写完时,就采用块注释,其它代码/这里是单行注释被注释内容,5.5尾端注释规则,规则-对变量或常量的简短注释在代码右端规则-代码和尾端注释之间留有足够多的空白尾端注释的格式如下:示例:,Stringname=null;/这里是尾端注释,5.6Java代码中需要文档化的部分,参数参数类型用于做什么一些相关约束、限制或者是前置条件(preconditions)复杂的情况下,还需包含一个示例以助说明。变量描述说明复杂的情况下,需要给出一个使用例子。示例:,/*Theuniqueidentifierofcurrentrecord.*ThisvariableisalsotheprimarykeyfortheEnterpriseBean.*/publicStringlogID;,类类说明(包括:作者、时间、类功能、目的等)已知的bug该类的开发/维护历史示例:,/*LogBeanisanEntityBean,itrepresentaaccessrecord.*ThisEJBeanillustrates:*Bean-managedpersistenceandContainer-Managedtransactions,*thecodeinthisfiledirectlyaccessesthedatastorage.*seeLogInterface*version1.0May.42000*authorSteveLiu*/,接口接口说明(包括:作者、时间、类功能、目的等)该接口应如何使用局部变量它的用法/目的方法该方法做什么以及为什么这样做该方法的传入参数说明该方法的返回说明已知的bugs该方法所抛出的异常说明该方法中代码更新的历史记录该方法如何调用前置条件(pre-condition)/后置条件(post-condition)说明方法内部注释方法内部变量说明复杂的逻辑部分的代码注释,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则EJB代码文件命名习惯变量方法可读性程序效率质量保证附录A,6.1包命名规则,规则-包的名字全部小写基本的包按如下方式组织和命名:.示例:mon根目录和一级目录必须使用com.sitech,6.2类命名规则,规则-类名用英文名称,不用汉语拼音。例如Customer,而不是KH规则-类名是名词,采用大小写混合的方式,每个单词的首字母大写规则-类名不要用复数规则-类名不要以“A”,“An”或“The”开头规则-使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)示例:,classPayCostAction;classBaseAction;,6.3接口命名规则,规则-接口的规则与类相同规则-接口名前面加“I”示例:,interfaceIClient,6.4方法命名规则,规则-方法名是动词名词对,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写,6.5变量命名规则,规则-变量名采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写规则-除一次性的临时变量(如for循环变量)以外,不能用单个字符的变量名规则-如果变量名代表容器(collection),如Array,Vector等,在变量名后加“List”,6.6常量命名规则,规则-类常量全部用大写字母,单词间用下划线隔开示例:,staticfinalintMIN_WIDTH=4;staticfinalintMAX_WIDTH=999;,6.7方法的参数命名规则,规则-使用全英文命名。首字母小写,后续单词首字母大写示例:,customer,account,-or-aCustomer,anAccount,6.8数组命名规则,规则-将放在类型后示例:,规范:bytebuffer;非规范:bytebuffer;,6.9Booleangetter方法命名规则,规则-所有布尔型get方法必须用单词”is”作为前缀。”is”为小写,后续单词首字母大写,其余字母小写示例:,isPersistent()isString()isDirty(),6.10Getter方法命名规则,规则-方法名以“get”为前缀示例:,getFirstName()getLastName()getWarpSpeed(),6.11Setter方法命名规则,规则-方法名以“set”为前缀示例:,setFirstName()setLastName()setWarpSpeed(),6.12构造方法命名规则,规则-构造方法使用类名示例:,Customer()CustomerInfo(),6.13析构器命名规则,规则6.13.1Java没有析构器,但是可以用finalize()方法来代替相关功能示例:,Finalize(),6.14异常命名规则,规则-异常实例名使用字母“e”来命名规则-异常类名使用以“Exception”结尾的示例:,SQLExceptionsqleProcessingExceptionMyException,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则EJB代码文件命名习惯变量方法可读性程序效率质量保证附录A,7EJB代码文件命名习惯,一个EJB可能会涉及到许多代码文件或者说Class/Interface,在此仅仅涉及需要开发的最基本的几个:HomeInterface、RemoteInterface、LocalHomeInterface、LocalInterface以及EJBeanClass。下面就针对SessionBean、EntityBean以及Message-DrivenBean(EJB2.0)分别对于上述几个Class/Interface的命名习惯进行约定。,规则-SessionBean代码文件命名HomeInterface:Bean的名字+HomeRemoteInterface:Bean的名字BeanClass:Bean的名字+ServiceLocalHomeInterface(EJB2.0):Bean的名字+LocalHomeLocalInterface(EJB2.0):Bean的名字+Local,规则-EntityBean代码文件命名HomeInterface:Bean的名字+HomeRemoteInterface:Bean的名字BeanClass:Bean的名字+BeanLocalHomeInterface(EJB2.0):Bean的名字+LocalHomeLocalInterface(EJB2.0):Bean的名字+LocalPKClass:Bean的名字+PK示例:一个记录日志的EntityBean的名字为“Log”,则:,HomeInterface名为“LogHome”RemoteInterface名为“Log”EJBeanClass名为“LogBean”LocalHomeInterface名为“LogLocalHome”LocalInterface名为“LogLocal”PKClass名为“LogPK”,规则-Message-DrivenBean代码文件命名(EJB2.0)BeanClass:Bean的名字+MsgBean,规则-EJB部署时的JNDI访问名称命名EJB在向EJBServer中部署时,必须指定其JNDI名称。该名称应使用该EJB的RemoteInterface名称来命名。例如上述例子中的RemoteInterface名为:Log,那么其JNDI名字也应该用“Log”。而对于Message-DrivenBean的JNDI名称,则将BeanClass名称去掉“Bean”即可。例如:有个Message-DrivenBeanClass为“LogMsgBean”,则该Bean的JNDI名称为“LogMsg”。,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则EJB代码文件命名习惯变量方法可读性程序效率质量保证附录A,变量,规则-不要将不同类型变量的声明放在同一行一行声明一个变量规则-提供对实例以及类变量的get和set方法若没有足够理由,不要把实例或类变量声明为公有。规则-不要在一个语句中给多个变量赋相同的值示例:fooBar.fChar=barFoo.lchar=c;/不要这样使用!,规则-不要将赋值运算符用在容易与相等关系运算符混淆的地方示例:规则-局部变量不要和公共变量同名规则-声明变量的同时对变量进行初始化,if(c+=d+)/不要这样使用.if(c+=d+)!=0).,目录,概述文件体系结构文件命名规则排版规则注释规则java命名规则EJB代码文件命名习惯变量方法可读性程序效率质量保证附录A,方法,规则-用注释详细说明每个参数的作用、取值范围及参数间的关系建议-方法的规模限制在200行以内建议-一个方法仅完成一件功能建议-为简单功能编写方法建议-不要设计多参数方法,去掉不使用的参数建议-方法的返回值要清楚、明了,让使用者不容易忽视错误情况建议-减少方法本身或方法内的递归调用,目录,概述文件体系结构文件命名规则排版

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论