随笔-55  评论-208  文章-0  trackbacks-0
最近在新公司学习一个新框架:UMA,是Cloverworxs的,不是开源项目,也不是商业项目,所以google上是找不到的
这个框架是老美设计,感觉他们在逻辑的抽象上功底更强一些,这个应该和软件开发的大环境经验积累有关系吧。
首先先他把一个request发给controller,controller根据service(service是使用spring加载的,主要用于封装handler和target)把请求封装后发给handler,handler根据请求参数找到fenture,而feature则根据请求参数交给具体action来处理。action主要就是调用业务模型层的接口了。然后action处理完之后会返回到controller,controller根据service调用target,target则调用配置的render(可能多个),然后rende从业务模型层的接口中取回数据并进行显示准备,最后把数据封装到一个RDO中,然后把RDO放置到attribute中,然后再页面上读取显示。

初学这个框架,看得是作者的英文文档,首先得感觉是层次的抽象的有些细,因为以往做过的项目中,render和handler,feature的代码都是放在控制层来处理了(通常是struts的action)。但是这种详细层次也能感觉到的好处就是,当某一层次要变动时不需要到action中去找变动代码,而且当出于某种考虑要针对于某一层进行统一处理(如安全性处理)时就比较方便了。

看完文档觉得对框架已经有了一个深入的认识,开发时应该比较快上手了吧,但是实践中却发现,在每一层的实现代码中由于框架引入了很多的完善特性,所以每一层的代码有很多细节的实现问题是需要一点一点理解去掌握的。而且学习的代码是一个完整的项目,这个完整的项目有一个问题就是,有几十个模块,模块间的代码有相互耦合的问题,反而造成了我阅读代码的困难。结果用了一个多礼拜的时间才算基本上手框架。
总结问题,发现主要有两个:
1、太过相信文档,其实文档只是一个大体框架的介绍。所以我应该多和有经验的开发者交流,并且要配合代码具体细节
2、一个框架应该有一个简单的清晰的demo,只涉及一个模块,清晰,明确,这样就不会再阅读学习时陷入模块逻辑和框架逻辑中。因为从代码中你很难分辨出哪些是框架逻辑,哪些是模块逻辑。
posted on 2007-03-31 12:41 rocket 阅读(2074) 评论(4)  编辑  收藏

评论:
# re: 框架学习新体会 2007-04-01 15:32 | sunflower
是不是这种框架
调用时:----------------------------------------------

1.表现层->控制层->Service->Action->业务层
Sevice(handler,feature,target)
Render

返回时:----------------------------------------------
1.控制层<-Action<-业务层
2.控制层->Service->render->业务层
3.表现层<-控制层<-Action(封装RDO?)<-业务层<-持久层

有几个问题问问:
1.这是SOA的框架么?
2.每一层应该是独立的.特别是控制层,业务层,持久层并不受Action影响.
对每一个服务,只需配置一个Service就行,可插件式的应用,之后Sevice通过从业务层得到的参数来使用RDO来封装数据.是不是数据模型都有特定的人封装好了,你只是拿来拼凑层RDO?
你只需要做Service层对吧.
持久层应该只调用一次,就是封撞RDO时调用.
---------------------------------------------------
RDO以前没听过:
RDO (Remote Data Objects) 远程数据对象是一个到 ODBC 的、面向对象的数据访问接口,它同易于使用的 DAO style组合在一起,提供了一个接口,形式上展示出所有 ODBC 的底层功能和灵活性。尽管 RDO 在很好地访问 Jet 或 ISAM 数据库方面受到限制,而且它只能通过现存的 ODBC 驱动程序来访问关系数据库。但是,RDO 已被证明是许多 SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。RDO 提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。   回复  更多评论
  
# re: 框架学习新体会[未登录] 2007-04-02 15:36 | rocket
@sunflower
rdo = render Data Object
专门用于封装页面显示数据的  回复  更多评论
  
# re: 框架学习新体会 2007-04-05 19:19 | sunflower
能不能解释的稍微多点呢?例如框架  回复  更多评论
  
# re: 框架学习新体会 2008-01-07 03:35 | javayuan
service不就是业务层么?  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: