您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 1J2EE项目开发编码规范
J2EE项目开发规范一JAVA编码规范1命名规范1.1包命名包名称必须全部用小写。命名方式:业务领域名.子系统名.层名如com.environment.apps。1.2类命名类名以英文单词取名,首字母必须大写,多个英文单词以大写字母间隔,避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。类名中不允许‘_’、‘-’等符号。1.3属性/local变量命名定义属性的位置,在类定义的开始,按照public,protected,package,private顺序放置。定义local变量尽量在那段代码的开始处,如方法的开始处。如果是if,for,while段,尽量在左大括号“{”的下一行处定义要使用的local变量。尽量用相同含义英文单词表示,不允许‘_’、‘-’等符号,如:custName。第一个字母小写,中间单词的第一个字母大写。不要用_或&等符号作为第一个字母。单字符的变量名一般只用于生命期非常短暂的变量。如:i,j,k,m,n一般用于int。如果变量是集合,则变量名应用复数,即以小写s结尾。例如:序号变量名称注释1strfileName“文件名”字符串类型2intfileCount“文件总数”整型3strnames多个“文件名”的集合4gMemory全局变量基本类型变量命名清单类型前缀示例intintintPageIndexlonglnglngCountbytebytbytPixelbooleanblnblnEmptydoubledbldblSalaryfloatfltfltSalaryStringstrstrUserNamecharchrchrDriveObjectobjobjAccount1.4常量命名所有常量名均全部大写,单词间以‘_’隔开。例如:序号常量名称注释1MAX_NUM最大数2publicstaticfinalStringFUNCTION_LIST=function_list;…3……1.5方法命名方法命名采用“动作+属性”的方法。并且,动作以小写字母开始,属性以大写字母开始。常用的动作有:is、get、set、save、add、del等。例如:getName、setName、isSysManager、saveXXX、mdfXXX、delXXX等。规则名称规则说明新增数据addXXX修改数据updateXXX变更数据alertXXX删除数据delXXX查看详细信息viewXXX查询数据queryXXX进入某个功能页面entryXXX下一步next、nextToXXX或entryXXX1.6其他命名开发人员如果遇到上述表格中未列举的类型,请书面通知相关管理人员,由管理人员集中更新列表内容,不得擅自启用未经确定的新变量前缀。2编码规范2.1程序基本构成a)公用元素公用元素指“公用变量”、“公用类”等,由于公用元素对程序中所有类都是可见的,故对它们的修改将会对整个程序造成影响。“公用变量”过多也会破坏数据的隐藏性,与“面向对象编程”的规范不符。所以,公用变量的使用请慎重考虑。b)函数返回值注意函数返回值的初始化。c)代码段注释“//”注释用于对程序的注解等。“/*....*/”注释用于对程序修改时临时删除部分程序代码。注:是否作为“临时代码删除和对程序的注释”仅作为参考,根据具体情况而定d)设定初值所有变量均应设定其初值,而且变量的初值不应依靠编译程序自动设定。e)错误返回值调用方法后,应检查errno或方法返回值,以确定操作是否完成。若返回错误,返回对应的错误编码。f)内存释放当原先分配的内存不在需要时,应将其释放。g)类及方法注释在类、方法开始之前需要添加中文注释,类和方法的注释采用Java自动生成的注释格式,即输入/**回车后生成的注释格式。类注释【格式】/***类功能说明*类修改者修改日期*修改说明*pTitle:ZDK/p*pDescription:南华中天J2EE运行支撑及快速开发平台/p*pCopyright:Copyright(c)2006/p*pCompany:重庆南华中天信息技术有限公司/p*@author类创建者名字创建日期*@version版本号*/函数注释【格式】/***函数功能说明*创建者名字创建日期*修改者名字修改日期*修改内容*@param参数名称参数类型参数说明*@return返回值类型返回值说明*/循环语句和判断语句前必须注释。特殊变量声明时需要注释。程序段注释【格式】如果做过修改需加上修改者和日期//修改者修改日期说明或者/***修改者修改日期*说明*/变量或属性注释【格式】//说明或者/***说明*/2.2代码格式格式缩进用分层缩进的写法显示嵌套结构的层次;巢串式陈述句应比外层陈述句内缩四格。【范例】importjava.util.*;importjava.awt.*;importjava.applet.Applet;importjava.awt.event.*;importjavax.swing.*;/***类功能说明*类修改者修改日期*修改说明*pTitle:ZDK/p*pDescription:南华中天J2EE运行支撑及快速开发平台/p*pCopyright:Copyright(c)2006/p*pCompany:重庆南华中天信息技术有限公司/p*@author类创建者名字创建日期*@version版本号*/publicclassWFextendsJAppletimplementsActionListener{WFPanelwfpanel;PanelcontrolPanel;WFPropwfprop;NodePropnodeprop;EdgePropedgeprop;JButtonjbAddNode=newJButton(添加节点);JButtonjbAddEdge=newButton(添加路由);JButtonjbDelNode=newButton(删除节点);JButtonjbDelEdge=newButton(删除路由);JButtonjbClose=newButton(关闭);privateJPaneljpPane=null;privateJToolBarjtbTools=null;privateJPaneljpCanvas=null;privateJNodePropjnpNodeProp=null;}【说明】适当内缩后的程式能表现出逻辑结构,并增进可读性,易于理解。【范例】publicclassWFextendsJAppletimplementsActionListener{WFPanelwfpanel;PanelcontrolPanel;WFPropwfprop;NodePropnodeprop;EdgePropedgeprop;JButtonjbAddNode=newJButton(添加节点);JButtonjbAddEdge=newButton(添加路由);JButtonjbDelNode=newButton(删除节点);JButtonjbDelEdge=newButton(删除路由);JButtonjbClose=newButton(关闭);privateJPaneljpPane=null;privateJToolBarjtbTools=null;privateJPaneljpCanvas=null;privateJNodePropjnpNodeProp=null;}空白行逻辑上相关序代码与其前后之程序代码间应以空白行加以分隔;在注释段与程序段、以及不同程序段插入空行。每行只写一条语句。【说明】适当地使用空白行可以使程序的逻辑结构更清楚,而提高其可读性。2.3异常处理在当前的系统架构中,系统自下而上被分为持久化层(OP)、业务处理层(BP)、请求处理层(RP)、struts、界面层(UI),本规范约定了持久层、业务处理层、请求处理层的异常处理机制。I异常处理总原则1.下层只向上层抛一类异常。如:业务处理层只向请求处理层抛ApplicationException异常。2.为了使系统能够更好的跟踪运行情况,必须把底层异常放入新异常中。如:thrownewApplicationException(查询单位时发生系统异常,e)3.如果一个层要抛出多个异常,那么所有自定义异常必须统一继承一个父类异常。这样上层可以通过父类异常捕获4.异常统一在请求处理层(rp层),即action里进行处理,请求处理层以下的层次在处理异常时,只需要把底层的异常类放到本层约定的异常类中,并抛出,如有需要可以加适当的异常消息,并不需要记录LOG,LOG在框架里会自动处理。II请求处理层的异常处理所有的action继承于BizDispatchAction、BizLookupDispatchAction或CommonQueryAction,在异常处理的时候直接调用父类的saveErrors方法如:III页面层异常的处理引入xxx标签库,然后在页面中加入xxx:errors/标签,页面就会自动将Action中保存的错误信息取出,显示在弹出窗口。如:2.4事务处理当前的系统架构中支持嵌套事务,事务管理必须通过系统框架提供的事务管理类(TransManager)来完成。1)事务调用方法开始事务trans.begin()提交事务trans.commit()回滚事务trans.rollback()事例代码try{enterprise=service.search(newLong(enterpriseID));BeanUtils.copyProperties(myform,enterprise);log.info(Enterprise=+enterprise.getName());}catch(NumberFormatExceptionex){saveErrors(request,ex,数据格式化出错!);%@tagliburi=lemis.tldprefix=lemis%htmlbodyxxx:errors//body/html2.5页面文件部署(一)页面部署总原则1.文件夹名称全部小写2.jsp文件名称小写开头(二)页面部署清单名称位置说明Css样式表单cqxxx\cssXxx是项目名称的缩写图片cqxxx\imagesJavascriptcqxxx\jsHtccqxxx\htc标签库配置文件(tld)cqxxx\WEB-INFStruts配置文件cqxxx\WEB-INF引入的包cqxxx\WEB-INF\libxxx的配置文件cqxxx\WEB-INF\confHibernate的配置文件cqxxx\WEB-INF\classesJsp文件cqxxx\。。。……二框架包结构try{trans=newTransManager();flag=trans.begin();//事务开始。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。if(1==flag)trans.commit();//事务提交}catch(OPExceptione){try{//事务回滚trans.rollback();}catch(OPExceptione1){thrownewApplicationException(e1);}thrownewApplicationException(e);}所有包名以”zenith.ep.xxx”开始。其中“xxx”为各子项目的名称。按功能模块划分包:log:该包中定义和日志有关的类;exception:该包中定义自己的异常类;web:该包中定义所有和表现层有关的类;子包:servletproxy:存放servlet处理标签组件的AJAX请求tag:存放标签类子包model存放标签支持类(组件的数据处理类)validator存放标签校验类template:存放模板处理类i18n:存放国际化处理类zenith.ep.xxx(总包)zenith.ep
本文标题:1J2EE项目开发编码规范
链接地址:https://www.777doc.com/doc-4351706 .html