现在的位置: 首页 > 综合 > 正文

java开发规范

2018年08月20日 ⁄ 综合 ⁄ 共 5493字 ⁄ 字号 评论关闭

                      2  
设计规范

2.1  
系统设计规范

当有需求 变化的时候,开发经理必须遵守一个顺序,第一先修改概要设计、设计设计,数据库设计等接着再修改代码的原则;

对于每一 次修改,都必须编写
changelog

系统的设 计文件需要放到版本控制文件当中,以便对不同的版本进行控制;

2.2  
数据库设计规范

数据库的 设计必须放到
PowerDesinger

Repository
当中;

每一个项 目只有系统架构师,开发经理有权限去修改物理数据模型,其他人只有只读取权;

按数据库 脚本的命名规范编写数据库脚本与初始化数据脚本;

数据库的 设计只能由系统架构师,开发经理或由开发经理指定的高级工程师进行修改;

需求变更 需要修改到数据库的时候,必须先修改物理数据模型,再到数据库修改;

任何人没 有经过系统架构师或开发经理的授权,不得私自修改数据库;

对修改内 容需要修改
changelog
,并编写修改数据库的脚本;

修改数据 库的脚本需要在测试机上做过测试,并提供项目部经理;

3  
文件命名规范

3.1  
页面文件命名规范

页面文件 的命名是由小写英文字码,下划线,数字组成;
user_list.html

index.jsp

index_cn.jsp

503.jsp
等;

页面文件 最好以英文单词组成,以便提高文件的可读性;例如:
permission_list.jsp

对于一个 模块的操作页面,以模块名
+
下 划线
+
动词组成,例如:
permission_list.jsp

对于有些 模块使用英文单词命名比较麻烦的,在不得已的情况下,可以使用拼音的简写来进行命名,但是,必须在页面文件的最前面加上注释,注释以下所示:

<%--

 
用户列表,
yflb
是用户列表的简写
.

 
@version $ Date 2005-7-19 $

 
@author gsh XXXXXXXX
公司
/
信息化应用中心
/
平台产品部

--%>

其中
<%--
的下一行或多行为页面作用描述,

@version
后跟日期,以日期作为版 本

@author
公司帐号
XXXXXXX
公司
/
信息化应用中心
/
所在部门

3.2  Java
文件命名规范

Java
类文件的命名不要超过
32
个字字符;

Java
文件的命名规范按照
Sun
公司的标准进行命名;

取消
Java
文件以下划线进行分隔的命名方式;

取消命名 当中出现的
Map
这些命名方式;

3.2.1  Action
类的命名规范

Action
类是以英文单词组成;由模块名
+ [
其它标试
] + Action
构成;

同一个模 块的
Action

CRUD
操作放在同一个
Action
类当中;比如
UserAction

GroupAction

对于一个 模块的非
CRUD
操作,由系统架构师或开发经理根据命名规范决定重新定义一个有意 义的
Action
;比如:
UserSearchAction

不要在类 文件当中加上下划线;

一个
Action
类文件不要超过
500
行代码;

3.2.2  Service
层的命名规范

Service
层命名规范将由接口与实现构成;

Service
层接口的命名由
I +
模块名
+ Service
构成,例如:
IUserService.java

Service
层实现的命名由  模块名
+ ServiceImpl
构 成,例如:
UserServiceImpl.java

DAO
层方法的命名:以
操作动词
+ ValueObject

创建前 缀:
create
,比如:
createUser(User user)

修改前 缀:
update
,比如:
updateUser(User user);

删除前 缀:
delete
,比如:
deleteUser(User user);

列出前 缀:
list
,比如:
listUsers();

通过
UUID
查找实体前缀:
find +
实体名
+ ById
,比如:
findUserById(String userId);

查询:
search
,比如:
searchUsers(Map searchKey);

统计:
count
,比如:
countUsers();

3.2.3  DAO
层的命名规范

DAO
层命名规范将由接口与实现构成;

DAO
层接口的命名由
I +
模块名
+ DAO
构成,例如:
IUserDAO

DAO
层实现的命名方式需要结构持久层的实现方式,比如,
Hibernate
的应用的话其命名由:模块名
+ DAO + Hibernate
构成,例如:
UserDAOHibernate
;如实持久实现是由
JDO
方式实现,则命名由:模块名
+ DAO + JDO
构 成,例如:
UserDAOJDO

所有
CRUD
在接口当中都必须定义,方法体调用父对象的操作实现;

DAO
层方法的命名:以
操作动词
+ ValueObject

创建前 缀:
create
,比如:
createUser(User user)

修改前 缀:
update
,比如:
updateUser(User user);

删除前 缀:
delete
,比如:
updateUser(User user);

列出前 缀:
list
,比如:
deleteUsers();

通过
UUID
查找实体前缀:
find +
实体名
+ ById
,比如:
findUserById(String userId);

查询:
search
,比如:
searchUsers(Map searchKey);

统计:
count
,比如:
countUsers();

 

3.2.4  Pojo
类的命名规范

Pojo
类的类名必须与
html
文件的文件名对应,比如,
Pojo
的类名为
User
,则
hbm
映射文件的命名为
User.hbm.xml

Pojo
类的类名需要与命名规范相对应,比如,表名为
ITSM_ CONFIGURATION_ITEM

itsm
项目的配置项表),相对应的
Pojo
类名应该为
ConfigurationItem.java

hbm
映射文件的命名为:
ConfigurationItem.hbm.xml

3.2.5  Helper
类的命名规范

帮助类的 命名是由名词
+ [
名词
] + Helper
构成;如
Spring
的帮助类命名为
SpringHelper.java

 所有帮助类的每一个
public
方法,都必须加上简单的使用
sample

3.2.6  Servlet
类的命名规范

Servlet
的命名由名词
+ [
动词
] + [
名词
] + Servlet
构成;比如
Struts

ActionServlet.java

Listener
的命名由名词
+ [
动词
] + [
名词
] + Listener
构成;比如:
CommonSessionListener.java

Filter
的命名由名词
+ [
动词
] + [
名词
] + Filter
构成;比如
Spring

CharacterEncodingFilter.java

3.2.7  EJB
类的命名规范

Ejb
的命名最终是以
Bean
结尾;

Ejb
的接口文件存放在
Ejb
同级目录的
interface
当中;

使用
Ejb
必须提供相应的
Xdolect
脚本;

布署描述 符存放在
src
下面;

3.2.8  
基础类的命名规范

基础类的 命名以
Base +
名词
+ [
动词
] + [
名词
]
构成;例如:
BaseAction.java

BaseService

基础数只 能为
abstract
;或
interface

3.3  Java Package
的命名及层次结构规范

包的命名 必须有意义;包名必须以
com.gdcn
开头;

com.gdcn.common
包存放着所有各个项目所共用的文件;项目组开发人员不得修改;

项目组开 发出更加通用的组件,通知部门经理或系统架构师,经开发讨论后,将新的构件加入到
common
包当中;

包名的命 名大致如下:

com.gdcn.projectname.common
存放着项目级别的通用类;

com.gdcn.projectname.web
存放着与
web
相关的类文件;

com.gdcn.projectname.web.action
存放着
struts

action
文件;

com.gdcn.projectname.web.taglib
存放着所有的标签文件;

com.gdcn.projectname.web.servlet
存放着所有的
servlet

com.gdcn.projectname.valueobject
存放着所有
pojo

com.gdcn.projectname.service
存放着项目所有
service
层的接口;

com.gdcn.projectname.service.impl
存放着项目
service
层的所有实现;

com.gdcn.projectname.dao
存放着项目
dao
层的所有接口;

com.gdcn.projectname.dao.impl
存放着项目
dao
层的所有接口;

com.gdcn.projectname.webservice
下面存放着
webservice
的实现与接口;

对于大项 目,允许将
com.gdcn.projectname.web.action
下面再进行模块的区分;

对于大项 目,允许将
com.gdcn.projectname.service
下面再按模块进行区分;

对于大项 目,允许将
com.gdcn.projectname.dao
下面再按模块进行区分;

3.4  
导入包的顺序

在应用程 序当中导入的包的顺序是做如下定义:

java

javax

org

net

com

可以使用 格式化工具进行代码的格式化;

3.5  
自定义标签命名规范

标签的名 名以前缀
+
下划线
+
后缀的方式进行命名;比如,通用标签的前缀以
gdcn
命名,后缀以
tree
命名;

项目级别 的标签以项目名称
+
下划线
+
标签名称进行命名:

标签称只 允许由小写英文字母
+
下线划
+
数字组成;

3.6  
属性配置文件的命名规范

属性配置 的命名只允许小写英文字母
下划线组成;

属性配置 文件只允许是
property
文件或者是
xml
文件;

属性文件 存放在工程目录的
etc
下面

3.7  
数据库脚本的命名规范

建表文件 以项目名称
+
下划线
+ setup
构成,例如:
itsm_setup.sql

初始化脚 本文件以项目名称
+
下划线
+ init
构成,例如:
itsm_init.sql

修改数据 脚本文件以项目名称
+
下划线
+ modify +
修改时间构成,例如:
itsm_modify_2006-8-19.sql
构成;

数据库脚 本文件必须存放到
cvs

SVN
当中做版本控制;

4  
编码规范

4.1  Java
类的注释规范

每一个类 都必须有较为详细的注释;

注释内容 包括:类文件说明、创建者、创建时间、修改者、修改时间、其它信息:比如:

/**

 * <code>CommonServletContextListener</code>
,该监听器的作用是在
web app
启动的时候

 *

ServletContext
绑定到
SpringHelper
当中,以更加方便地获取到上下文信息
.

 * @author XXX
,信息化产品部
-
研发中心
-XXXXXXX
有限公司
. Create-Time 2006-8-1 11:42.

 * @see ServletContextListener

 * @see SpringHelper

*/

 

4.2  Java
方法的注释规范

每一个方 法都需要有注释,对于通用类提供的方法,除了有详细的注释除外,还必须有一些简单的
sample

每一个参 数都必须做一下说明;

每一个返 回值都必须做一下说明;

每一个异 常都必须做一下说明;

   
/**

    
* parse Web Security Settings

    
* @param ele Element

    
* @return WebSecuritySettings

    
* @throws ConfigException

    
*/

static WebSecuritySettings parseWebSecuritySettings(Element ele) throws ConfigException {

……

}

方法体里 面重要的算法需要加上详细注释;

4.3  Java
类属性的注释规范

对于类属 性必须加上注释;

通用的
POJO
类的属性注释必须有详细的注释;

项目级别 的
POJO
类的属性注释由开发经理根据项目的紧急程度自己做控制;

4.4  Java
层次结构的规范

Jsp
页面只负责页面的展现,理论上不允许任何业务逻辑代码存放在
jsp
文件当中;

Action
层负责处理页面的请求信息,并将
ActionForm
转换为
pojo
,或将
pojo
转换为
ActionForm

ActionForm
不能达到
Service
层;

Pojo
不能达到
Jsp
层;列表对象必须在
Action
当中做封装;

不允许在
Action
层抛出
ServiceException

Action
层只允许抛出
ParameterException
异常;

业务层负 责业务信息的处理,并调用业务层的对象;

业务层抛 出
ServiceException

不允许在 业务层操作
Hibernate Session

不允许在 业务层传递
SQL

HQL

DAO
层;

DAO
层负责数据库的操作;

DAO
层抛出
DAOException

4.5  WEB
目录存储规范


WEB
目录下面:

images
存放着所有的图片文件,该目录可以按照模块,按照组件名进行细 化;

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } H2 { margin-bottom: 0.21cm } H2.western { font-family: "DejaVu Serif", serif } H2.cjk { font-family: "DejaVu Sans"; font-style: normal } H2.ctl { font-family: "DejaVu Sans" } TD P { margin-bottom: 0cm
} -->

stylesheet
存放着所有的样式文件;

javascript
存放着所有的脚本文件;

抱歉!评论已关闭.