J2EE项目开发编码规范Word文档下载推荐.docx
- 文档编号:19264936
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:23
- 大小:54.97KB
J2EE项目开发编码规范Word文档下载推荐.docx
《J2EE项目开发编码规范Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《J2EE项目开发编码规范Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
byte
byt
bytPixel
boolean
bln
blnEmpty
double
dbl
dblSalary
float
flt
fltSalary
String
str
strUserName
char
chr
chrDrive
Object
obj
objAccount
1.4常量命名
所有常量名均全部大写,单词间以‘_’隔开。
常量名称
MAX_NUM
最大数
publicstaticfinalStringFUNCTION_LIST="
function_list"
;
…
1.5方法命名
方法命名采用“动作+属性”的方法。
并且,动作以小写字母开始,属性以大写字母开始。
常用的动作有:
is、get、set、save、add、del等。
getName、setName、isSysManager、saveXXX、mdfXXX、delXXX等。
规则名称
规则
说明
新增数据
addXXX
修改数据
updateXXX
变更数据
alertXXX
删除数据
delXXX
查看详细信息
viewXXX
查询数据
queryXXX
进入某个功能页面
entryXXX
下一步
next、nextToXXX或entryXXX
1.6其他命名
开发人员如果遇到上述表格中未列举的类型,请书面通知相关管理人员,由管理人员集中更新列表内容,不得擅自启用未经确定的新变量前缀。
2编码规范
2.1程序基本构成
a)公用元素
公用元素指“公用变量”、“公用类”等,由于公用元素对程序中所有类都是可见的,故对它们的修改将会对整个程序造成影响。
“公用变量”过多也会破坏数据的隐藏性,与“面向对象编程”的规范不符。
所以,公用变量的使用请慎重考虑。
b)函数返回值
注意函数返回值的初始化。
c)代码段注释
“//”注释用于对程序的注解等。
“/*....*/”注释用于对程序修改时临时删除部分程序代码。
注:
是否作为“临时代码删除和对程序的注释”仅作为参考,根据具体情况而定
d)设定初值
所有变量均应设定其初值,而且变量的初值不应依靠编译程序自动设定。
e)错误返回值
调用方法后,应检查errno或方法返回值,以确定操作是否完成。
若返回错误,返回对应的错误编码。
f)内存释放
当原先分配的内存不在需要时,应将其释放。
g)类及方法注释
在类、方法开始之前需要添加中文注释,类和方法的注释采用Java自动生成的注释格式,即输入/**回车后生成的注释格式。
●类注释
【格式】
/**
*类功能说明
*类修改者修改日期
*修改说明
*<
p>
Title:
ZDK<
/p>
Description:
南华中天J2EE运行支撑及快速开发平台<
Copyright:
Copyright(c)2006<
Company:
重庆南华中天信息技术有限公司<
*@author类创建者名字 创建日期
*@version版本号
*/
●函数注释
*函数功能说明
*创建者名字创建日期
*修改者名字修改日期
*修改内容
*@param参数名称参数类型参数说明
*@return返回值类型返回值说明
*/
循环语句和判断语句前必须注释。
特殊变量声明时需要注释。
●程序段注释
如果做过修改需加上修改者和日期
//修改者修改日期说明
或者
*修改者修改日期
*说明
●变量或属性注释
//说明
*说明
2.2代码格式
格式缩进
用分层缩进的写法显示嵌套结构的层次;
巢串式陈述句应比外层陈述句内缩四格。
【范例】
importjava.util.*;
importjava.awt.*;
importjava.applet.Applet;
importjava.awt.event.*;
importjavax.swing.*;
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{
PanelcontrolPanel;
空白行
逻辑上相关序代码与其前后之程序代码间应以空白行加以分隔;
在注释段与程序段、以及不同程序段插入空行。
每行只写一条语句。
【说明】适当地使用空白行可以使程序的逻辑结构更清楚,而提高其可读性。
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方法
try{
enterprise=service.search(newLong(
enterpriseID));
BeanUtils.copyProperties(myform,enterprise);
log.info("
Enterprise="
+enterprise.getName());
}
catch(NumberFormatExceptionex){
saveErrors(request,ex,"
数据格式化出错!
"
III页面层异常的处理
引入xxx标签库,然后在页面中加入<
xxx:
errors/>
标签,页面就会自动将Action中保存的错误信息取出,显示在弹出窗口。
<
%@tagliburi="
lemis.tld"
prefix="
lemis"
%>
html>
body>
/body>
/html>
2.4事务处理
当前的系统架构中支持嵌套事务,事务管理必须通过系统框架提供的事务管理类(TransManager)来完成。
1)事务调用方法
●开始事务
trans.begin()
●提交事务
mit()
●回滚事务
trans.rollback()
事例代码
trans=newTransManager();
flag=trans.begin();
//事务开始
。
。
if(1==flag)
mit();
//事务提交
}catch(OPExceptione){
try{
//事务回滚
trans.rollback();
}catch(OPExceptione1){
thrownewApplicationException(e1);
}
thrownewApplicationException(e);
2.5页面文件部署
(一)页面部署总原则
1.文件夹名称全部小写
2.jsp文件名称小写开头
(二)页面部署清单
名称
位置
Css样式表单
cqxxx\css
Xxx是项目名称的缩写
图片
cqxxx\images
Javascript
cqxxx\js
Htc
cqxxx\htc
标签库配置文件(tld)
cqxxx\WEB-INF
Struts配置文件
引入的包
cqxxx\WEB-INF\lib
xxx的配置文件
cqxxx\WEB-INF\conf
Hibernate的配置文件
cqxxx\WEB-INF\classes
Jsp文件
cqxxx\。
二框架包结构
所有包名以”zenith.ep.xxx”开始。
其中“xxx”为各子项目的名称。
按功能模块划分包:
log:
该包中定义和日志有关的类;
exception:
该包中定义自己的异常类;
web:
该包中定义所有和表现层有关的类;
子包:
servletproxy:
存放servlet处理标签组件的AJAX请求
tag:
存放标签类
子包
model存放标签支持类(组件的数据处理类)
validator存放标签校验类
template:
存放模板处理类
i18n:
存放国际化处理类
util:
该包中定义通用工具类
common:
公共属性类
三标签组件命名规范
1组件名称
以标准的HTML元素为准,如果是组合元素取名时可参考VB的命名规则。
2属性
命名规则同上,尽量用相同含义英文单词表示,小写字母开头,多个英文单词之间以大写字母间隔,不允许‘_’、‘-’等符号,如:
custName;
3属性常量
属性常量命名规则可参考HTML元素手册或VB的标准控件。
前后台命名一致
增加常量后应在常量记录表中增加记录,避免命名重复和查看。
所用组件
组件属性
取值
常量说明
window
state
MIN_WINDOW
最大化窗口
MAX_WINDOW
4方法
命名规则同上,尽量用相同含义英文单词表示,小写字母开头,多个英文单词之间以大写字母间隔,不允许‘_’、‘-’等符号,如:
5事件
命名规则同上,事件以on开头,如:
onclick
四javascript编码规范
1.1类命名
以xxx为根类,其功能类以“.”符号+类名进行定义如xxx.Base
1.2属性命名
命名规则同JAVA。
1.3方法命名
私有方法用前面加”_”符号进行区别。
全局函数前面加”g”符号进行区别
1.4变量命名
命名规则同JAVA
局部变量前面加”_”符号进行区别。
(可选)
全局变量前面加”g”符号进行区别。
1.5其他命名
请参看JAVA编码规范
必须以Prototype.js所定义的原形进行编码。
所有的组件类必须继承ZenithTag.Base基类。
每个类必须有initialize类初试化函数
_SetOptions初试化属性函数
._SetListeners绑定事件函数
在_SetOptions中必须调用基类的_setBaseOptions函数设置基类的属性
代码格式如下:
ZenithTag.Select=Class.create();
//构造函数
ZenithTag.Select.prototype=Object.extend(newZenithTag.Base(),{
//类原形定义继承ZenithTag.Base()类
initialize:
function(url,options){//类初试化函数url处理请求的urloptions传入参数对象
this.url=url;
//得到处理请求的url
this._SetOptions(options);
//设置初始参数
this._SetListeners();
//设置事件监听
},
//设置初始参数
_SetOptions:
function(options){
this._setBaseOptions(options)//设置基类的属性
this.options=Object.extend({
Id:
options.Id,//控件ID
Type:
options.Type?
options.Type:
"
0"
//控件类型
Color:
options.Color?
options.Color:
#000000"
}),
_SetListeners:
function(){//设置事件监听
this.Button.onclick=this._OnShowPopup.bindAsEventListener(this);
//绑定单击按钮事件弹出下拉窗口
this.InputText.parentElement.onclick=this._OnShowPopup.bindAsEventListener(this);
this.InputText.onchange=this._OnInputChange.bindAsEventListener(this);
//绑定输入框内容改变事件
},}
五国际化
1实现国际化的要求
要实现国际化必须统一使用UTF-8字符集(包括,jsp页面,js文件,request,response,和数据库字符集)
2系统需要国际化的部分
●控件提示(tooltip),及要控件中需要显示到页面上的文本部分
●用户消息提示(包括错误,成功消息)
●javascript字符
●日志,
资源文件始终提供默认资源文件,使用时也可以硬编码指定资源文件。
默认资源文件名称为:
ApplicationResources.properties,与struts默认资源文件名称同名
3资源文件key命名规则
●jsp文件key命名规则
jsp.jsp目录路径.jsp页面名称.key名称
●java类文件key命名规则
包名.类名.key名称
4资源文件编码方法
需要使用jdk/bin目录下面的native2ascii.程序,首先设置setpath=xxx/jdk1.4/bin,然后在命令行进入资源文件目录运行naive2ascii程序
【语法说明】
native2ascii原资源文件名称.properties-encoding编码原资源文件名称_国家后缀.properties
native2asciiApplicationResources.properties-encodinggb2312ApplicationResources_zh_CN.properties
六HTML模版编写规范
HTML元素ID命名规范
如果组件是多个HTML元素组成。
其ID命名规则如下
1.客户端JS需要调用的HTML必须有ID
2.保存组件值用于表单提交的元素的ID=用户定义的组件ID
3Id命名必须体现元素之间的层次关系
4命名格式为用户定义的组件ID+组件名称+该元素的功能或元素类型
如窗口组件命名
DIVid="
组件id_window"
>
//窗口容器控件
<
组件id_window_frame"
//窗口边框
组件id_window_title"
>
//窗口标题栏
dibid=“组件id_window_title_img”>
//窗口标题图片
id_window_title"
//窗口标题
…………………………………..
/div>
./div>
1.1模版文件命名规范
如果是单个模版标签组件名称.ftl
如果模版有子模版命名规则为标签组件名称.+”_”+子模版名称
1.2模版变量命名规范
模版变量命名格式:
标签组件名称+”_property”
1.3模版调用规范
引用包
importzenith.ep.xxx.web.template.TemplateProcesser;
调用方式
Mapentitys=newHashMap();
entitys.put("
label_property"
this);
try{
TemplateProcesser.processTemplate("
label.ftl"
entitys,
pageContext.getOut(),
pageContext.getServletContext());
catch(ZDKExceptionex){
thrownewJspException(ex.getMessage(),ex);
七Web文件目录规范
1.1目录分类
xxx//根目录
……css//存放样式文件
……images///存放图片
……js//js文件根路径
…………lib//js引用文件路径
…………tag//存放标签类路径
…….templates//存放模版路径
1.2常量的划分与存放规则
常量分为前台常量,后台常量,标签属性常量和标签内部国际化提示字符常量。
前台常量放在constant.js文件中,命名格式为Constant.+”常量名称”,例如:
Constant.TYPE_BUTTON="
button"
//普通按钮"
后台常量放在GlobalNames,命名格式publicfinalstatic+常量类型+常量名称,例如:
publicfinalstaticbooleanUSE_I18N=tr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2EE 项目 开发 编码 规范