写点什么

Ezra Zygmuntowicz 访谈:通向 Merb1.0 之路

  • 2008-02-02
  • 本文字数:2153 字

    阅读完需:约 7 分钟

Merb 已接近 1.0 发布里程碑,开发团队为此时正在使用 Merb 以及计划在新项目中采用 Merb 的人们带来了一些巨大的变化。

InfoQ 有幸采访了 Merb 的缔造者和 Engine Yard 的创始人——Ezra Zygmuntowicz。

Robert Bazinet (RB): 对于那些不熟悉 Merb 的朋友来说,来介绍一下 Merb 以及 Merb 和 Ruby on Rails 之间的差别?

Ezra Zygmuntowicz (EZ): Merb 是一个和 Rails 很相似的 Web 应用开发框架。较之 Rails 框架,其主要侧重于增强框架的可理解性、规则化以及快速编码的辅助。严密的核心框 架可以用于构建高性能的网络服务,还有插件和附加功能可供随意选择。这使得 Merb 核心小而快,而且依然可以构建成熟的应用。Merb 同时也支持 ORM、 Javascript 以及测试框架。它拥有官方的插件可以使用 ActiveRecord、DataMapper 和 Sequel ORM’s,可以轻易的使用 CouchDB、ThruDB 以及其他数据存储。

RB: Merb 是为哪一类开发者或者哪一类项目所设计的?

EZ: 在这一点上我会说 Merb 更针对于中到高级的开发者。Merb 并不如 Rails 般易于学习,但是它也在努力试图吸引 ruby 初学者和在试图个性化的时候遇到麻烦的人。Merb 的目标是在服务器资源上比 Rails 更加有效率,目前它可以节省大约一半内存,而在分派(dispatch)和渲染的时候会快上约 2-5 倍。

RB: Merb 0.5 最近发布了;这个发布版的里程碑是什么?

EZ: 这个发布版有着很多优雅的新特性。虽然它仍然是一个开发版本,但是它已经在很多产品中使用了。

RB: Merb 0.9 作为下一个官方发布版,将会分解为一个 Merb-core 的 gem 和一个由其他 gem 所组成的包。这样做对开发者的好处是什么?

EZ: 这样做的好处是可以保持核心框架精简、益于理解且速度快。这意味着 你将可以触及核心并可以做到对 Web 服务和 SOA/REST 类型后端的快速响应。和 Rails 那种大而全又不能精简的类型不同的是,Merb 可以很小并让 你可以根据你的应用程序的需求来仅仅拣选那些需要的特性,当你要将你的应用程序部署到一个产品环境中的时候,这样做可以降低花销并提高性能。

我们将会有一个 Merb 的元 gem,可以安装 Merb-core 和一个插件集合,所以你仍旧可以通过一个快速启动的全栈框架来搭建原形系统。但是我认为保持模块化是非常重要的,这样可以避免 Rails 因为累积而导致的臃肿。

RB: 为什么团队要开发一个 0.9 的发布版和一个 1.0 的发布版,而不是直接发布 1.0 呢?

EZ: 0.9 基本上就是 Merb 1.0 的 RC 版本,我们已经做了主要的重构,并希望大家可以暂时使用 Merb 0.9 并在我们开始 Merb 1.0 以前提出更多的问题。

RB: Merb 已经开发了一阵子而且马上将要到达 1.0 版本,这很令人欣慰吧。在 Merb 就要到达 1.0 的时候你的感觉如何呢?当这个项目启动的时候你又是怎么设想 1.0 版本的呢?

EZ: Merb 0.0.1 的第一个发布是在 2006 年十月。在那以后 Merb 就有组织有计划的稳步增长,从一个小玩具变成了一个完全成熟的框架。我们马上就要达到 1.0 版本十分令人欣慰,我非常兴奋的看到人们用 Merb 来创建平台。我觉得对于 Ruby 来说 Merb 1.0 作为一个 Web 平台是一个重要的里程碑。我希望能够最终去除 Ruby 通常很慢的这个毒瘤。Ruby 只要适当注意编码规范是可以很快的。

RB: 除了 0.9 或者 1.0 的 API 文档以外,开发团队在教程、视频以及文档方面都做了些什么?在帮助开发者入门方面我们有什么可期待的?EZ: 是的,在 0.9 发布后、正在通往 1.0 的路上,我们已经拥有了一个带有 Wiki、论坛等等的社区文档和集中插件网站。也有一些 Merb 的书籍正在编写中。一些社区成员也正在制作一些教学视频。

预期扩展的集中文档和技术指南会在 Merb 1.0 发布之时或之前被发布。我们对于 Merb 的代码采用了一种新的文档规范并在 Merb-core 中广泛使用,在 1.0 发布以前我们也会将同样的规范应用于 Merb-more 和所有的插件中。

RB: Merb 1.0 在我看来是非常关键的。一个 1.0 版本的发布通常意味着产品的到来,作为一个 Ruby on Rails 的开发者,Merb 开发团队会怎样帮助我转换到 Merb 呢?

EZ: 随着 1.0 发布我们也会带来丰富的、专业的文档和技术指南。我们当然也考虑到了很多人将会从 Rails 迁移到 Merb,所以我们会确保有足够的信息来让这种迁移更加容易。

一个关键的思路就是保持框架代码的简单、精简和一致性。这样可以使开发变得容易,因为框架并不是一个完全的黑箱。 它能够熟悉并修改来让你做你想做的事。很多次当我为了去修复 Rails 中的一些错误来读 Rails 框架的代码的时候我都会感觉很痛苦,我希望能够引导 Merb 的方向,使它不仅仅是一个可扩展的框架,更拥有对未来可扩展的代码库。

我们在代码库中采用一种 @public、@semipublic 和 @private 的标准规范。在 1.0 以后我们 将不会修改 @public 的 API,而 @semipublic 将可能会作一些修改,但是我们会试图保持修改的最小化。@private 的 API 在不破坏 @public 和 @semipublic 标准的情况下是可以任意重构其内部实现的。我们希望这样可以帮助我们去避免那些 Rails 在向后兼容性上所带来的 阻碍创新和扼杀代码库的问题。

RB: Ezra,感谢你在百忙之中抽出时间来和我们来聊 Merb。

Engine Yard 的新工程师 Yehuda Kats 在他的博客更新的文章中给出了关于下个版本 Merb 的信息,其中对于一些 Ezra 谈到的要点给出了更加详细的说明。

他对于新 Merb-core 的 gem 的一些重要的细节给出了解释:

2008-02-02 00:291187
用户头像

发布了 80 篇内容, 共 22.3 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

密码学系列之:blowfish对称密钥分组算法

程序那些事

加密解密 密码学 程序那些事 密码学和算法

EasyRecovery,拯救那些遗失的文件

淋雨

文件恢复 Easyrecovery破解 数据恢复软件 免费数据恢复

34岁Android开发大叔感慨,已拿offer附真题解析

欢喜学安卓

android 程序员 面试 移动开发

Cookie常见面试题

悟空聊架构

缓存 面试 Cookie 6月日更

Linux之mkdir命令

入门小站

Linux

从 Flutter 和前端角度出发,聊聊单线程模型下如何保证 UI 流畅性

魅影

大前端 事件驱动 Event iOS 知识体系

活久见!低访问量竟然也能导致系统问题

三石

mycat

34岁安卓开发大叔感慨,帮你突破瓶颈

欢喜学安卓

android 程序员 面试 移动开发

chia奇亚算力挖矿分发APP系统开发

薇電13242772558

区块链

架构实战营 模块六作业

Dylan

架构实战营

Python——双向队列 (deque)

在即

6月日更

HarmonyOS学习路之开发篇——Data Ability

爱吃土豆丝的打工人

HarmonyOS Ability 鸿蒙 Ability Data Ability

共享存储设备,如何实现差异化IO分配策略

怀瑾握瑜

云计算 负载均衡 存储 数据中心 SSD

架構實戰營 - 模塊 6 作業

Frank Yang

架构实战营

【Flutter 专题】128 图解 ColorTween 颜色补间动画 & ButtonBar 按钮容器

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

鸿蒙究竟是什么?

Nydia

Flink集成hive测试及生产规划

一弦思华年

大数据 hive 实时数仓 数仓 flink 执行

架构实战营模块 6

阿体

推荐 3 款超好用的 Docker 图形化管理工具

学神来啦

Docker Linux 程序员 分布式 运维

在线crontab表达式执行时间计算工具

入门小站

工具分享

顶级程序员都是如何诞生的?

Nydia

话题讨论

从工单到需求管理,企业如何快速响应客户反馈?

万事ONES

项目管理 需求管理 需求 ONES

模块六:课后作业

菲尼克斯

架构实战营

电商系统微服务

贯通

架构实战营

架构实战营 模块六课后作业

iProcess

架构实战营

浪潮云说 | 开源新势力—云溪数据库ZNBase

云计算

【Vue2.x 源码学习】第二十篇 - 使用真实节点替换原始节点

Brave

源码 vue2 6月日更

第6模块作业

高亮

架构训练营

MySQL 页完全指南——浅入深出页的原理

leonsh

MySQL 数据库 innodb

不动如山,表备份硬核技术:物理细粒度备份恢复

华为云开发者联盟

集群 数仓 Roach 物理细粒度 备份恢复

云图说|初识云数据库GaussDB(for Cassandra)

华为云开发者联盟

开源 Cassandra 云数据库 GaussDB(for Cassandra) 宽列数据库

Ezra Zygmuntowicz访谈:通向Merb1.0之路_Ruby_Robert Bazinet_InfoQ精选文章