软件开发编码规范(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 重庆斯欧信息技术有限公司
正在阅读:
软件开发编码规范(JAVA、SQL)11-01
工程建设监理概论第2阶段测试题09-01
java扫雷需求规格说明书10-04
循环经济产业区“城市矿产”示范基地建设实施方案 - 图文11-26
我战胜了困难作文07-03
AutoCAD与工程制图学习指导与习题精讲选择填空05-03
采摘节、旅游节活动开幕式致辞4篇02-23
韩寒的青春经典语录02-07
我最喜欢的小动物作文400字07-16
小学生二年级夏天的荷花作文06-13
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 软件开发
- 编码
- 规范
- JAVA
- SQL
- 时代光华《当前中国企业的赢利困境与经营误区》课后测试答案
- 温馨花园1#楼施工组织设计
- 观今宜鉴苦,蒙以养正
- 深圳市 2018 年高三年级第二次调研试卷及答案
- 六年级解方程、化简比 练习题
- 第三单元 我爱首都北京城
- 我国粮食加工副产物综合利用的现状与发展趋势
- 西门子发展史
- 稀土发光的第一性原理研究 - 图文
- 第七届会议文件 - 图文
- 电法探测冻结法施工效果技术应用与研究(修改) - 图文
- 学校领导陪餐制度
- 中国期刊网检索使用方法 - 图文
- 84 杨振中《新编高中文言文助读》错误百出误人子弟(84)
- 反恐怖主义法解读试题及答案
- 儿童阅读与阅读教学 崔峦
- MyEclipse 2014 自定义主题图文教程
- 浙江省2018年初中毕业生学业考试科学分类汇编(八年级上册) - 图文
- 25Hz相敏轨道电路的测试与调整
- 2015年北师大版七年级数学上册例题精讲及练习题(全套含答案)