查看文章
 
merb的不可知--与uliweb框架的走向
2008-12-24 13:33
今天看到一则消息是说 Merb 与 Rails 将合并,下一个版本是3.0。那么这个Merb是什么?因为我不是RoR的粉丝,不是很清楚,于是乎上去查一查,哦原来是一个MVC的ruby框架,其中它的说明有这么一段:

Merb is an MVC framework that is ORM-agnostic, JavaScript library agnostic, and template language agnostic, preferring plugins that add in support for a particular feature rather than trying to produce a monolithic library with everything in the core.

agnostic是不可知论者的意思。也就是说,它并不绑定ORM,Javascript, template,而且采用插件的方式来进行扩展。这一点我非常赞同。一个框架到底是做什么?应该怎么做?最近在邮件列表中我一直在和大家讨论关于django的一些问题。从这里我越来越清晰了我的想法。我认为uliweb就应该是包括这两层:基础框架层及定制层(包括插件)。基本框架就是完成结构的管理,组件的交互。而定制层则是完成具体组件的选型及实例化,以及在此之上的扩展开发。

这样看来pylons好象就是这样,不过我的确没有怎么研究过,所以也不好对它进行印证。通过这样的划分,一方面各层的目标和定位清晰,另一方面既有灵活性也有实用性。灵活性是说可以基于基础框架定制出符合某种要求的定制层来。实用性则是当已经建立了某个定制层,可以把它的开发功能足够完善,从而更加方便用户的使用。不同的用户对框架的要求不同,基础框架更多的是面对平台搭建或框架开发人员,而定制层则可能是最终用户来使用,它应该更符合用户的行业背景或使用基础。

这样看来RoR可能就可以认为是定制层的一种,而django也是。uliweb的核心部分其实基本上已经象是Merb的方式了,不过目前template是内置的,这块可以做一个修改。而定制层还很不成熟和完善,这是以后的一个重点,但是它也只能是一种模式,用户还可以定制出许多其它的模式。

uliweb将最小的工作单位分割为不同的app,每个app尽可能独立,减少相互之间的依赖,因此这样才可以最大程度地便于复用。这样通过不同功能app的组合就可以创建出适合不同需求的定制层来。

类别:Uliweb||添加到搜藏 |分享到i贴吧|浏览(1445)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu