java开发编码规范

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业务层,同样是因为后期的维护我们才这么决定。我们总体访问过程大致都是这样的:


 概述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值