- 浏览: 482426 次
- 性别:
- 来自: 湖南
文章分类
- 全部博客 (201)
- j2ee (43)
- oracle (9)
- mysql (7)
- db2 (1)
- j2se (3)
- spring (1)
- hibernate (3)
- struts (0)
- Berkeley DB (0)
- linux (60)
- Apache2+PHP+MYSQL (2)
- solr (15)
- svn (1)
- IntelliJ Idea (1)
- eclipse,myeclipse (4)
- ant (2)
- vim (8)
- IT生活 (4)
- 测试 (6)
- lucene (4)
- shell (1)
- nutch (18)
- thread (1)
- hadoop (5)
- mapreduce (0)
- Python (4)
- 硬件 (1)
- database (1)
- maven (1)
- 正则表达 (0)
- 互联网 (1)
最新评论
-
youngcoder:
good job
HTTP协议头部与Keep-Alive模式详解 -
javazdq:
受教了 解释的不错。
lucene创建索引高级特性和索引创建参数优化 -
josico:
有几个问题想问下楼主1. LinkedBlockingQueu ...
生产者-消费者-BlockingQueue -
annybz:
有没有关于 BlockingQueue和ConcurrentL ...
生产者-消费者-BlockingQueue -
uniquejava:
多谢,记录的很真实。
DB2 学习记录
自定义 java 开发规范
关键字: 自定义java 开发规范
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 存放着所有的脚本文件;
<sp
发表评论
-
Maven使用deploy命令部署构建
2012-07-18 17:13 2471个人技术博客:http:/ ... -
Java 对象序列化您不知道的 5 件事
2012-07-04 14:56 1459个人技术博客:http://demi-panda.com ... -
Solr 获取分词
2012-05-07 18:32 3587个人博客:http://demi-panda.com ... -
地图经纬度距离计算
2012-03-30 15:43 2414public static final doubl ... -
ThreadLocal类
2012-03-01 18:38 944个人技术博客:http://demi-panda.com ... -
解决 – java.lang.OutOfMemoryError: unable to create new native thread
2012-01-16 20:27 2772一、认识问题: 首先我们通过下面这个 测试程序 ... -
Spring MVC中默认的ResponseBody为String的乱码问题
2011-12-22 16:54 1429个人技术博客:http://demi-panda.com ... -
ASCII和中文互转
2011-07-29 13:34 3828个人技术博客:http://demi-panda.com ... -
JVM 参数详解
2011-07-06 14:23 6496个人技术博客:http://demi-panda.com ... -
URL encode
2011-06-22 15:00 3134个人技术博客:http://demi-panda.co ... -
笔记之三-robots
2011-06-16 16:13 1156一、robots robots主要作用是屏蔽一些不愿意让 ... -
HTTP协议头部与Keep-Alive模式详解
2011-06-16 15:55 17361个人技术博客:http://demi-panda.com ... -
java.net.SocketException: Too many open files解决方法
2011-03-24 15:34 1213Get current limit: ulimit - ... -
利用HAProxy实现负载均衡
2011-02-14 11:04 2499HAProxy的安装和部署 Posted o ... -
负载均衡工具haproxy安装,配置,使用
2011-02-12 11:28 3927一,什么是haproxy HAProxy提供高可 ... -
Java编程思想第四版 完整中文版下载
2011-01-09 21:11 4177个人技术博客:http://demi-panda.com ... -
Java 理论与实践: 正确使用 Volatile 变量
2011-01-06 23:45 495Java 语言中的 volatile ... -
Java常用正则表达式
2010-12-08 20:41 956"^\d+$" //非负整数(正整数 + ... -
JConsole远程连接
2010-12-02 13:58 1032JConsole很好用,可以解决很多疑难杂症。但远程连接需要设 ... -
JVM配置参数中文说明
2010-12-02 13:04 1235JVM配置参数中文说明: -------- ...
相关推荐
《谷歌Java开发规范》是Google公司为Java开发者提供的一套详尽且权威的编码指导原则,旨在提升代码质量,提高团队协作效率,并降低维护成本。这份规范不仅关注语法层面的约定,更注重代码的可读性、可维护性和可扩展...
以下是一些核心的Java开发规范和需要注意的事项: 1. **命名规范**: - 类名:使用驼峰式命名,首字母大写,如`MyClassName`。 - 方法名:同样采用驼峰式命名,但首字母小写,如`myMethodName`。 - 变量名:遵循...
Java 自定义注解验证是Java开发中的一个重要特性,它允许开发者创建自己的元数据,以便在编译时或运行时对代码进行验证和处理。自定义注解为代码提供了额外的信息,使得程序更具可读性、可维护性和灵活性。在本案例...
自定义Java类加载器允许我们根据特定需求扩展默认的加载机制,例如,从非标准位置加载类或者实现动态加载。在Java中,类加载过程分为加载、验证、准备、解析和初始化五个阶段。 首先,让我们了解Java中的默认类加载...
《阿里巴巴Java开发手册》通过一系列详尽的规约、建议和示例,为Java开发者提供了宝贵的指南。它不仅涵盖了基本的编程技巧和最佳实践,还深入探讨了高级主题,如并发控制、数据库管理和软件架构设计。遵循这些指南...
自定义标签的概念源于JSP 2.0规范,它们本质上是Java类的封装,可以在JSP页面上以XML语法形式使用。当JSP引擎编译页面时,会将这些自定义标签转换为对应的Java代码进行执行。这样,开发者可以通过创建自己的标签来...
MyEclipse作为一款强大的Java集成开发环境(IDE),提供了自定义注释模板的功能,帮助开发者快速生成规范、一致的注释,提高编码效率和代码可读性。下面将详细阐述如何在MyEclipse中设置和使用自定义Java注释。 ...
在JSP规范中,自定义标签比JavaBean有更丰富的运行时协议。例如,标签可以有初始化属性,这些属性对于标签的运行是必需的;设置和获取属性不涉及复杂的逻辑控制,与JavaBean相比更简单;并且JSP标签有默认的上下文,...
《阿里巴巴开发手册》和《Google Java开发规范》是两份重要的编程指南,旨在提升Java开发的质量和一致性。这两份文档详细列举了在Java编程中应当遵循的最佳实践和规则。 阿里巴巴作为全球知名的互联网企业,其开发...
在Java Web开发中,分页是常见的功能,用于在大量数据中进行有效的浏览。自定义分页标签可以让我们根据项目的具体需求灵活定制分页显示,提高代码的可维护性和复用性。本教程将深入讲解如何在Java环境中实现自定义...
在Spring Boot应用开发中,构建一个统一的、规范化的返回数据结构对于提升API的使用体验至关重要。本主题将深入探讨如何在Spring Boot工程中通过自定义response注解、利用Java反射机制、设置自定义拦截器以及实现...
阿里Java开发规范是阿里巴巴集团为Java开发者制定的一套详尽的编程指南,旨在提升代码质量、维护性以及团队协作效率。这份2022年的最新版涵盖了诸多关键知识点,包括但不限于编程基础、代码组织、异常处理、并发编程...
### 百宝箱业务应用程序开发规范—JAVA分册 #### 一、概述 《百宝箱业务应用程序开发规范—JAVA分册》是中国移动通信集团针对Java业务开发制定的一套详细指导文档,旨在规范和标准化Java应用程序在移动终端上的...
自定义标签是JSP(JavaServer Pages)规范的一部分,通过扩展JSP语法,可以构建出符合业务逻辑的复杂视图层元素。本资源"java+web自定义标签的开发与应用Java源码"提供了一个学习和实践自定义标签的实例,帮助开发者...
在Java Web项目开发中,自定义标签(Custom Tags)是一个重要的技术点,它极大地提高了代码的可读性和可维护性。自定义标签是JSP(JavaServer Pages)的一部分,允许开发者创建自己的视图组件,就像HTML标签一样,但...
《阿里巴巴Java开发手册》是Java开发者的一份重要参考资料,它由阿里巴巴集团官方发布,旨在规范团队内部的编程习惯,提高代码质量和开发效率。手册涵盖了Java语言的各个方面,从基础编码规范到高级设计原则,旨在...
Java 编码规范 Java 编码规范是指在 Java 语言中编写代码时需要遵守的一些约定和规则,以确保代码的可读性、可维护性和可扩展性。...遵守这些规范可以提高代码的可读性、可维护性和可扩展性,提高开发效率和代码质量。
《阿里华为Java编程规范(开发手册)》是大型互联网公司如阿里巴巴和华为为提升软件质量、提高团队协作效率而制定的一套详细的编程指导原则。这份手册涵盖了从编码风格到项目结构,从注释规范到异常处理,从并发编程...
在Java开发中,SonarQube提供了丰富的内置规则,用于检查代码质量、风格以及可能的bug。然而,这些内置规则可能无法满足所有项目的特定需求,因此,自定义规则扩展功能显得尤为重要。 本项目"毕设-SonarQube自定义...