几种实用型Ruby Web开发框架介绍

开发 开发工具
Ruby Web开发框架除了Ruby on Rails之外其实还有很多实用的,比如:Merb;Camping;Nitro;Ramaze;Sinatra;IOWA等等。

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

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的使用等,它们仍然值得一看。
 

责任编辑:曹凯 来源: ddvip.com
相关推荐

2022-06-15 15:23:03

实用型代币加密货币以太坊

2019-12-19 11:19:02

区块链实用型Linux

2009-01-20 15:28:42

无线路由华硕RT-G31

2010-04-14 17:29:33

Oracle数据库

2012-06-27 14:04:20

宏碁投影机

2011-10-27 14:40:24

笔记本评测

2012-06-19 13:51:20

飞利浦传真机

2009-12-15 11:31:53

Ruby self

2009-12-17 11:14:50

Ruby on Rai

2010-04-09 19:08:31

甲骨文Oracle应用顾问

2012-06-12 13:33:38

HTML5

2009-12-15 18:39:36

Ruby Active

2019-09-05 14:41:22

Java后台框架

2009-12-16 15:14:43

Ruby on Rai

2011-05-29 13:41:55

喷墨打印机首测

2012-09-18 11:02:10

ASP.NETC#Web Forms

2013-08-26 10:51:56

Web开发框架

2017-07-18 15:13:17

2012-05-25 14:04:02

Google

2012-05-29 14:27:40

Google创新
点赞
收藏

51CTO技术栈公众号