java开发规范

java开发规范

关键字: java开发规范 

 

2  设计规范

2.1  系统设计规范

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

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

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

2.2  数据库设计规范

数据库的 设计必须放到PowerDesingerRepository当中;

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

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

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

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

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

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

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

3  文件命名规范

3.1  页面文件命名规范

页面文件 的命名是由小写英文字码,下划线,数字组成;user_list.htmlindex.jspindex_cn.jsp503.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构成;

同一个模 块的ActionCRUD操作放在同一个Action类当中;比如UserActionGroupAction

对于一个 模块的非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_ITEMitsm项目的配置项表),相对应的Pojo类名应该为ConfigurationItem.javahbm映射文件的命名为:ConfigurationItem.hbm.xml

3.2.5  Helper类的命名规范 

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

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

3.2.6  Servlet类的命名规范 

Servlet的命名由名词 + [动词] + [名词] + Servlet构成;比如StrutsActionServlet.java

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

Filter的命名由名词 + [动词] + [名词] + Filter构成;比如SpringCharacterEncodingFilter.java

3.2.7  EJB类的命名规范 

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

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

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

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

3.2.8  基础类的命名规范

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

基础数只 能为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存放着strutsaction文件;

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构成;

数据库脚 本文件必须存放到cvsSVN当中做版本控制;

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层抛出ServiceExceptionAction层只允许抛出ParameterException异常;

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

业务层抛 出ServiceException

不允许在 业务层操作Hibernate Session

不允许在 业务层传递SQLHQLDAO层;

DAO层负责数据库的操作;

DAO层抛出DAOException

4.5  WEB目录存储规范 

WEB目录下面:

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

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

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

WEB-INF/lib存放所有的jar文件;

WEB-INF/struts存放所有的struts文件;

WEB-INF/spring存放所有的spring配置文件;

WEB-INF/mapping存放所有的hibernate mapping文件;

WEB-INF/tld存放所有的自定义标签描述文件;

WEB-INF/pages存放着所有可能有安全性问题的jsp文件;

4.6  Jsp文件的注释规范 

JSP文件要求在页面的最头面加上创建者的信息;

如果JSP文件的命名是使用拼音进行命名,需要在JSP文件里面增加详细的描述;如下图所示:

<%--

  @version $ Date 2005-7-19 $

  @author cyz GDCN 

  @description 用户列表

--%>

 

4.7  Jsp资源文件的引用规范 

图片文件 的引用需要增加一个上下文路径;

css文件的引用需要增加一个上下文路径;

js文件的引用需要增加一个上下文路径;

其它资源 文件的引用也需增加一个上下文路径;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值