[转帖] 几种实用型Ruby Web开发框架介绍_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3204 | 回复: 0   主题: [转帖] 几种实用型Ruby Web开发框架介绍        下一篇 
chao.wang
注册用户
等级:上尉
经验:586
发帖:47
精华:0
注册:2013-11-12
状态:离线
发送短消息息给chao.wang 加好友    发送短消息息给chao.wang 发消息
发表于: IP:您无权察看 2013-11-15 8:59:24 | [全部帖] [楼主帖] 楼主

大家在通过对Ruby的学习后,都知道,Ruby on Rails是一款性能非常优越的Ruby Web开发框架。但是其他的Ruby Web开发框架又有多少人知道一二呢?


Rails尽人皆知,有人甚至可能听说过Merb和Camping,但是否有人知道Nitro、Ramaze、Sinatra、IOWA或者Cerise?本文对这些框架进行一个快速浏览,并试图解读他们为业内人士欣赏(或忽视)的原因。

之前我们讨论过Merb,这也许是完成度最高的Rails替代者。Merb项目的活跃程度非常高,并且在一些情况下得到了实际使用。可以说它是与Rails最为接近的Ruby Web开发框架。

Camping将自己定义为一个代码量保持在4k字节大小以下的Web开发框架。这个项目已创建了22个月,并由whytheluckystiff维护。一个完整的web应用可以在单一文件中定义,同时遵循MVC框架(这使得web应用以后更易于移植到Rails之上)。Camping使用ActiveRecord作为ORM解决方案;模板系统使用Markaby。Camping的开发一直以稳定的步伐向前推进。

Nitro是一个有三年历史的“Web 2.0”框架。在一段时间销声匿迹之后,开发者George K. Moschovitis又开始活跃起来。Nitro应用的服务器端以Ruby写成,客户端以Javascript开发。Urubatan最近对其进行了评价。与Rails注重按照习惯编程相反,Nitro更加灵活。Nitro支持开发基于Model-View-Controller的应用,同时支持非MVC、php风格的应用开发。Nitro使用xhtml文件,并定制的Ruby标签作为模板系统。

Nitro还使用了它自己的持久层,名为Og(ObjectGraph)。Og允许arbitrary Ruby对象的序列化。在attr_accessor中标记为Object(或Array或Hash)之后,引擎会序列化对象的YAML转储堆。Og同时支持任意对象图。Og提供自动化数据库进化功能:当Ruby类变更后,Og会进行自动检测,同时改变对应的数据库。有些人总是会忘掉ActiveRecord的Migration功能。

Ramaze是一个存在了6个月的轻量级Ruby Web开发框架。它在构建时基于下列广为人知的Ruby Web开发框架原则:

◆KISS原则(Keep It Super Simple)

◆POLS原则(最小惊讶原则:Principle Of Least Surprise)

◆模块化设计

◆最小化依赖

◆文档

◆开放式开发

◆BDD开发/实例

Ramaze是MVC Web开发框架,使用自己名为Ezamar的模板系统。但是你同样可以使用Markaby、HAML、Liquid或ERB来替代Ezamar。Ramaze不提供默认的ORM(对象-关系映射),你可以使用你自己的选择:ActiveRecord、Og...它支持诸如Cache等高级使用,web应用可以通过Mongrel或Evented Mongrel来搭建。你可以在Ramaze wiki上发现更多细节。

Sinatra是一个刚开发了一个月的DSL web开发框架。Ron Evans对其进行了简要评价。它与Rails的主要差别在于它不是基于Model-View-Controller模式的框架。Sinatra是基��最小化的DSL语法开发的,它的小型基础核心中不包括诸如ActiveRecord这样的模块。通过使用get/post action定义,Sinatra具备动态路由定义功能。Ron指出,Sinatra不是为Robust web应用开发的,而是为了用来搭建小型的原型,其中的混合业务逻辑和展示层并不是问题。

那这样做有什么好处呢?API实现、快速的最小化应用以及那些不需要Rails中的功能 (比如ActiveRecord)的web应用开发。可以用来对面板最小应用进行控制,或者是widget。

与其他框架相比,IOWA在近三年的时间里都不活跃。Cerise有一年的时间都没有活跃,因此我们不会深入探讨它们。

像Rails一样,Nitro有其自己的完整核心,其他Ruby Web开发框架试图越小越好,并允许用户自由使用他们喜欢的ORM、模板系统等等。即使这些框架可能缺乏文档,甚至有些框架不具备这么多的功能、流行程度、对Rails的使用等,它们仍然值得一看。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论