JAVA技术开发标准

JAVA技术开发标准
JAVA技术开发标准

(一)注释规则

注释应该增加代码的清晰度,注释出谁在什么时候为什么做了一些事,而不仅仅是做了什么。尽量使用javadoc标志,为类生成文档。

Java中有三种注释方法:单行注释符(//),块注释符(/* /)和文档注释(/** */)

(1)单行注释符(//)

//注释符用来对一行代码添加说明型描述,常见使用如下:

a.变量注释,对变量的定义做出说明,不同的行之间要对齐,如下

int level; // indentation level

int size;// size of table

b.添加在一行代码结尾或一段代码开始用于对代码进行描述

if (foo > 1) {

// Do a double-flip.

...

}

else{

return false; // Explain why here.

}

(2)块注释符(/* */)

用于注释一段代码或添加多行说明,如:

/*

* Here is a block ment.

* ment continues…

* 如果该文件不是修改人创建的,还需要添加修改人,时间等信息

*/

(3)文档注释(/** */)

文档注释使用/**开头,在使用javadoc对java代码制作文当时会自动将代码中的文档注释添加到文档中去。在所有class开头和每个方法前都应该加上/**…*/注释,便于自动生成html格式的类库指南。(包括但不限于beans,action,form,dao)

对于class的文档注释应该写在class申明语句前,并且拥有如下格式:

/**

*

Title: 续期收费请求对象

*

Description: 封装页面提交的请求数据

*

Copyright: Copyright (c) 2002

*

pany: Co., Ltd.

* since 2008-08-20

* author Kevin Qiu

* version 1.0

*/

publicclass RenewChargeRO {}

(4)方法注释

/**

* 查询续期应收费用列表:查询指定保单保单的续期应收费用信息,

* 如果是修改,还应注明修改人及修改时间

* param sPolicyCode 保单

* return Collection of RenewChargeVO 应收费用信息列表

* throws Exception 所有发生可能的异常

*/

public Collection getRenewChargeList(String sPolicyCode) throws Exception;

注释开始是对方法的描述。Param是对参数的描述,return是返回类型的描述,throws是对抛出异常的描述。

严格按照文档注释的规X写出完整的注释后,程序生成的HTML类库指南就很详细,方便其他使用该类的程序员查阅和使用。

(二)BEANS定义规X

1、字段名称的取法符合规X,详细情况以数据字典为准,一般采用英文去掉元音后的三字母简写,例

如,code,简写cde;name简写nme;department简写 dpt;年月简写ptyear,ptmnth,金额简写orgamt,occamt,accamt;日期简写 ptdate,occdat,effdat,strdat,endate等。

2、String类型必须定义适当的长度;Double、Float类型必须定义适当的长度及精度

Column(nullable = true,length =10) ,如果是长文档备注类型,直接定义为Lob类型

Column(nullable = true,precision=14, scale=2)

3、可以为列建唯一索引,如下所示

Column(nullable = true,length =15,unique=true)

columnDefinition,为列设定默认值

4、按适当的情况定义主键及复合索引等

Table(name="sys_clnt",uniqueConstraints={UniqueConstraint(columnNames={"clntid","simpname"})})

定义本Beans的主键,主键可以是Integer,String,Date等类型

Id

TableGenerator(name = "SId", table = "sysid", pkColumnName = "id", valueColumnName = "tableid", pkColumnValue = "5", allocationSize = 1, initialValue = 10000000) GeneratedValue(strategy = GenerationType.TABLE, generator = "SId") Column(nullable = false,length =10)

private String usercode;

5、每个定段必须要用行注释“//”的形式来说明字段的意义,每行注释必须对齐,说明必须清晰,如果该字段内容来自于SysItem,则需在注释中说明ITEMID键值等。

6、在定义中,我们使用的类型仅为String、Double、Integer、Date、Long型,不使用其它类型(在保险相关的项目中,所有的日期型均使用Date型,其它类型项目使用Long型)。

(三)JSP或HTML页面规X

1、下拉列表需要使用

框起来。

2、标识为必需录入框的语句为*,该标识放置于录入框的后面。

3、如何格式化数字,

4、一般中文或是字符串要求左对齐;定长数据可以居中(如固定长度日期,固定长度订单号,固定

长度XX,定长代码等),数字要求右对齐(后面再放置“   ”占位),且必须格式化,如"#,##0.00"这种,单价/金额/发票/一般保留二位,重量与常规的数量保留整数。

5、页面上所有的录入框、下拉列表等,必须使用适当的clsass或StyleClass类型,控件的长度一般

一致,每行三列数据项的方式排列。

6、Jsp或是Html文件名首字母必须大写。

7、Jsp中使用TABLE时,其中的、要有缩进及对齐。

8、对action中返回到Jsp的List->objs,除了能直接使用对象的外,一律使用数组的方式实现输出,

如下所示:

${objs[0]}-${objs[1]}

${objs[2]}

${objs[3]}

9、jsp/java中不得有任何引起警告的代码。

10、在任何一个JSP中,对JSP的BODY使用如下样式,支持按回车跳下一个控件

11、在JSP中,如果以按钮提交的方式来定义提交对应的类型,通用方法强制用以下方法命名

保存:

编辑:

删除:

查询:

12、在JSP中,如果以activeType的方式来定义提交类型,通用方法强制用以下代码表示:

保存:

编辑:

删除:

查询:

13、对于有CODE及NAME形式显示的资料,在页面上一律使用CODE-NAME的形式显示给用户。

14、查询及报表

保证所有查询条件的有效性;汇总及明细一致性,查询结果及报表输出的一致性;不同查询或是报表的结果一致性,页面常见功能的有效性。

无论何种情况,如果报表与查询需求并非一致,不能放在同一页面中。

任何报表,必须先有查询及JSP List,才能有打印。

报表的风格要求:按公司报表模板执行。

(四)JAVA编程规X

1、通用命名规X

2、action & form中的特殊命名要求:

a.ActionMappin命名为mapping;ActionForm命名为pForm;HttpServletRequest命名为req;

HttpServletResponse命名为res;

b.Action中用于拼装SQL条件的StringBuffer变量一律命名为hql或sql,如果需要二个以上,

则是hql0/sql0、hql1/sql1、hql2/sql2……

3、所有分页查询的action一律使用getList或getListBySQL这二个函数完成,如果使用这二个函

数,引用方法一律为DAO.getList……的形式。

a、特殊情况下,使用executeSQLQuery或executeQuery获取数据,则需在action中添加代码

if(pForm.getRowsPerPage()!=0)

page.setRowsPerPage(pForm.getRowsPerPage());

4、对数据库中选出的分页记录中的Long型日期,在action中直接转化为页面需要的”yyyy-MM-dd”

类型,不建议使用数据库的函数完成转换,因为不能使用程序通用化,参考以下代码:SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

int i=0;

for(Iterator it = page.getList().iterator();it.hasNext();){ Object[] si = (Object[])it.next(); si[5]=(si[5]!=null?df.format(new Date(Long.valueOf(si[5].toString()))):""); page.getList().set(i, si);

i++;

}

5、所有的方法必须有方法注释,详见前面的格式;如果程序超过200行左右的代码,应该分为不同的方法或是函数,维护程序的可读性。

6、任何JAVA代码中不能有引起警告状态;对不得不使用而导致的情况按以下方法进行处理。SuppressWarnings("deprecation")

SuppressWarnings("unchecked ")

SuppressWarnings({"deprecation", "unchecked"})

7、常规程序要求:事务提交的一致性及错误回滚要求;程序功能流转保证正确,相关数据准确无误,含各种验证及错误处理,不能有应用服务器的报告错误页面出现

8、代码缩排规则

(1)同行的代码缩排的间距一般定为4个空格,Tab键一般设为4个空格。

(2)行代码或注释的长度尽量少于80个字符,如果一行代码过长,应该换行。

(3)逗号后加空格后再写其他代码,在每个运算符前后也都要留有空格。

(4)长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

(5)表达式在换行时应该首先考虑在优先级高的运算符处换行,新行的开始位置应该和原先行的

相应字符对齐。如:

longName1 = longName2 * (longName3 + longName4

- longName5) + 4 * longname6;

应该写成

longName1 = longName2 * (longName3 + longName4 - longName5)

+ 4 * longname6;

例如SQL拼装式例,每个字段分一行,”,”放在字段的前面,如下所示。

sql.append("select orgcode" +

",organizename" +

",ptyear" +

",ptmnth," +

",ab");

(6)对独立的程序块之间、变量说明之后必须加空行。

(7)函数或过程中的参数较长,则要进行适当的划分。

(8)不允许把多个短语句写在一行中,即一行只能写一条语句。

(9)if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。

(10)对齐只使用TAB,不使用空格键。

相关主题
相关文档
最新文档