J2EE软件开发规范_第1页
J2EE软件开发规范_第2页
J2EE软件开发规范_第3页
J2EE软件开发规范_第4页
J2EE软件开发规范_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京银都新天地科技有限公司 质量管理体系文件密级:内部J2EE软件开发规范(草稿)版本:V1.0北京银都新天地科技有限公司总页数28正文20附录生效日期: 年 月 日编制:魏征审核:批准:文件变化记录单版本编号*状态简要说明变更人变更日期批准人批准日期1.0A魏征2010-11-26*状态:A增加,M修改,D删除 目 录1文档介绍51.1文档目的51.2文档范围52设计规范52.1Java源代码规范52.1.1开发环境52.1.2命名52.1.3代码格式62.2jsp/html规范72.2.1开发环境72.2.2命名72.2.3代码格式72.3数据库设计规范82.3.1数据库建模82.3.2主要对象命名规范设计82.3.3SQL源代码编码规范设计102.4其他规范112.4.1IDE的使用112.4.2配置库的使用112.4.3限制session的使用112.4.4限制外部包的使用113开发框架113.1目录结构133.1.1目录说明133.1.2依赖库153.2系统参数163.2.1说明163.2.2使用方法173.2.3例程173.3数据库连接183.3.1说明183.3.2使用方法183.3.3例程183.4事务193.4.1说明193.4.2使用方法193.4.3例程193.5缓存203.5.1说明203.5.2包、类说明213.5.3使用方法213.5.4例程213.6日志223.6.1说明223.6.2包、类说明223.6.3使用方法223.6.4例程223.7页面233.7.1说明234关于其他开发框架234.1.1必要条件234.1.2评审流程235关于项目中不使用规范中的开发框架241 文档介绍1.1 文档目的该文档是针对J2EE项目软件开发规范,用于规范各项目开发以及产品研发,使软件开发过程有章可循,保证软件质量,加强开发管理。1.2 文档范围适用于:项目经理,架构设计师、开发人员等进行的开发工作。2 设计规范2.1 Java源代码规范2.1.1 开发环境l IDE使用Myeclipse5.5以上,不建议使用最新版本IDEl 所有java源文件编码格式为UTF-8l JDK使用1.4.2版本2.1.2 命名 Package 的命名Package 的名字应该都是由一个小写单词组成,例如:com.urp.acl。此外,对于包名我们做如下约定:1. 工具函数类包名前缀为.util2. Servlet类包名前缀为.servlet3. test case类包名前缀为.test 4. action类包名前缀为.action5. dao类包名前缀为.dao6. model类包名前缀为.model 7. service类包名前缀为.service8. webservice类包名前缀为.webservice Class 的命名Class 的名字必须由大写字母开头而其他字母都小写的单词组成,例如:DataFile或InfoParser。 Class 变量的命名变量的名字必须用一个小写字母开头。后面的单词用大写字母开头,例如:debug 或 inputFileSize。 Static Final 变量的命名Static Final 变量的名字应该都大写,并且指出完整含义,例SORT_COLUMN=id。 参数的命名参数的名字必须和变量的命名规范一致。 方法的参数使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:setCounter(int size) this.size = size;2.1.3 代码格式 文件头声明源文件的头部需要一个history段,对于每次对源文件的重大改动,都需要在history段中注明。该段定义代码顶部,例如:/* 描述: MVC:“部门表”* / * 创建者: 魏征 * 创建日期: 2010-08-26 18:05:32 * 修改者: * 修改日期: * 修改说明: */ 缩进变量、函数的定义使用4个连续空格或tab缩进。 注释public 和 protected的成员变量和方法必须写javadoc注释。超过1句以上的注释使用中文书写。对于代码多于10行的private方法也要写javadoc注释。对于代码中的逻辑分支或循环条件需要书写注释,例如:if (some condition)/符合某个条件,应该这样处理else/否则应该那样处理 代码行数每个类文件代码行数禁止超过1000行。2.2 jsp/html规范2.2.1 开发环境l IDE使用Myeclipse5.5以上,不建议使用最新版本IDEl 所有jsp、html、javascript、css等文件编码格式为UTF-82.2.2 命名 文件的命名jsp与html文件名全部小写,并遵循如下的规范:列表页list.jsp、新增页add.jsp、修改页edit.jsp、查看页view.jsp、其他页面遵循动词_下划线,要求能说明显示内容的信息,例如:list_userinfo.jsp Javascript脚本脚本函数都以xxxYyy的方式命名,函数的名字必须用一个小写字母开头。后面的单词用大写字母开头,例如:validPwd,要求能说明显示内容的信息。模块通用的脚本函数必须集合于一个js文件中,在页面上通过形式导入。如果项目已经提供了公共js脚本,则优先使用公共js脚本中提供的函数。所有自定义方法的元素定义在后。 表单属性统一以该表单所需收集的信息的作用或动作+Form命名,例如:addForm。表单element的名称以element需收集的信息标示命名,全部小写,例如:对于 text 类型的输入域,必须根据数据库字段的长度设置相应的maxlength,例如数据库类型是VARCHAR(64),那么maxlength是32。2.2.3 代码格式 文件头声明%-* 描述: “部门表”页面展示* / * 创建者: 魏征 * 创建日期: 2010-08-26 18:05:32 * 修改者: * 修改日期: * 修改说明: -%【部门信息列表】link rel=stylesheet href=/css.css type=text/css /script type=text/javascript src=/js.js 页面语法统一使用jsp语法,无其他特殊情况,禁止使用webwork以及jstl等语法。2.3 数据库设计规范2.3.1 数据库建模数据库建模工具使用powerdesigner 主要对象命名规范设计 数据库(Databases)数据库的命名采用项目名称简写,如统一资源管理平台数据库名为URP。 表空间(Tablespaces)表空间分为两种,用来存储系统生成的临时数据的临时表空间(Temporary Tablespace)和存储用户数据的永久表空间(Permanent Tablespace)。临时表空间的命名为TEMP。永久表空间的命名分为三段:TBS_SSSS_ZZZZ。TBS表示这是一个表空间,SSSS为表空间分类号,ZZZZ为表空间类型,可以为DATA和IDX,DATA表示该表空间用来存储表对象,IDX表示该表空间用来存储索引对象。应用系统中的表和索引分别存储在两个表空间内,以达到提高性能的目的。系统表空间分类如下:TBS_URP_DATA统一资源管理平台数据表空间TBS_URP_IDX统一资源管理平台索引表空间 数据文件(Data files)数据库文件的命名根据该文件所属表空间的名字进行,通过在表空间的名字后加下划线加编号来实现,数据库文件的名字用.dbf作为后缀,例如TBS_URP_DATA _01.dbf 表(Table):数据表的命名分为三段:SSSS_ZZZZ_XXXX, SSSS为表类型代号,ZZZZ为业务分类号,XXXX为业务细类号,所有字母统一用大写表示。表类型分为数据表、扩展表、接口表等。数据表存储业务数据;扩展表用于对基表扩充可用数据列;接口表用于应用系统与外部系统的接口。对于上述三种表,我们使用可选的表名后缀进行标识。(1) 业务分类号:URP统一资源管理平台VEH机动车DRV驾驶人(2) 表类型代号:B业务数据表(可省略)SPARE扩展表IF接口表TEMP临时数据表或中间数据表RPT统计数据表例如:业务数据表URP_USER、扩展表SPARE_URP_USER、统计表RPT_URP_USER 字段(Fields)存储信息名词(多个单词用下划线分隔),全部大写,例如:USERNAME、LOG_ID;或同统一使用中文第一个字母简拼,例如XM(姓名) 约束(Constraints)主键(Primary Key)命名为PK_表名唯一键(Unique Key)只有一个时命名为UK_表名,否则命名为UK_表名_字段名外键(Foreign Key) 命名为FK_表名_字段名 索引(Indexes)索引命名为IDX_表名_字段名 视图(Views)视图的命名分为三段:V_SSSS_XXXX,V表示这是一个视图,SSSS为业务分类号,XXXX为自定义代号,例如V_URP_ALLUSER。 同义词(Synonyms)同义词的命名分为三段:SYN_SSSS_XXXX,SYN表示这是一个同义词,SSSS为业务分类号,XXXX为自定义代号。0 序列号(Sequences)序列号的命名分为三段:SQ_SSSS_XXXX,SQ表示这是一个序列号,SSSS为业务分类号,XXXX为自定义代号。1 存储过程(Stored Procedures)存储过程的命名分为三段:PRO_SSSS_XXXX,PRO表示这是一个存储过程,SSSS为业务分类号,XXXX为自定义代号。2 函数(Functions)函数的命名分为三段:FUN_SSSS_XXXX,FUN表示这是一个函数,SSSS为业务分类号,XXXX为自定义代号。3 任务(Job)函数的命名分为二段:JOB_SSSS,FUN表示这是一个函数,SSSS为过程名称2.3.3 数据库建表英中简称对照表 一般规定序号中文名英文名英文简称备注1-1数据库Databasedb_数据库名称的前缀1-2数据表Tabletbl_数据表名称的前缀1-3报表Reportrpt_报表脚本名称的前缀1-4编码CodeCode编码表的后缀。编码,多指固定对象编码,如车型、车种等1-5字典DictionaryDic字典表的后缀。字典,多指可变参数字典1-6流水WasteWaste流水表的后缀/流水/流水号,用于随时间、次数递增的对象, 1-7明细DetailDetail明细/明细表的后缀1-8汇总SumSum汇总/汇总表的后缀1-9日志LogLog日志/日志表的后缀1-10信息InformationInfo信息,多用于变长字段1-11数量NumberNum数量、个数1-12次数CountCnt计数/次数1-13序列SerialSerial序列1-14序列号Serial NumberSN序列号1-15主键IdentificationID主键1-16参数ParameterPara参数1-17特征CharacteristicChar特征1-18缺省DefaultDef缺省1-19设备DeviceDev设备1-20名称NameName名称1-21图片ImageImage图片1-22自动AutoAuto自动识别1-23功能FunctionFunc功能1-24原因CauseCause原因描述1-25上一次LastLast上一次1-26下一次NextNext下一次1-27结果ResultResult结果1-28特殊SpecialSpEvent特殊1-29事件EventEvent事件1-30情况CaseCase情况1-31特殊事件Special EventSpEvent特殊事件1-32特殊情况Special CaseSpCase特殊情况1-33状态StatusStatus状态1-34版本Version Ver版本/版本号1-35校验VerifyVerify校验1-36校验码Verify CodeVerifyCode校验码1-37传输TransferTrans传输1-38标志FlagFlag标志/标示1-39备注RemarksRemarks备注/说明/描述1-40备用SpareSpare备用/备用字段 机构相关序号中文名英文名英文简称备注2-1机构OrganizationOrg机构2-2业主OwnerOwner业主2-3公司CorporationCorp公司2-4县CountyCounty县2-5所属Belong toBL_所属2-6网络NetworkNet网络2-7节点NodeNode节点2-8中心CenterCenter中心/省中心 时间相关序号中文名英文名英文简称备注3-1时间TimeTime时间3-2发生OccurOccur发生/生成3-3操作OperationOper操作3-4启动StartStart启动程序3-5关闭CloseClose关闭程序3-6启用UseUse启用/使用/生效3-7失效ExpireExpire失效时间3-8登记RegisterRegister登记/注册3-9发行IssueIssue发行/卡发行3-10开始BeginBegin开始/起3-11结束EndEnd结束/止3-12登录LoginLogin登录/上班3-13注销LogoutLogout注销/下班3-14交易DealDeal交易/处理/操作3-15修改ModifyModify修改3-16抓拍CatchCatch抓拍图片 人员相关序号中文名英文名英文简称备注4-1操作员OperatorOperator操作员4-2收费员Toll CollectorTollCollector收费员4-3系统管理员AdministratorAdmin系统管理员4-4用户UserUser用户4-5口令PasswordPassword口令/密码4-6工作日期Work DateWorkDate工作日期/工班日4-7持有人HolderHolder持有人4-8责任人工号Responsible IDResponsibleID责任人工号 车辆相关序号中文名英文名英文简称备注5-1车辆VehicleV车辆_信息5-2车型Vehicle ClassVC/VClass车型5-3车种Vehicle TypeVT/VType车种5-4车牌Vehicle License Plate VLP车牌号/车辆牌照号码5-5车长Vehicle LengthVLength车长5-6车宽Vehicle WidthVWidth车宽5-7车高Vehicle HeightVHeight车高5-8车重(车货总重)Vehicle WeightVWeight车重(车货总重)/座位数5-9轮数Wheel NumberWheelNum轮数5-10车轴AxleAxle车轴5-11轴数Axle NumberAxleNum轴数5-12轴组AxisAxis轴组5-13轴型Axis TypeAxisType轴组类型5-14速度SpeedSpeed时速/速度5-15超过OverOver超过5-16限定LimitLimit限定/额定5-17最大MaximumMax最大/最高5-18最小MinimumMin最小/最低5-19超时时速Over SpeedOverSpeed超时时速5-20超载Over LoadOverLoad超载5-21最高时速Maximum SpeedMaxSpeed最高时速5-22超时Time OutTimeOut超时/是否超时5-22超时时间Over TimeOverTime超时时间 卡相关序号中文名英文名英文简称备注6-1支付PayPay支付/交费6-2未付UnpayUnpay未付/欠费6-3支付卡Pay CardPayCard支付卡/电子支付卡6-4银联Union PayUniPay银联6-5银行BankBank银行6-6储值StoreStore储值6-7记账TallyTally记账6-8现金 CashCash现金 6-9银联卡Union Pay CardUniPayCard银联卡6-10储值卡Store CardStoreCard储值卡6-11记账卡Tally CardTallyCard记账卡6-12通行卡Pass CardPassCard通行卡6-13身份卡ID CardIDCard身份卡6-14公务卡Official CardOfficialCard公务卡6-15标签卡Label CardLabelCard标签卡2.3.4 SQL源代码编码规范设计 变量命名规范为了提高SQL代码的可维护性,我们对其制定适当的命名规则。变量名用中文名拼音来表示,防止变量名与数据表的字段名重名。l 基本类型局部变量名前加前缀v_l 全局变量名前加前缀g_l 常量名前加前缀c_l 过程和函数的参数函数变量前加p_,对IN OUT类型和OUT类型的参数变量要分别加后缀_io和_o。缺省没有前缀的参数变量都为IN类型。l Record collection类型变量前加前缀r_l %Rowtype类型变量前加前缀rt_l 游标cursor类型变量前加前缀cur_ 代码排版规范l 缩进首字缩进设置为1个Tab,Tab设置为4个空格。通过适当的缩进把程序的条件、循环的逻辑结构显示出来。l 使用大小写l 所有的SQL关键字都使用大写字母,而所有的数据库表、字段、变量用小写。 代码注释规范SQL程序段中的注释应简洁明了,其长度以60字符以内为宜;当代码发生变化时,相应注释需及时更新。对触发器、存储过程、函数和字段等数据对象作相应的注释说明。对触发器、函数或者存储过程等加注其作者、功能和创建时间(修改时间)等信息。程序文件头部注释:文件头部注释用于表明该文件的信息及版权格式。 /*/文件名:/功能描述:/改版履历:/作者:/描述:/日期:xxxx年xx月xx日/*/l 触发器、过程、函数注释:对触发器、过程、函数添加注释描述其主要功能。l 其他需添加注释的地方:1、 每一个分支处,如:ifelse;2、 曾经出现BUG的地方;3、 声明变量时;4、 定义常量时,解释常量的意义;5、 其他较难理解的地方;2.4 其他规范2.4.1 IDE的使用l J2EE项目使用MyEclipse5.5以上,使用UTF-8编码 l Oracle开发工具使用plsql developer7.0以上2.4.2 配置库的使用统一使用SVN作为项目管理及开发配置库,开发版本定义与配置库中的版本相同。2.4.3 限制session的使用在代码中使用session需要听取研发经理的意见,研发经理需要在设计文档中登记项目中所有使用到的session的名字和作用。2.4.4 限制外部包的使用开发员如果需要使用一个外部包需要听取研发经理的意见。在研发经理批准以前,严禁擅自使用一个外部的包。3 开发框架为规范J2EE项目的开发,我们提供了基于JDK1.4的部分基础模块,并在此基础上提供了经过了封装、提炼的开发组件。通过在项目中对开发组件的集成,以开发产品的角度去开发项目,达到降低项目风险,提高项目质量及加快项目进度。所有J2EE新项目必须使用该开发框架。1)整体架构如下:各模块说明如下l 数据资源层:本框架默认支持oracle数据库,可通过方言扩展方式实现对其他关系型数据库的支持;l 持久层:使用ibatis实现数据操作,通常是对单表进行操作,达到化繁为简,便于维护的目的;l 业务层:使用spring作为持久层与MVC框架之间的桥梁,通过MVC框架webwork实现对于业务流程的流转控制;l 表现层:体现“以用户体验为中心”的设计思想;l 中间件:支持JDK1.4以上版本J2EE中间件环境;l 插件:使用一系列的页面组件、控件、工具类插件,使系统能够快速集成;组件:通过一系列基于开发框架的组件应用,实现对应用系统的快速集成开发,提高代码复用率。2)框架序列图如下:注: 所有Dao操作必须继承BaseIbatisDao 所有Action操作必须继承BaseWebworkAction 所有的数据建模Module必须继承BaseEntity3.1 目录结构3.1.1 目录说明l src源目录:-com.一级域名|-urp二级域名(统一资源权限)|-acl三级域名(资源权限)|-actionMVC|-service-事务控制|-dao-业务操作|-interceptor拦截器|-model数据库建模|-translate代码翻译 |-Constants.java常量类|-core三级域名(核心代码)|-ibatis持久层操作|-cache缓存操作|-dao核心操作基类|-dialect数据库方言|-entity数据库建模基类|-page-分页操作|-spring-spring操作|-util工具类|-webworkwebwork基类|-servlett三级域名|-IndexAction系统主页入口|-MainAction系统主页主页面入口|-projectName二级域名(业务源码,根据业务修改projectName名称)-i18n国际化-ibatisibatis配置文件|-aclibatis资源权限配置文件|-projectName二级域名(ibatis配置,根据业务修改projectName名称)|-ibatisConfig.xmlibatis配置入口-springspring配置文件|-aclspring资源权限配置文件|-projectName二级域名(spring配置,根据业务修改projectName名称)|-applicationContext.xmlspring配置入口-xworkwebwork配置文件|-aclwebwork资源权限配置文件|-projectName二级域名(webwork配置,根据业务修改projectName名称)-pertieswebsphere缓存配置文件-ehcache.xmlehcache缓存配置文件-perties数据库配置文件- perties日志配置文件-pertieswebwork配置文件-xwork.xmlwebwork配置入口l 文件目录结构 -WebRoot |-images图片 |-jsjavascript文件 |-style样式文件 |-pages |-acl资源权限 |-tablename表名 |-add.jsp新增数据视图 |-edit.jsp修改数据视图 |-list.jsp列表数据视图 |-view.jsp查看数据视图|- projectName (根据业务修改projectName名称) |-tools工具 |-401.jsp401 |-403.jsp403 |-404.jsp403 |-500.jsp500 |-error.jsp错误提示页面 |-noprivilege.jsp无权限提示页面 |-success.jsp成功操作提示页面 |-token.jsp重复提交提示页面 |-plugins插件 |-bgjs整体视图 |-ecside列表 |-formValidator表单校验 |-FusionCharts统计图 |-My97DatePicker日历控件 |-WEB-INF |-lib依赖库 |-web.xmlweb.xml |-index.jsp主页 |-index0.jsp跳转页 |-login.jsp登陆页 |-main.jsp主页主页面注:根据具体项目修改projectName名称3.1.2 依赖库名称依赖库说明Springspring-2.0.8Webworkrife-continuations-1.0webwork-2.2.7xwork-1.2.4javassist-3.6.0ognl-1.0oscore-1.0freemarker-2.3.8dom4j-1.6.1cglib-2.1_3cglib-nodep-2.1_3javamail-1.5Apache commonscommons-beanutils-1.6commons-codec-1.3commons-collections-3.2commons-dbcp-1.2.1commons-dbutils-1.0commons-digester-1.8commons-fileupload-1.2commons-io-1.2commons-lang-2.3commons-pool-1.3commons-validator-1.3.1Log4j commons-logging-1.1log4j-1.2.9缓存ehcache-1.2.3dynacache-6.0Websphere版本6.0Ibatisibatis-77Xmldom4j-1.6.1jaxen-1.1-beta-7xercesImpl-1.2Oracle驱动ojdbc14-.0Oracle版本.0Javascriptjquery.js版本 系统参数3.2.1 说明 使用system.xml文件配置系统常量参数,系统启动时会加载该配置文件 使用urp_syspara表配置系统可变参数,系统启动时会加载该数据3.2.2 使用方法 根据项目具体情况修改system.xml 根据项目具体情况修改com.urp.acl.Constants3.2.3 例程文件 system.xml统一资源管理平台北京银都新天地科技有限公司北京银都新天地科技有限公司 010-ehcachecache/urpCache_user_key!- 模块权限 List -_rights_key!- 模块功能权限Map -_rights_moduledetail_key!- 模块功能访问权限Map -_rights_actionmethod_keyd0329c46663bff837d4af6e513.3 数据库连接3.3.1 说明使用Spring配置数据库的连接。3.3.2 使用方法不使用中间件提供的连接池 修改jdbc-oracle.pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论