您的位置:首页 > 编程语言 > Java开发

java开发编码规范

2012-08-04 08:18 246 查看
1
概述..............................................................................................................................................................
3

1.1.
内容...................................................................................................................................................
3

1.2.
编写目的............................................................................................................................................
3

1.3.
阅读对象............................................................................................................................................
3

2
java编码命名规范.........................................................................................................................................
4

2.1
Package的命名..................................................................................................................................
4

2.2
Class的命名.......................................................................................................................................
4

2.3
变量及方法命名..................................................................................................................................
4

2.4
StaticFinal 变量的命名.......................................................................................................................
4

2.5
参数的命名.........................................................................................................................................
5

2.6
数组的定义及命名..............................................................................................................................
5

2.7
方法的参数.........................................................................................................................................
5

2.8
内部循环变量的命名...........................................................................................................................
5

2.9
JavaBean规范....................................................................................................................................
5

3
java注释规范................................................................................................................................................
6

3.1
单行注释............................................................................................................................................
6

3.2
类注释................................................................................................................................................
6

3.3
方法注释............................................................................................................................................
7

3.4
变量注释............................................................................................................................................
8

4
java编码排版规范.........................................................................................................................................
8

4.1
=间的空格..........................................................................................................................................
8

4.2
空行...................................................................................................................................................
8

4.3
换行...................................................................................................................................................
9

4.4
缩进...................................................................................................................................................
9

4.5
声明...................................................................................................................................................
9

4.6
括号.................................................................................................................................................
10

5
java编码格式约定.......................................................................................................................................
10

6
数据库编码命名规范...................................................................................................................................
12

6.1
大小写说明.......................................................................................................................................
12

6.2
数据库表命名...................................................................................................................................
12

6.3
视图命名..........................................................................................................................................
12

6.4
自定义函数命名................................................................................................................................
12

6.5
PL/SQL存储过程命名.......................................................................................................................
12

6.6
JAVA存储过程命名............................................................................................................................
12

6.7
数据库包命名...................................................................................................................................
13

6.8
自定义类型命名 13

1
概述..............................................................................................................................................................
3

1.1.
内容...................................................................................................................................................
3

1.2.
编写目的............................................................................................................................................
3

1.3.
阅读对象............................................................................................................................................
3

2
java编码命名规范.........................................................................................................................................
4

2.1
Package的命名..................................................................................................................................
4

2.2
Class的命名.......................................................................................................................................
4

2.3
变量及方法命名..................................................................................................................................
4

2.4
StaticFinal 变量的命名.......................................................................................................................
4

2.5
参数的命名.........................................................................................................................................
5

2.6
数组的定义及命名..............................................................................................................................
5

2.7
方法的参数.........................................................................................................................................
5

2.8
内部循环变量的命名...........................................................................................................................
5

2.9
JavaBean规范....................................................................................................................................
5

3
java注释规范................................................................................................................................................
6

3.1
单行注释............................................................................................................................................
6

3.2
类注释................................................................................................................................................
6

3.3
方法注释............................................................................................................................................
7

3.4
变量注释............................................................................................................................................
8

4
java编码排版规范.........................................................................................................................................
8

4.1
=间的空格..........................................................................................................................................
8

4.2
空行...................................................................................................................................................
8

4.3
换行...................................................................................................................................................
9

4.4
缩进...................................................................................................................................................
9

4.5
声明...................................................................................................................................................
9

4.6
括号.................................................................................................................................................
10

5
java编码格式约定.......................................................................................................................................
10

6
数据库编码命名规范...................................................................................................................................
12

6.1
大小写说明.......................................................................................................................................
12

6.2
数据库表命名...................................................................................................................................
12

6.3
视图命名..........................................................................................................................................
12

6.4
自定义函数命名................................................................................................................................
12

6.5
PL/SQL存储过程命名.......................................................................................................................
12

6.6
JAVA存储过程命名............................................................................................................................
12

6.7
数据库包命名...................................................................................................................................
13

6.8
自定义类型命名................................................................................................................................
13

6.9
字段名命名.......................................................................................................................................
13

6.10
字段别名.......................................................................................................................................
13

7
数据库SQL语句格式..................................................................................................................................
13

7.1
大小写说明.......................................................................................................................................
13

7.2
INSERTINTO 语句............................................................................................................................
14

7.3
UPDATE语句.....................................................................................................................................
14

7.4
SELECT语句.....................................................................................................................................
14

8
补充说明异常抛出.......................................................................................................................................
15

8.1
Service层异常的抛出......................................................................................................................
15

8.2
控制层异常的处理............................................................................................................................
16

9
方法修饰说明..............................................................................................................................................
16

10
调用过程说明..........................................................................................................................................
17

概述
1.1.	内容
本规范说明书从大方面来说包括:java编码规范、数据库表、字段等的命名、SQL语句排版,以及后面补充的一些说明。
1.2.	编写目的
编码规范对于程序员而言尤为重要,有以下几个原因:
	一个软件的生命周期中,80%的花费在于维护。
	几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护。
	编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码,增加可读性,减少项目组中因为换人而带来的损失。
	如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 。
1.3.	阅读对象
本规范说明书阅读对象可以是开发人员、设计人员、测试人员、审查代码人员。
2	java编码命名规范
2.1	Package 的命名
Package 的名字应该都是由一个小写单词组成。
例如:
package com.soa.service.bi.fi;
package com.soa.service.sox4;
2.2	Class 的命名
Class 的名字必须由大写字母开头而其他字母都小写的单词组成,对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母,一般使用名词命名。
public abstract class AbstractSox4Service {
/*内容*/
}
2.3	变量及方法命名
变量的名字必须用一个小写字母开头。后面的单词用大写字母开头。变量一般使用名词命名,方法名一般使用动词命名,并带有一定的意义,让人一读就懂;再者对于业界认可的单词或固有名词,可直接使用。
EG 变量:userName ,方法名: getUserInformation、addNews

2.4	Static Final 变量的命名
static Final 变量的名字应该都大写,并且指出完整含义(给出出注释)。
//DBConfig PATH
public static final String  DB_CONFIG_FILE_PATH ="com.neu.etrain.dbconfig";
2.5	参数的命名
参数的名字必须和变量的命名规范一致。
2.6	数组的定义及命名
数组应该总是用下面的方式来命名:
byte[] buffer;   而不是: byte buffer[];
2.7	方法的参数
使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:
setCounter(int size)
{
this.size = size;
}
2.8	内部循环变量的命名
	请不要用i、j、n等没有意义的变量命名;
	不要怕麻烦,请使用带有意义的单词命名;
	如:userListSize、rowLength等来命。
2.9	JavaBean规范
	一个javaBean类必须是一个公共类,类都得设置为public ;
	一个javaBean类必须有一个空的构造函数,必须有一个不带有参数的公用构造器。此构造器也应该通过调用各个特性的设置方法来设置特性的缺省值;
	一个javaBean类不应有公共实例变量,类变量都为private,变量的命名上面已经说明清楚;
	持有值应该通过一组存取方法(getXxx和setXxx)来访问,对于需要的每个特性,应该有一个带有匹配公用getter 和setter 方法的专用实例变量。
3	java注释规范
3.1	单行注释
注释要简单明了。

//用户名
String userName = null;

3.2	类注释
/**
*
* 功能描述:写上你的描述,至少能看懂本类是做什么的,有哪些功能
*
* @see
*   与该类相关的类,写出具体的路径:包括完整的包名和类名.java
*
* @author (作者) 写上你的姓名
*
* @company (开发公司) 重庆斯欧(SOA)信息技术有限公司</p>
*
* @copyright (版权) 本文件归属重庆斯欧(SOA)信息技术有限公司所有</p>
*
* @since (该版本支持的JDK版本) : 1.5
*
* @version (版本)
*
* @date (开发日期)  写上编写日期
*
* @modify (修改)
*                   <p>第一次修改:时间、修改人;修改内容简介 </p>
*                    <p>第二次修改:时间、修改人;修改内容简介 </p>
*                   <p>第三次修改:时间、修改人;修改内容简介 </p>
*
* @Review (审核人):
*
*/

3.3	方法注释
/**
* 方法描述
* @param args array of string arguments
* @return No return value
* @exception exceptions No exceptions thrown
*/
public static void main(String[] args)
{
System.out.println(“Hello  world !”);
}

如上示例,必须有:
	方法功能的基本描述
	每个参数的说明
	异常的说明
	返回值的说明
3.4	变量注释
对于普通变量的注释:
//用户姓名
String username = “xyz”;

//用户姓名
String username = “xyz”;

对于类变量的注释:
/**  XXXXXX */
String username = “xyz”;

4	java编码排版规范
4.1	=间的空格

关键词和变量,变量和操作符之间加一个的空格
Options opt1 = null;

4.2	空行
空行将逻辑相关的代码段分隔开,以提高可读性。
下列情况应该总是使用两个空行:
	一个源文件的两个片段(section)之间
	类声明和接口声明之间
下列情况应该总是使用一个空行:
两个方法之间
	方法内的局部变量和方法的第一条语句之间
	块注释或单行注释之前
	一个方法内的两个逻辑段之间,用以提高可读性

4.3	换行
当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:
	在一个逗号后面断开
	在一个操作符前面断开
	宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开
4.4	缩进
对不同级别缩进一个TAB

4.5	声明
推荐一行一个声明,因为这样以利于写注释。亦即,
// indentation level
int level;

// size of table
int size;

要优于,
int level, size;
不要将不同类型变量的声明放在同一行,例如:
int foo,  fooarray[];   //WRONG!

4.6	括号
花括号的的开始和结束均独占一行,并上下对齐

5	java编码格式约定
1.	import 语句导入详细的类名,而不是整个目录
Eg:
import com.soa.common.database.DataBase;
import com.soa.common.exception.DBException;
import com.soa.service.bi.AbstractBIService;

2.	每个类、成员变量、函数 都必须加注释。注释的格式遵照上面的“注释规范”

3.	已经发布的代码中,不允许出现大块的功能性注释。如果不需要该功能,请直接在代码中删除。

4.	请在已经发布的代码中去掉用于调试的任何代码。

5.	请在已经发布的代码去除所有未使用变量和函数。

6.	每一个成员变量、方法体内变量和成员函数都必须指定其作用域。
关于作用域,在一些不太重视代码质量的人的代码里会发现,一切的变量均在类里的开头一次性定义完,或者更是极为不负责任的创建一大堆的对象,谈到对象的创建,在这里说明一下java的运行机制,举例:
Public class A{}
Public class B extends A{
B (){
A a=	New A();
}
}
Public class C extends B{
C (){
A a = New A();
B b =new B();
}
}
这是一段很小的代码,C继承B,B又继承A(事实上A还继承了Object)。
当调用C的时候,在C的构造函数里初始化了A和B,然后程序马上又跑到B里执行,当在B里的时候又发现B的构造函数里初始了A,然后又要执行A的动作,A现在没任何动作,假设A的构造函数里又有一段比较复杂的代码,那么这个程序将花费大量时间在执行。而在C里,我们也没有执行具体的任务,仅仅是进入到C的状态就做了那么多的事情。所以,在一般情况下,我们都不建议一次性做数据的初始化(除非系统非常强烈的要求),我们建议以实际情况进行分析,合理的安排作用域是有好处的。这样可以很好的维护,也可以提高不少的性能问题,同时也可以排除过多的定义而导致混杂不清的错误。
同样,在方法体内,依然存在局部多用域问题,平时要小心、认真为妙。
7.	为避免虚拟机差异,在声明类的成员变量时,如果不指定其值,应该让其置空;
Eg: private Datastore codeDs = null;
8.	通常情况下。应该使用 log4j 来输出信息、而不是直接使用 System.out;
9.	在构造SQL 时,短小的sql语句尽量使用 “+”,而长度较大的SQL使用StringBuffer 的append 方法;
10.	方法内需要打印信息,请直接使用log.info(……)方法输出;
11.	方法内打印多个测试数据(如:list、map等对象数据)可使用Sys.print或Sys.println方法,不提倡使用sysout.out.print;
6	数据库编码命名规范
6.1	大小写说明
有关数据库的命名都是用大写。
6.2	数据库表命名
任何表必须以:SOA_开头,结尾为:_T
例如:SOA_BI_FIXED_ASSET_T  (固定资产规模趋势表)

6.3	视图命名
SOA_开头,结尾为:_V
例如:SOA_ BI _USER_V (固定资产规模趋势视图)
6.4	自定义函数命名
SOA_开头,结尾为:_F
例如:SOA _BI_USER_INFO_F

6.5	PL/SQL 存储过程命名
SOA _开头,结尾为:_P
例如:SOA _BI _USER_INFO_P

6.6	JAVA存储过程命名
SOA _开头,结尾为:_J
例如:SOA _BI _USER_J
6.7	数据库包命名
SOA_开头,结尾为:_ PKG
注:在ORACLE中合理的利用包可以更易于维护、使得整体结构更加清晰、执行效率更高。
6.8	自定义类型命名
以SOA_开头,以_CT(代表自定义类型)结尾
示例:SOA_BI_USER_ADMIN_CT
SOA_BI_USER_COMMON_CT
6.9	字段名命名
	以英文名命名
	对于多个单词组合的情况,以“_”分隔
	单词长度大的使用标准简称
	字段名应该在15字母以内
	字段不使用别名
示例:USER_NAME(用户名)
   USER_PWD(用户密码)
6.10	字段别名

7	数据库SQL语句格式
7.1	大小写说明
SQL语句必须全部用大写字母编写。

7.2	INSERT INTO 语句
INSERT INTO 表名(字段1, 字段2, 字段3)
VALUES(值1, 值2, 值3)
注意要求:
	第一行为:INSERT INTO 表(表字段)
	第二行为:VALUES(字段所对应的值)
	“,”后请打一个空格
7.3	UPDATE 语句
UPDATE 表名
SET 字段1 = 值1, 字段2 = 值2, 字段3 = 值3
WHERE
条件1
AND(OR) 条件2
AND(OR) 条件3
注意要求:
	第一行 :UPDATE 表名
	SET设置字段值(注:如果太长,请换行)
	“=”两头请都打空格
	“,”后请打一个空格
	若带条件,单独一行写WHERE
	空四个空格符,写上第一个条件
	若带多个条件,换行,敲两个空格,写AND 条件N
	一行只写一个 AND 条件
7.4	SELECT 语句
SELECT
字段1,
字段2,
字段3
FROM   表1, 表2, 表3
WHERE
条件1
AND(OR) 条件2
AND(OR) 条件3
ORDER BY 排列字段
GROUP BY 分组字段 HAVING 过滤条件
UNION[ALL]
SELECT ……
或者(SQL标准的关联查询写法):
SELECT
字段1,
字段2
字段3
FROM   表1
INNER(LEFT、RIGHT 、FULL) JOIN 表1 ON 条件
INNER(LEFT、RIGHT 、FULL) JOIN 表2 ON 条件
CROSS JION 表3 (注:交叉查询是不带 ON 条件的)
WHERE  条件1
AND(OR) 条件2
AND(OR) 条件3
ORDER BY 排列字段
GROUP BY 分组字段 HAVING 过滤条件
UNION[ALL]
SELECT ……
注意要求:
请注意以上的两种格式,该换行的请换行、该空格的请空格!建议采用第二种格式写法(相关的链接查询请正确的理解)
知识提醒:
INNER  JOIN 表ON 条件
同等于oracle中的 T1.A = T2.A
LEFT JOIN 表1 ON 条件
同等于oracle中的 T1.A = T2.A(+)
RIGHT JOIN 表1 ON 条件
同等于oracle中的 (+)T1.A = T2.A
8	补充说明异常抛出
8.1	Service层异常的抛出
	公开外部访问的方法(public)
必须:throws DBException,ServiceException
方法体必须为如下格式的try{ ……} catch
try{
//当人为抛出异常时:
throw new ServiceException("自定义抛出异常信息定义!");
}catch(Exception e) {
throw new ServiceException("service err:"+e.getMessage());
}
	不公开访问的方法(private)
只有在本类被使用,必须设置为private,此时异常抛出:
1、如果跟数据库相关的,则:
必须:throws DBException, Exception方法体不需要再try{ ……} catch。
2、如果跟数据库无关的操作,则:
必须:throws Exception方法体不需要再try{ ……} catch。

	单个数据库操作的方法
查询、新增、编辑、删除的单个操作,一律调用
DataBase.方法(sqlQuery)。
	含多个数据库操作的方法
包括(查询、新增、编辑、删除的混合操作)的方法内,一律调用
DataBase.方法(sqlQuery, connection)带connection的方法,并且方法结束后一定关闭数据库连接:
finally {
DataBase.closeConnection(connection);
}
	Service层的方法调用数据库入口说明
调用数据库入口一律以DataBase.方法,不能直接使用这样访问:
AbstractDatabase.方法。
8.2	控制层异常的处理
捕获:DBException,ServiceException, 或EJBException
9	方法修饰说明
	公开外部访问的方法——public
	不公开访问的方法——private
	Service层内的方法一律不允许适用static来修饰
原因:
1、	static修饰的方法实际上是全局方法,只要是public,在任何地方均能被访问,并且程序一被访问,在内存中已经存在。
2、	一般重用性极强方法才使用static修饰,如我们的DataBase类,逻辑性强、调用穿插复杂的方法不需要用static修饰,因为不够灵活。
3、	被static修饰的方法和非static修饰的方法的生命周期不一样。
10	调用过程说明
Factory(UI层)如果要调用底层的java逻辑方法,一律调用control控制层。不允许跨越control控制层直接调用service业务层,同样是因为后期的维护我们才这么决定。我们总体访问过程大致都是这样的:


概述

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: