Java开发规范标准.docx
《Java开发规范标准.docx》由会员分享,可在线阅读,更多相关《Java开发规范标准.docx(13页珍藏版)》请在冰豆网上搜索。
Java开发规范标准
金网络技术
Java项目开发规
(2015版)
金网络技术
二○一五年十二月
审定:
审核:
编写:
第一章引言
第一节编写目的
本规的目的是使本公司所有的软件开发部门能以统一的、规的方式开发应用软件系统。
通过建立编码规,提高代码的可靠性、可读性、可修改性、可维护性和一致性等,增进团队协作能力,保证软件产品的质量。
通过建立统一的Java软件开发框架,树立公司清晰的、有远见的技术方向,明确Java软件项目的基础构件和接口,减少基础框架研究和构建的成本,统一的开发接口和规还能保证公司软件模块在不同的项目中可以共享,从而提供开发效率和软件产品质量。
同时本文也是一份J2EE开发指南,用于指导公司软件工程师开发java软件项目。
第二节预期读者
本文预期读者为公司的参与软件项目开发的项目经理、开发人员及质量管理部门相关人员。
第三节本文的约定
为了使本Java规具有可操作、可用性、可持续等特性,本文做以下约定:
1.统一公司Java开发技术,以公司软件资源共享、节省软件开发工作量、提供工作效率和软件产品质量为目标;
2.本Java软件开发规具有可操作性,软件框架要有一定的伸缩性和适应性,能够在公司不同的Java项目中执行;
3.针对某一问题,技术实现有很多种方式,并且各种技术方案都有自身的优缺点,本文应该尽力选择最适合本公司应用的软件技术方案,一旦技术方案确定即成为公司技术规的依据;
4.本文发布以后,应该对相关开发人员进行培训;
5.本文发布以后,技术研发一部负责收集大家反馈的问题和新需求,并在必要时对Java规进行修改和补充;
6.本开发规应该根据公司的积累不断的补充,定期升级公司J2EE规,并发布新版本。
第四节本文的容
本文的容比较宽泛,涉及公司Java项目各个方面,如开发工具选择、开发框架的定义、组件的选择等方面,如下表所示:
序号
类别
说明
1
开发环境
定义Java开发软件环境、开发工具、及版本管理工具。
2
软件开发框架
定义Java软件项目的结构规。
3
公共组件
1、定义框架组件的选用,如SpringMVC、Mybits等组件的选用;
2、定义常用组件的选用,如数据访问驱动,文档上传组件的选用。
4
公司开发组件
公司部开发组件的规和定义,如文件上传、字符处理等组件。
5
公司开发模块
公司开发各个模块的规和定义,如权限管理模块、短信模块。
表1java项目涉及到的主要方面
本文定义的容将根据需要,定期进行修订和补充。
第五节适用围
本文规定的所有规适用于公司所有Java软件项目。
对于特殊情况未能遵守本规的项目,请保留项目技术评审相关结果记录。
第二章开发环境
统一规定公司的所有软件项目的开发环境,使公司的所有软件项目都在统一的开发环境下进行开发,以便于软件项目的移植,同时也避免了因为环境不一致而导致的软件项目不能共享和开发不能协作等问题。
第一节操作系统环境
Java开发操作系统环境为Windows环境(32位或64位)。
任何使用第三方文本编辑系统的情况,请使用UTF-8编码。
第二节开发工具
开发工具的指定,是从开发工具的、开发工具的功能以及软件的可扩展性等多方面进行考虑的,集成开发环境、JRE、应用服务器分别指定如下:
⏹集成开发环境:
EclipseEE5(EclipseWeb开发版本)在Eclipse发行新版本后,由公司统一升级版本。
MyEclipse涉及问题,不作为公司指定开发工具,只能作为开发人员学习研究的工具。
⏹JRE:
JDK1.8.0(对于指定JDK版本的项目,请使用指定版本的JDK,应用服务器:
Tomcat7(对于需要运行在指定应用服务器的项目,需要同时具备指定应用服务器的运行环境)。
开发工具、JRE、应用服务器都使用文件夹拷贝方式进行部署,最新的开发工具部署包从技术研发一部获取。
开发工具中已经集成部分本规规定的插件,如GIT插件、maven同步工具插件。
第三节版本管理工具
二.三.1代码管理服务器
公司所有软件项目采用统一的代码管理服务器存储,新建项目和分配权限由项目经理提出申请,配置管理员操作执行。
二.三.2代码管理工具
公司所有java项目开发版本管理使用git版本控制工具。
⏹服务器端:
GITSERVER该软件部署在公司的开发服务器上。
⏹客户端:
sourcetree
第三章软件开发框架
本章主要阐述java项目目录结构的规定及各部分命名规。
关于框架的组件选用将后面的章节给出规定。
第一节整体结构规
java项目采用统一结构,以便于系统项目的维护以及多个项目之间共享资源。
该项目规是指mavenWeb应用的项目(客户端应用程序的结构规属于子集,即不包括app部分的规)。
项目整体目录结构规如下:
图1Java项目基本结构图
编号
目录说明
1
Src/main/java
Java代码目录,存放java代码
2
Src/main/resources
系统xml配置文件
2
Src/main/css
样式文件存放目录,相应存储规则如下:
1)所有公共样式文件存在根目录下;
2)各个模块私有样式存在独立的目录,即在样式文件根目录下建立子目录,目录名和模块名称相同。
3
Src/main/images
图片文件存放目录,相应存储规则如下:
1)系统框架部分的图片存在图片文件根目录或根据需要单独建立子目录;
2)所有模块公用的目录存储在图片文件根目录或根据需要单独建立子目录;
3)各个模块私有的图片文件存储在独立的目录,即在图片文件根目录下建立子目录,目录名和模块名称相同。
4
Src/main/js
脚本文件存放目录,相应存储规则如下:
所有模块公用的脚本存储在脚本文件根目录;
各个模块私有的脚本文件存储在独立的目录,即在脚本文件根目录下建立子目录,目录名和模块名称相同。
5
Src/main/view
Jsp文件存放目录
6
WEB-INF/lib
系统库统一由maven管理
7
Pom.xml
系统库配置接口
表2目录结构说明
注:
项目文档统一使用公司项目管理系统—文档管理来实现,临时项目文件由各项目经理自行安排存储与交换方式。
第二节开发框架的使用
项目开始开发(编码)时,项目组首先从代码服务器上获取最新版本的系统框架,系统框架包括系统整体框架、相关组件包(jar包)、框架界面、登录界面等。
系统框架默认包括权限管理模块的最新版本,用于管理系统用户、模块及权限。
项目开发的下一步工作是按照项目需求加入公司已经开发完成的模块,以及按照项目需求开发新的业务模块。
第三节代码结构规
本文阐述公司java项目的目录及命名规。
其中java代码目录规如下图所示:
图2J2EE代码结构
编号
包名
目录说明
1
.hanjin.userconter.util
项目通用包,用来存放项目工具类、通用类
Md5util.java\JsonUtil.java等
2
.hanjin.userconter.login..controller
项目控制包,用来处理dao页面跳转的实现类
3
.hanjin.userconter.login.dao
项目持久层包
4
.hanjin.userconter.login.dao.sql
配置sql的xml包
5
.hanjin.userconter.login.model
项目实体类包
6
.hanjin.userconter.login.service
项目业务层包,用来存放模块处理业务逻辑的实现类
表3java代码包结构说明
基于java平台的项目,所有包名均以com.hanjin.<业务模块>开头。
命名规则是:
.hanjin.业务模块.模块名称,如用户登录模块名称为:
.hanjin.userconter.login。
第四节模块命名规
模块是指系统中的各个业务功能模块,各个模块在组织上和功能上相对独立。
模块的命名要有含义,各个模块的名称统一采用小写英文字母命名,如:
编号
模块名
模块用途
1
common
公共模块
2
security
权限管理模块
3
login
登录模块
4
message
短信模块
表4模块命名举例
第五节配置文件位置及规
java项目的配置文件主要涉及SSM框架配置、日志组件配置文件及其他配置文件。
配置文件位置及命名规,定义了各类配置文件存放的位置及这些文件如何命名:
1)Spring配置文件位置及命名规:
Spring配置文件统一存储在src/main/resources目录位置,命名为:
applicationContext.xml,spring-servlet.xml,系统默认公共的配置文件为applicationContext-common.xml。
2)日志组件配置文件:
日志组件配置文件统一规定为log4j.properties,存放在src/main/resources目录位置。
3)数据库配置文件:
数据库组件配置文件统一规定为jdbc.properties,存放在src/main/resources目录位置。
第四章公共组件的选用
Java平台是个开放的平台,java开发有很多成熟的开发组件,同一类组件不同的厂商有不同的实现方式。
为了统一公司的开发技术,达到技术共享的目的,本章规定了公共组件的选用。
公共组件在本文中是指第三方提供的、J2EE开发通常使用的组件,如数据访问组件(或框架)、日志组件、文件上传组件等等。
第一节基础框架组件的选用
java项目基础框架组件选用当前流行的SSM框架,所以模块的开发需要按照SSM的开发模式进行。
对于有特殊技术需要的项目在技术委员会评定确认以后可以不采用SSM作为基础开发框架,但如果需要引用其他在该框架下开发的模块,必须保留各框架组件的类库以保证系统能够正常运行。
2015年版本的公司JAVA开发框架的SSM框架的各组件版本说明如下:
编号
组件
版本
组件用途
1
SpringMVC
2
Spring
4.1.0
3
Mybatis
3.2.6
表5SSM框架组件
原则上基础框架组件能够完成的技术实现不得采用其他同类组件来实现。
SSM应用还做了如下规:
1)Spring的配置文件可以基于注解和配置文件两种方式。
在同一个项目中,注解和配置文件可以混合使用,但在同一模块中只允许使用其中一种方式。
第二节日志组件的选用
日志组件使用log4j组件,选用版本为1.2.17。
第三节jquery的选用
一般情况下,避免使用ExtJs脚本组件。
如果项目中需要使用jquery,统一使用jquery1.9.0版本。
第五章公司开发技术组件
相对于公共组件来说,公司开发的用于解决特定技术问题的组件,这些组件如果没有现成的(或合适的)第三方组件可以替代,开发完成以后可以应用到公司的多个项目中。
[编制中]
对于已经存在的组件,各项目组要充分利用已有组件资源,不得重新单独开发。
第六章公司开发模块
公司将逐渐开发和积累软件成果,软件成果以(业务或技术)模块的形式存在,软件模块的复用是公司提高软件开发效率、节约开发成本、提高软件开发质量的重要途径。
公司开发模块的规包括模块开发的规以及模块应用的规。
模块开发的规是指开发各个模块应该遵循的规,使开发完成的模块符合J2EE开发规,并且可以应用到其他项目中。
这里要遵循的规主要是目录结构规、使用技术规、组件规、版本规等。
模块的应用规给出公司开发项目应该使用的成熟模块以及模块的接口和应用条件等。
模块的应用规规定公司开发项目要使用的模块、选择合适的版本、按照正确的方式来使用。
第一节模块开发规
[编制中]
第二节模块应用规
公司启动新项目以后,一方面要使用本文所规定的软件框架和规进行开发,还要充分利用已经成熟的模块,不得单独重新开发。
当碰到特殊业务需要时,如果公司已有模块不能满足需求,经过公司技术委员会评估确认以后可以为特定项目单独开发某一模块。
当开发过程碰到模块中不能满足系统需要的缺陷时,开发人员提交给软件技术研发一部,由软件技术研发一部根据缺陷的严重程度和紧迫性立即更新软件或者在模块的下一个版本中进行修复或改进。
目前公司规定统一使用的模块如下表所列:
编号
模块
版本
模块说明
1
权限管理模块
1.0.0
用户管理、角色管理、分组管理、权限管理
2
3
表6公司规定统一使用的模块
第三节模块的使用
当开发项目需要使用到某个模块时,就需要从模块资源库中获取该模块的相关资源(请与技术支持联系),包括模块程序代码、模块配置文件、模块相关脚本等。
一个模块的资源包括以下几个部分。
编号
资源
资源说明
1
目录:
src/.hanjin.业务名.模块名.*
代码部分,成熟以后封装为jar包
2
文件:
src/applicationContext-模块名.xml
模块Spring配置文件
3
文件:
generatorConfig__login.xml
模块myBatis代码生成配置文件
4
目录:
src/mian/images/模块名
模块私有图片目录
5
目录:
src/mian/css/模块名
模块私有样式目录
6
目录:
src/mian//js/模块名
模块私有脚本目录
7
目录:
src/mian/view/模块名
模块页面文件
表7模块包括的资源
注:
各个模块并不包含上表中所列举出的所有文件或文件目录。
第七章技术支持和信息反馈
公司的技术规和技术发展需要每个同事的支持和参与,技术研发部一部作为该规的相关信息的收集、策划和推动成员,主要负责以下工作:
(1)收集和整理需求和反馈问题;
(2)发起技术讨论和编写、维护、升级该规;
(3)对相关开发人员进行培训。
第一节信息反馈
将实际应用的新需求以及碰到的问题及时反馈,有利于完善和补充J2EE开发规,所有新需求和应用问题请反馈到技术研发部一部。
电子:
2470549_010163.
第二节技术支持
技术研发部一部提供java开发规相关技术支持,容包括:
(1)公司开发框架的培训和相关技术答疑;
(2)公共组件的培训和相关技术答疑;
(3)公司开发组件的培训和相关技术答疑;
(4)公司开发模块的培训和相关技术答疑。