java开发规范.doc_第1页
java开发规范.doc_第2页
java开发规范.doc_第3页
java开发规范.doc_第4页
java开发规范.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

保险展业系统开发规范一、 技术选型,包含哪些Java技术?二、 命名规范1)、文件名、变量名遵循公司的Java开发规范;2)、数据库表名、列面遵循公司的数据库开发规范;3)、Java包名约定如下:i). 保险展业系统的英文名为“inswell”,因此所有的源代码包都基于“com.longtop.inswell”,再加上模块名,如:com.longtop.inswell.base.*ii). 各个模块的名称规定如下(不可更改):模块名Package子模块SubPackage三级子模块/功能SubPackage基础模块com.longtop.inswell.base工具类utilServletservlet设计模式pattern服务组件servicecomponent产品维护duct产品代理商(insurer)insurer省区信息area打印项printitem建议书posal产寿险liefset基本信息方案case话术管理template模板template利益benefit打印车险car因子设置费率表算法设置快速试算试算资讯中心r知识库knowledge分类管理内容发布保险/理财知识新闻news公告bulletin友情链接friendlinks公司简介introduction客户管理com.longtop.inswell.customer联系人linkman基本信息联系信息保单信息偏好信息人际关系企业客户enterprise承保客户taker控制台与首页com.longtop.inswell.console首页homepage菜单管理工作台内容管理cms频道管理栏目管理栏目资源管理大字段维护频道模块设置参数设置settings动态属性设置日志级别调整事务跟踪系统管理sysadm机构管理organ团队管理team人员管理employee用户管理user角色管理role权限管理permission理财规划com.longtop.inswell.finance问卷survey问题库问卷模板问卷规则理财分析analysisCRMcom.longtop.inswell.crm线索lead机会chance约会appointment关怀carefor增员recruit提醒reminder日程、计划agenda市场活动marketiii). 各个模块内部的层次命名:web:存放模块执行的Action类,建议这些类以“*Action” 命名,Action调用I*Service接口的public方法;service:存放模块中应用DAO的类,建议以“*Service”命名,并且每个service都要有定义接口和实现,接口以“I*Service”命名,并且service类与接口类不在同一个目录下,实现类在接口类的下级包impl下,且命名规范是I*ServiceImpl; model:存放模块中的数据模型类,建议以”*Bean”命名,属性名遵照JavaBean标准,不能出现缩写,要求在Bean中所有属性有注释;Comm:存放模块中的常量类、工具类,建议以“*Constants”做常量类命名规范,以“*Comm” 做工具类命名规范; iv). Hibnernate、IBatis语句、Spring注入Service命名 为了防止启动时加载出错,规定以上命名都必须加上模块名,如“base.ICustomerService”,(base模块的可以省略)。如果需要Copy 代码或配置文件,务必保留其原有的目录结构。V).IService接口方法命名如下:新增数据:insertXXX()修改数据:modifyXXX()删除数据:deleteXXX()新增修改:saveOrUpdateXXX()无条件查询:getXXX()条件查询:queryXXX()查询单个对象:findXXX()Vi).Action方法的命名如下: 初始化:initExecute() 查看:viewExecute() 编辑:editExecute() 删除:delExecute() 增加:addExecute() 其它方法:* Execute() 三、 模块划分和依赖调用模块名如上,各模块内部可以酌情再划子模块,要求避免各个大模块间的相互调用,尤其要杜绝交叉引用,但都可以调用base模块和控制台(之系统管理)模块,base模块由专人负责,发布的功能尽量以Action/JS注入方式(或者WebService)而非对外提供接口。划分模块的意义在于适应平台的组件发布功能,最终目的是为了做到有选择地增减某些功能模块而不影响系统的正常运行。所以,我们约定:1、 模块之间调用最低要求-只能单向引用(比如模块A调用了模块B的API,则模块B不能再调用模块A的API),即模块是父子关系的;2、 同一个数据库对象只能在一个包内定义,对它的增删改查都只能由一个Service中维护;3、 页面链接不能直接是其它模块的URL;四、 文件目录展业系统的文件(包括配置文件、数据文件和程序文件等)必须按模块存放在指定的目录下,同时模块内部的目录继承整个系统的目录结构,具体如下:bin:运行脚本,比如Ant编译文件等;Data:初始化数据db:数据库脚本docs:设计文档、规范文档src:Java源文件(交付时可以不提供)resources:所有配置文件其中配置文件目录resources/META-INF需要严格按照以下结构:Cache:Exception:Env:Hibernate:Spring:Ibatis:Hsqldb:Log:Message:Persistence:Springsecurity:Tx:Ws:其中:hibernate、ibatis、spring下面,必须有“/inswell/$模块名”的目录五、 事务AOPTransaction.xml事务注入配置如下:需要注意的是:不需要事务控制的增、删、改的Service方法名(这些方法作为Action调用Service方法的子方法)前缀insert*modify*drop*六、 Base模块集成的功能1) 发布的JS Service绩效系统中的一些公用功能:“选择机构树”、“选择客户经理”、“选择指标体系”、“选择计划周期”等,都以JS Service的方式提供给其它功能模块调用,这些JS方法都在/scripts/inswell.js中发布。(具体参照js文件的注释)2) 设计模式为了简化功能模块的开发,base中实现了一个典型的container/component模式,可用于“事件提醒”、“服务监听”、“投票器”、“功能部署”、“页面组装”等特定场合,具体参照有关文档。3)七、 团队开发本产品使用SVN作为版本控制器,要求小组成员开发都基于SVN工作路径(Eclipse工程路径必须与SVN工作路径一致),切实做到“每天早上GetLastest Version,每晚Checkin”,但必须是经过本机测试的代码才checkIn(除特殊情况下,JUnit测试代码可以不放到版本服务器上),版本发布都是以SVN为源头,若有删除的文件,需要提醒。同时对版本做在开发阶段做周备份,在实施阶段做日备份。八、 代码约定1、 为考虑国际化,工程的字符编码是UTF-8,页面、配置文件等亦如此;2、 所有的IService不需继承任何接口,而ServiceImpl必须继承DefaultServiceImpl,所有的Service方法声明中不要throws任何Exception,而是统一使用开发平台的Annotation;3、 所有Action继承com.longtop.inswell.base.InswellBaseAction,Action的方法要catch异常,如: try ListMap list=getCustomerList(); setTreeList(list); catch(Exception e) cessException(e, true, true,e.getMessage(); return INPUT; return SUCCESS; 在action中不要使用私有方法,如果是公共方法放置在comm的包下,如果不是放在service中4、 程序控制台一律不用System.out,而使用commons-log;5、 尽量不发布业务Servlet,公用组件可以发布Servlet;6、 所有的Service、Action不得出现数据类的成员变量,否则对该变量的访问须加以线程同步的控制;对于的变量定义、import语句等,如果实际没有用到,从代码中删除;7、 在使用List、ArrayList、Map、HashMap声明的变量后要释放该变量, 如:List countlist = (List) this.queryBySqlId(customer.linkman.getCountOfCustomer, paras); Countlist=null;8、 数据模型(model)必须实现ValueObject接口;9、 考虑集群环境,新增数据库对象的PK统一设计成VARCHAR(36),采用java.util.UUID生成唯一编码;10、 要求Action和JSP必须有代码注释,注释采用标准javadoc的样式, Action注释必须包含以下内容:作者(author)、功能描述(descript)、最新修改日期(lastModified)、修改历史,方法的Javadoc包括功能描述,、参数(param)、返回类型(return)等,方法内部属于大的修改须记录日期、修改人、原因,并以注释方式保留原来的实现; Jsp注释包含以下内容:作者(author)、功能描述(descript) 、参数(params)、最新修改日期(lastModified) 注释用11、 SQL查询语句,要求尽量做到: 1),从Table中查询而非View, 2)、Select子句要明确指定查询列而非”*”

温馨提示

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

评论

0/150

提交评论