资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
JRESPLUS开发 -开发规范,目录结构-工程,maven工程 :,普通工程:,推荐使用maven工程进行代码管理,目录结构-包(package),java package :,com.hundsun.jresplus.web.nosession,com.hundsun.jresplus.remoting.server,com.hundsun.jresplus.remoting.client,com.hundsun.jresplus.web.url,com.hundsun.crm.user.action,com.hundsun.crm.user.service,com.hundsun.crm.user.dao,组织,公司,平台,模块,子模块,组织,公司,系统,模块,分层,平台/框架,系统/产品,目录结构-配置文件,资源文件:,非web工程中spring配置文件:,web工程中的配置文件:,spring配置文件命名:“产品-功能模块-beans.xml”,系统参数配置文件,日志配置文件,数据库连接配置文件,其他由于使用第三方包,由第三方包约定的配置文件准从约定的目录进行配置,目录结构-web静态资源,目录结构-web视图文件,命名,接口:使用大写字母I开头,符合驼峰规则,类:首字母大写,符合驼峰规则,驼峰规则(单词首字母大写后面的字母小写)如:UserAccount,实现类:首字母大写,符合驼峰规则,以Impl结束,抽象类:以Abstract开始,符合驼峰规则,逻辑分层相关:(控制层)action:以Action结束,如“UserAction”;(服务层)service:以Service结束,如“IUserService”,“UserServiceImpl”;(逻辑层)logic:以Logic结束,如“IUserLogic”,“IUserLogicImpl”;(持久层)dao:以DAO结束,如“IUserDAO”,“UserDAOImpl”,命名,常量:使用全大写英文字符、下划线组成,首字符请使用字母,单词与单词之间使用下划线“_”分隔,声明时使用“static”final”修饰;如:,变量:使用英文字符组成,符合驼峰规则,首字母小写,使用具有语义的方式命名(单词或通用的缩写)如:,函数:使用英文字符组成,符合驼峰规则,首字母小写,使用具有语义的方式命名(函数的命名要与函数的行为一致),private static final String SESSION_KEY=“key_”; public static final int SESSION_COUNT=10;,String userName;,注释-java源文件,/* * 系统名称: * 模块名称: * 文件名称: $file_name * 软件版权: 恒生电子股份有限公司 * 修改记录: * 修改日期 修改人员 修改说明 * = = = * * = = =*/,每一次文件的变更,都需要在修改记录中维护,注释-实现注释,/*判断年龄限制*/,单行注释,/* * 该函数用于做什么 */,块注释,if (a = 2) return TRUE; /* special case */ else return isPrime(a); /* works only for odd a */ ,尾端注释,/被注释的代码,末行注释,好的代码不需要注释好的代码从注释开始,注释-文档注释,/* * 功能说明: * 系统版本: v1.0 * 开发人员: $user $userhundsun.com * 开发时间: $date * 功能描述: 写明作用,调用方式,使用场景,以及特殊情况 */,类与接口的文档注释:,/* */,字段的文档注释:,/* * method comments here * $tags */,函数的文档注释:,声明,每一行声明变量的数量一行只声明一个变量,因为这样更加容易添加注释,不容易在读代码的时候忽视一些变量变量的初始值尽量在声明变量的同时进行初始化;声明变量的位置只在代码块的开始处声明变量(一个块指任何一个使用大括号中间的代码)类和接口的声明编写类和接口时,应该遵守以下格式规则:在方法名和其参数列表之前的左括号“(”不要有空格;左大括号“”位于声明语句同行的末尾;右大括号“”另起一行,除非是空语句;方法与方法之间以空行分隔,class Sample extends Object int var; Sample(int var) this.var= var; int emptyMethod() . ,语句,一行最多包含一条语句;复合语句的大括号“”,不能和语句在相同行;条件判断语句必须使用大括号“”包含住执行语句,哪怕只有一行;循环语句必须使用大括号“”包含住执行语句;switch语句,当没有使用break进行结束(意味着继续向下执行)时,需要在原本用来写break语句的地方添加注释;成员变量与函数声明语句之间使用空行分隔;函数与函数之间使用空行分隔;函数内行数过长时,不同阶段的代码之间使用空行分隔;使用4个空格进行缩进;, int var=0; .,惯例与准则,1,避免通过实例访问其静态变量和函数,应该使用类来引用;2,避免在一个语句中给多个变量赋值,如:a=b=1;3,不要使用内嵌赋值语句,如:d=(a=b+c)+e;4,条件判断时,尽量使用圆括号“()”,如:if(a=b)6,避免重复代码,当在两处或者更多的地方发现相似的代码时,应该考虑将重复代码抽取为函数;7,函数应该尽量短小;8,函数和变量的命名使用有意义的命名,提高可读性;9,为每一个类和函数分配正确的职责(单一职责),且与命名一致;10,尽早的进行代码重构;11,尽量少的注释和不注释,如果发现一段代码必须用注释才能阅读时,说明该代码需要进行重构了;12,注释要与实现一致,如果一段代码使用注释说明行为,那么注释需要与行为一致;,善用eclipse的refactor(重构)菜单,jresplus开发-逻辑分层,服务层,表现层(web),业务逻辑层,数据访问层,JavaScript,Velocity,HTML,CSS,Spring MVC,MyBatis,Spring,Spring,Spring,上层依赖下层面向接口不跨层,日志异常,POJO,Jresplus MVC,逐层向下构建由交互开始,服务契约,数据契约,表现层(其他客户端),表现层:通过web方式的人机交互界面,提供业务内容展示、操作的入口;,服务层:用来组织业务逻辑,向表现层提供业务服务,降低表现层对业务处理逻辑层的耦合,提高业务处理逻辑的复用度;,业务逻辑层:负责承载业务的逻辑处理;,数据访问层:负责数据的持久化、访问操作;,基础运行与开发环境集成,BO,服务层,表现层(web),业务逻辑层,数据访问层,HTMLCSSJS,Velocity,Spring MVC,HibernateJPA,Dozer,Spring,Spring,上层依赖下层面向接口不跨层,日志异常,POJO,Jresplus MVC,逐层向下构建由交互开始,服务契约,数据契约,表现层(其他客户端),DHTMLX,JQuery,Jresplus-UI,Jresplus-remoting,Spring,jresplus开发-表现层-视图开发,表现层使用velocity模板语言开发,layout,screen,COC,view,视图文件有布局文件和内容文件组成,布局文件和内容文件通过COC的原则组成最终的视图,WEB-INF,views,layout,default.vm,screen,module,module,default.vm,sameName.vm,sameName.vm,1,首先匹配同名目录下的同名布局文件,2,其次匹配同名目录下的default布局文件,4,最后匹配布局根目录下的default布局文件,Sub Module,Sub Module,default.vm,3,再次匹配上级目录下的default布局文件,jresplus视图开发,jresplus开发-表现层-控制器,控制器使用springmvc提供的注解方式开发,如:,jresplus-mvc开发,ControllerRequestMapping(/user)public class UserAction Autowired IUserManagerService userService; RequestMapping(/accountList) public void accountList(UserAccountQuery query, Model model) List list = userService.queryAccountListPage(query); model.addAttribute(accountList, list); RequestMapping(value = /account, method = RequestMethod.GET) public void getAccount(UserAccount account, Model model) userService.queryUser(account); UserAccount account = userService.getAccount(query); model.addAttribute(account, account); RequestMapping(value = /account, method = RequestMethod.POST) public String addAccount(UserAccount account, Model model) userService.addAccount(account); return redirect:/user/accountList.htm; ,jresplus开发-服务开发,jresplus-remoting开发,HS ESB,WEB端,View,Controller,Jresplus-remoting,client,服务契约,T2,服务端,Jresplus-remoting,server,服务契约,logic,DAO,T2,Other Server,Other Client,客户端、接入端、服务端都通过T2协议接入到HS ESB总线上,Jresplus-remoting提供client(客户端)和server(服务端)的支持,结合服务契约,完成通信的过程;,服务的调用和发布使用jresplus-remoting进行开发,BO,jresplus开发相关内容,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号