你们在经过对Ruby的学习后,都知道,Ruby on Rails是一款性能很是优越的Ruby Web开发框架。可是其余的Ruby Web开发框架又有多少人知道一二呢?php
迅速掌握Ruby文件锁概念html
Ruby操做文件权限技巧分享web
Ruby will_paginate知识堂数据库
详细解读Ruby输出文件信息实现方式编程
Ruby元编程构造简单优雅解决方案服务器
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的开发一直以稳定的步伐向前推动。post
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的使用等,它们仍然值得一看。 更多好文请访问:www.bdm361.com