rubyweb:被遗忘的Ruby Web开发框架

  随着Ruby on Rails成功是否还有其他Ruby Web开发框架生存空间呢?Rails尽人皆知有人甚至可能听说过Merb和Camping但是否有人知道Nitro、Ramaze、Sinatra、IOWA或者Cerise?本文对这些框架进行个快速浏览并试图解读他们为业内人士欣赏(或忽视)原因

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

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

  Nitro是个有 3年历史“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会进行自动检测同时改变对应数据库有些人总是会忘掉ActiveRecordMigration功能

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

  ◆KISS原则(Keep It Super Simple)

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

  ◆模块化设计

  ◆最小化依赖

  ◆文档

  ◆开放式开发

  ◆BDD开发/例子

  Ramaze是MVC Web开发框架使用自己名为Ezamar模板系统但是你同样可以使用Markaby、HAML、Liquid或ERB来替代EzamarRamaze不提供默认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在近 3年时间里都不活跃Cerise有时间都没有活跃因此我们不会深入探讨它们

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

Tags:  ruby开发工具 javaweb开发框架 web开发框架 rubyweb

延伸阅读

最新评论

发表评论