最近在新公司学习一个新框架: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 阅读(2094)
评论(4) 编辑 收藏