软件开发编码规范(JAVA、SQL)

更新时间:2023-11-01 18:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

系统开发规范

系统开发规范

编 制: 莫 小 明

版 本 历 史

1 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

目录

1

概述 ................................................................................................................................................................................... 3 1.1. 内容 ....................................................................................................................................................................... 3 1.2. 编写目的 ............................................................................................................................................................... 3 1.3. 阅读对象 ............................................................................................................................................................... 3 java编码命名规范 ........................................................................................................................................................... 4 2.1 Package 的命名 .................................................................................................................................................... 4 2.2 Class 的命名 ........................................................................................................................................................ 4 2.3 变量及方法命名 ................................................................................................................................................... 4 2.4 Static Final 变量的命名 ....................................................................................................................................... 4 2.5 参数的命名 ........................................................................................................................................................... 5 2.6 数组的定义及命名 ............................................................................................................................................... 5 2.7 方法的参数 ........................................................................................................................................................... 5 2.8 内部循环变量的命名 ........................................................................................................................................... 5 2.9 JavaBean规范 ...................................................................................................................................................... 5 java注释规范 ................................................................................................................................................................... 6 3.1 单行注释 ............................................................................................................................................................... 6 3.2 类注释 ................................................................................................................................................................... 6 3.3 方法注释 ............................................................................................................................................................... 7 3.4 变量注释 ............................................................................................................................................................... 8 java编码排版规范 ........................................................................................................................................................... 8 4.1 =间的空格 ............................................................................................................................................................. 8 4.2 空行 ....................................................................................................................................................................... 8 4.3 换行 ....................................................................................................................................................................... 9 4.4 缩进 ....................................................................................................................................................................... 9 4.5 声明 ....................................................................................................................................................................... 9 4.6 括号 ..................................................................................................................................................................... 10 java编码格式约定 ......................................................................................................................................................... 10 数据库编码命名规范 ..................................................................................................................................................... 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

2

3

4

5 6

2 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

6.9 字段名命名 ......................................................................................................................................................... 13 6.10 字段别名 ......................................................................................................................................................... 13 7 数据库SQL语句格式 .................................................................................................................................................... 13

7.1 大小写说明 ......................................................................................................................................................... 13 7.2 INSERT INTO 语句 ............................................................................................................................................. 14 7.3 UPDATE 语句 ....................................................................................................................................................... 14 7.4 SELECT 语句 ....................................................................................................................................................... 14 8 补充说明异常抛出 ......................................................................................................................................................... 15

8.1 Service层异常的抛出 ...................................................................................................................................... 15 8.2 控制层异常的处理 ............................................................................................................................................. 16 9 方法修饰说明 ................................................................................................................................................................. 16 10 调用过程说明 ............................................................................................................................................................. 17

1 概述

1.1. 内容

本规范说明书从大方面来说包括:java编码规范、数据库表、字段等的命名、SQL语句排版,以及后面补充的一些说明。

1.2. 编写目的

编码规范对于程序员而言尤为重要,有以下几个原因: ? 一个软件的生命周期中,80%的花费在于维护。

? 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护。

? 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码,增加可读性,减少

项目组中因为换人而带来的损失。

? 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其

它任何产品 。

1.3. 阅读对象

本规范说明书阅读对象可以是开发人员、设计人员、测试人员、审查代码人员。

3 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

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 =\

4 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

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 方法的专用实例变量。

5 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

}

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

11 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

方法,不提倡使用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

12 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

例如: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语句必须全部用大写字母编写。

13 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

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

14 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

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

15 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

try{

//当人为抛出异常时:

throw new ServiceException(\自定义抛出异常信息定义!\); }catch(Exception e) {

throw new ServiceException(\+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来修饰 原因:

16 http://www.China-soa.com 重庆斯欧信息技术有限公司

系统开发规范

1、static修饰的方法实际上是全局方法,只要是public,在任何地方均能被访问,并

且程序一被访问,在内存中已经存在。

2、一般重用性极强方法才使用static修饰,如我们的DataBase类,逻辑性强、调用

穿插复杂的方法不需要用static修饰,因为不够灵活。 3、被static修饰的方法和非static修饰的方法的生命周期不一样。

10 调用过程说明

Factory(UI层)如果要调用底层的java逻辑方法,一律调用control控制层。不允许跨越control控制层直接调用service业务层,同样是因为后期的维护我们才这么决定。我们总体访问过程大致都是这样的:

portlet调用[参数]控制层逻辑层DataBase组件EJB组件调用[参数]调用EJB[参数]调用[参数]返回返回返回返回异常

17 http://www.China-soa.com 重庆斯欧信息技术有限公司

本文来源:https://www.bwwdw.com/article/pcv2.html

Top