oa项目命名与编码规范

  • 格式:doc
  • 大小:72.50 KB
  • 文档页数:12

编写说明标题:项目命名与代码编写规范版本历史:1编写目的作为朗沃进行项目开发的技术规范,是进行软件质量控制的必要规范。

2命名2.1业务模块名在需求建模阶段按照用例划分来对业务模块进行命名,要求简洁易懂。

2.2包的命名2.2.1业务包命名业务包指与项目所要实现的业务逻辑相关的包。

包的命名由前缀和包的逻辑名组成,其中前缀:com.lovo.+项目名称逻辑名:业务模块名+层名,如果项目规模不是很大,直接采用层名,例如:project.action或actionproject.service或service业务模块“项目管理”完整的包名示例:com.lovo.cmts.action(web.action)com.lovo.cmts.domain(model)com.lovo.cmts.service2.2.2基础包命名基础包指在项目中供多个业务包共用的包,一般放置到下列包中moncom.lovo.cmts.utils2.3Java命名Java命名的时候需要同时兼顾业务和技术,命名要能体现软件的层次结构。

接口命名命名规范:首字母大写,如果有多个单词,每个单词头字母大写例如:StudentInfoservlet类命名:命名规范:以Servlet单词结尾例如:LoginServletStruts Action类命名:命名规范:Action的命名以域模型对象名称来制定,域模型对象名称Action 例如:一个域模型对象名称为Diary,其对应的action为DiaryActionAction中所有对service的引用,变量命名必须以*Service结尾,比如:userService。

Struts Form类命名:命名规范:Form的命名以域模型对象名称来制定,域模型对象名称Form例如:一个域模型对象名称为Diary,其对应的Form为DiaryForm业务逻辑接口命名:命名规范:业务逻辑接口的命名以域模型对象名称来制定,I域模型对象名称Service例如:一个域模型对象名称为Diary,其对应的业务逻辑接口为IDiaryService业务逻辑接口实现命名:命名规范:业务逻辑接口的命名以域模型对象名称来制定,域模型对象名称ServiceImpl例如:一个域模型对象名称为Diary,其对应的业务逻辑接口为DiaryServiceImpl 2.4Jsp页面命名命名规范:以模块名+ _开头,jsp页面名称要以小写字母开头,如果有多个单词组成,后面的单词以大写字母开头。

名称要体现出该页面的意义,最好能够与模块名称联系在一起。

例如列表页面,project_list.jsp详细信息页面,project_detail.jsp3项目目录结构3.1总体目录结构根据eclipse工具的特征,项目的目录结构为:姓名(例:wangxh)----存放java文件(源文件结构详见后续描述)|--config --存放相关配置文件WebRoot|--images --存放web程序所需的公共图片|--css --存放web程序所需的公共样式表|--js --存放web程序所需的公共js文件|--commons --存放web程序所需的公共文件|--upload 上传的公共文件,其下可以继续建目录存放不同类别文件|--功能模块文件夹(存放与某个功能模块相关的资源)|--images --存放与该功能模块相关的图片|--css --存放与该模块相关的样式表文件|--js --存放与该模块相关的js文件|--jsp或html页面(不建文件夹,直接存放)|--upload 上传的文件,其下可以继续建目录存放不同类别文件|--WEB-INF|--classes|--lib --项目中的包|--tld --tld文件doc|--rq --需求相关文档|--plan --项目计划相关文档|--db --数据库相关文档(包括建表sql,数据初始化sql)3.2配置文件规范Spring配置文件:系统中所有的配置文件统一放到config/下。

spring文件配置Spring配置文件放在config/spring/spring-baseConfig.xml 基本配置文件(dao的配置也是这里)spring-service.xml,业务类配置文件以上是公共部分文件,每个人的struts action在spring中的配置文件命名规则为:spring-action-模块名-姓名拼音缩写.xmlspring-action-sale-zs.xml,表示张三所写的销售模块的action配置。

spring-action-schedule-ls.xml,表示李四所写的计划模块的action配置。

struts配置文件:●struts配置文件放在config/struts/●struts-baseConfig.xml 基本配置文件(全局出错定义、process的定义等)●除此之外为个人配置文件,命名规则为:struts-模块名-姓名拼音缩写.xmlstruts-sale-zs.xml,表示张三所写的销售系统的action配置。

struts-schedule-ls.xml,表示李四所写的计划系统的action配置。

ibatis文件配置●ibatis配置文件放在onfig/ibatis/●ibatis-baseConfig.xml 基本配置文件,此文件中要启用命名空间。

●除此之外为个人配置文件,命名规则为:ibatis-模块名-实体对象名-姓名拼音缩写.xml,例如:ibatis-sale-place-zs.xml即表示销售系统中的 place实体对象,由张三所写。

iabtis-schdule-schduleTemple-ls.xml即表示计划系统中的计划模板实体对象,由李四所写。

hibernate文件配置命名规则config/hibernate/中存放hibernate.cfg.xml,如果该文件中的配置已经移到spring中,此文件可不写。

config/hibernate/hbm/下存放所有实体类映射文,如过多,可考虑按模块分包存放。

3.3源代码包结构规范根目录结构Wangxh--|--com.lovo.cmts.dao --项目中的持久化接口|--impl --持久接口实现类|--com.lovo.cmts.service --项目中的业务层接口|--impl --业务层实现类|--com.lovo.cmts.domain(model) --领域层对象,其下可继续按模块划分子包|--com.lovo.cmts.vo(dto) --值对象,其下可继续按模块划分子包|--com.lovo.cmts.exception --业务异常包|--com.lovo.cmts.util --工具包|mons --公共类包|--com.lovo.cmts.web --与V层、C层相关类|--struts/formbean –formbean对象,可按模块分包存放 |--struts/action –action对象,可按模块分包存放 |--util –web工具类(包装器、过滤器等)|--test --项目中的所有测试类,其下可继续按业务模块建子包分类对以上源文件中的目录结构说明如下:(1)domain,存放领域模型对象如果对象较多,可考虑按模块再划分子包,分类保存,以方便维护:比如:com.lovo.cmts.domain.sale.Order,表示保存在sale子包中的订单领域对象;com.lovo.cmts.domain.message.Mail,表示保存在message子包中的邮件领域对象;(2)dao包●dao持久层对象,保存系统中所有持久层接口,比如:com.lovo.cmts.dao.IOrderDao,表示订单持久层对象●dao.impl持久化接口实现类,比如:com.lovo.cmts.dao.impl.OrderDaoImpl,表示订单持久化实现类;(注:如果采用通用DAO方法,就建立CommonDAO与QueryDao,只需这两个接口即可)(3)service包●service包存放服务对象接口比如:com.lovo.cmts.service.ISaleService,表示销售业务接口。

●service.impl包中存放业务类实现方法:比如:com.lovo.cmts.service.impl.SaleServiceImpl,表示销售业务接口实现类。

(4)exception系统异常包异常可按业务分类,分包存放,所有异常父类选择为ng.Exception。

比如:com.lovo.cmts.exception.SendMailException,表示发送邮件失败异常。

(5)util包该包中存放项目中用的的工具类,比如:字符串处理、日期处理、MD5加密库、UUID生成器、验证码生成器、图片处理类等。

(6)commons包项目中其它模块用到的公共类,比如:常量接口。

(7)vo包项目中用到的值对象或DTO对象,可根据业务要求及前台要求,自行定义,但统一以VO结尾,比如:MailVO,表示邮件值对象。

(8)web包该包存放所有与控制层与视图层相关的类,该包下有如下子包:●web.struts.formbean,存放静态formbean(类命名以Form结尾,比如:LoginForm)●web.struts.action,存入系统中的所有action,所有action均继承自系统中的BaseAction。

(类命名以Action结尾,比如:LoginAction)●web.util,存放web相关工具,比如:包装器,乱码过滤器等(9)测试类以test开头,分类存放比如: .lovo.cmts.service.SaleServiceTest,表示销售业务测试类.lovo.cmts.dao.SaleDaoTest,表示销售持久对象测试类4注释规范类注释/**************************************************************** ** 类逻辑名称 : 项目业务类* 类功能 : 实现项目对象的持久化* @Author 编程者 : 张三* 初作时间 : 2009/6/20* 关联类 :* 通用DAO:CommonDAO;* 领域对象:Project;* 处理流程 :** 调用示例 :** ---------------------------------------------------------- * 时间: 修改者:* 修改内容:** ---------------------------------------------------------- * 时间: 修改者:* 修改内容:** ----------------------------------------------------------******************************************************************* /方法注释对于业务方法都应该加上注释,但GET,SET不用添加注释/*** 方法名称* 方法实现的业务说明* @param 进行参数说明* @return 对返回值进行说明*/JSP页面注释采用HTML注释进行注释,对于使用标记库的循环如forEach需要在开始和结束时进行注释<!—开始循环显示projectList--><c:forEach items=”projectList” var=”project”></c:forEach><!—结束循环-->本次OA项目规范:1.所有页面、代码、项目、服务器编码采用utf-8.2.主要软件:a)MyEclipse professional 2014 项目名 GoodOAb)软件 Tomcat 7c)数据库 mysql 数据库名 db_oa3.项目目录结构4.注意:a)类、方法、变量需按规范命名,命名见名知意。