Merb 1.0 即将发布,RC1 现已可用

  • Mirko Stocker
  • 杨晨

2008 年 10 月 19 日

话题:RubyWeb框架Ruby on Rails语言 & 开发

Merb 1.0 的 RC1 版本现在已经提供给开发者使用了。如其网站所述,这个工具提供一个小巧但是功能强大的内核,当要扩展这个内核的时候,开发者可以开发各种插件,而不是试图在内核中生成一个能够做所有事情的巨大的库。

InfoQ 对 Merb 的维护者Yehuda Katz进行了采访,在采访中,他勾勒出了 Merb 的一个大致景象:

我们关注 Merb 的一个主要因素就是它提供了一个庞大的核心特性集合,但是只提供了很少的 Assumption 机制。另外,我们添加了一系列能够被细粒度删除的缺省特性。我们花了大量的时间确保这些缺省特性不会造成混乱,而且能够在当你需做和内置的不同的 Assumption 的时候,很容易被删除掉。

这个因素使得采取新的技术或者范型(例如云计算,JavaScript 技术的变更,Ruby 数据库支持的改善等)更加的容易。

以我们的观点来看,Merb 和 Rails 的最大的不同之处在于选择整合进入缺省包的特性的时候,因为 Merb 提供了高粒度的选择,所以只需要做一些很少的操作,而 Rails 需要做出相当多的选择操作。Merb 的栈就像是用乐高积木搭起来的,而 Rails 的栈则像是用 Duplo 积木一样(如果你需要选择一个比较大的 Assumption 机制是否进入缺省包,因为 Rails 的细粒度选择,那么你会需要作出相当多的选择操作)。

如上所述,Merb 在配置会话方面与 Rails 的想法是完全一样的。我们希望那些使用 Merb 的开发者能够在一些固有并且相似的 Assumption 机制集合的帮助下大幅度地缩短从启动到部署上线运行的开发周期。

在架构之间转换通常会很花时间和精力,所以我们希望知道 Merb 怎样帮助一个 Rails 开发者完成迁移:

好消息是在 Merb 下,你仍然能够使用你的 ActiveRecord 模型,而且控制器和视图因为和 Rails 足够相似,所以很容易地修改。也就是说,在 Merb 和 Rails 之间仅仅存在一些句法和概念上的差别,在月末发布最终的 1.0 版的时候,我们应该已经在 Merb Wiki 上列出来了这些差别。

这里有两本将要出版的关于 Merb 的书:

我现在为 Manning 出版社的Merb 专题写一本书,作为他们 MEAP 项目的一部分,这本书马上就要付梓了。Foy Savas也在为 Addison Wesley 出版社写一本关于 Merb 的书。

InfoQ 一月份的采访中,“集中插件站”曾经被提及过,现在情况如何?

1.0 版与开发 Merb 项目有关的部分包含了相当一部分通用插件,例如认证,缓存,异常通知,这些插件都是一流的。当然,某些情况下,我们也许会需要重新地访问集中的插件库以获得改良的插件。

Yehuda 最近写了一篇关于改良 Merb 服务器的博文,所以我们希望他能够精心地为我们介绍一下:

Merb 和 Rails 都有能够快速启动和管理页面的机制。在 Rails 中,这个机制是脚本 / 服务器。而在 Merb 中则是 merb 命令。在 1。0 版本中,我们大量地改进了 merb 的 server 版本,添加了 0.9 版中缺少的大量重要的特性。

例如:



  • 启动一个 Merb 服务器簇实例与已经被使用的端口进行绑定不会造成 Merb 崩溃。相反地,Merb 会提示端口被占用然后一直等待直到端口可用。这个特性允许这样的部署解决方案:(1)在服务器中加入新的代码。(2)启动新的 merb 服务器簇。(3)优雅地杀掉旧的服务器簇。
  • 如果没有添加额外的特性或者修改 init.rb,即使是在工作时间,Merb 服务器也将会快速,简易并且安全地重新载入你的代码。在目录中运行“merb --fast-redeploy”命令,所有的代码都会重新载入。
  • 如果一个 merb 工作进程被杀掉(即使是被 kill -9 命令给杀掉的),它会在很短的时间内重新启动。这个特性允许你能够没有任何顾虑地杀掉臃肿的进程而不用担心服务器罢工。
在未来的日子里,我们将会深度改进 merb 部署解决方案。

现在 1.0 将要出来了,那么对于 Merb2 有什么计划吗?

我们计划在下一年的时候发布若干个 1.x 的版本,在 1.x 版本中添加的新特性将会包含在 2.0 里面。当然我们不会释放一个包含所有新特性的臃肿的 2.0 版本,我们会本着敏捷开发的精神,增量地开发 1.x 版本,使开发者能够在 1.x 版本中熟悉 2.0 的特性。

Merb 2.0 的一个振奋人心的消息便是将会改进对快速原型的支持,并且从 Python 社区和其他编程语言吸取精华来持续改进构架,使得开发者能够利用 Merb 迅速开发和部署程序。我们计划提供更深层次与 JavaScript 的集成,以使得能够尽可能方便地安装诸如 jQuery 等库以及其相关的插件,CSS 和图片。

我们也计划深度改善 Merb 服务器,优化 Merb 应用的内存使用,减少 merb 进程簇的总开销,并且可能实现运行中 merb 进程簇的自由伸缩。

Merb 1.0 将会在几个星期内发布,它的网站有安装说明

查看英文原文:Merb 1.0 Coming Soon, RC1 Available Now

RubyWeb框架Ruby on Rails语言 & 开发