2009 年 2 月 5 日,星期四

本周 Rails 3.0 动态

发布者 Mike Gunderloy

Rails 2.3 已进入发布候选阶段,部分开发工作正转向 Rails 3.0。随着这项活动的升温,是时候开始让大家了解 Rails 源代码 3.0 版本的发展动态了。我将继续发布独立的“本周 Edge Rails”信息,重点关注 Rails 2.3,以便您能清楚地了解哪些更改已准备就绪,哪些仍处于相对遥远的未来。

愿景

Rails 3 的愿景基于 12 月发布的公告:我们将把 Merb 的关键理念融入 Rails,包括:

  • 更模块化的 Rails 核心,因此您可以运行应用程序而无需完整的 Rails 堆栈
  • 性能优化
  • 框架的无关性,带有合理的默认值
  • 经过测试和记录的扩展API

Rails 3 有望在 Ruby Web 框架领域取得重大进展,同时仍为 Rails 2.x 和 Merb 1.x 提供迁移路径。

源代码

GitHub 上 Rails 主项目中的 Rails 3.0 分支是了解最新动态的最佳去处。


git clone git://github.com/rails/rails.git
git checkout 3-0-unstable

正如分支名称可能暗示的那样,这仍然是一个相当实验性的地方:您可能暂时不想将其用于生产应用程序。但是,这是经过测试的代码(并且它正在使用持续集成来保持这种状态),并且由于 Yehuda Katz、Joshua Peek 等人的努力,它已经包含了与 Rails 2.x 相比的重大更改。到目前为止,这些更改侧重于清理和改进 Rails 内部,而不是添加新功能。

Action Dispatch

Action Dispatch 是一个新的 Rails 组件,它与 Action Controller 和 Action View 一起存在于 Action Pack 中。Action Dispatch 负责分发请求所涉及的所有处理:请求和响应处理、HTTP 状态码、文件上传、URL 和参数解析、会话存储等。

Action View 重组

Action View 内部发生了重大变化。总体目标是清理多年来积累的许多特殊情况和附加钩子,并让所有调用 Action View 的方都使用一个统一的入口点。代码清理与 Action View 源代码的一些重新排列相结合,使其更容易找到功能模块。这是一项重要的工作;如果您有兴趣深入了解重构的详细信息,可以在Yehuda 的博客上阅读。

回调优化

一种新的回调处理方法消除了在运行时遍历回调列表的需要,并提供了该代码区域的显着速度提升。尽管这只是一个微优化,本身可能效果不大,但希望通过仔细优化尽可能多的热点,我们可以获得页面创建和交付速度的可见整体提升——这毕竟是 Web 框架的目的。

下一步是什么?

显然,从我们今天的状态到 Rails 3.0 的愿景还有很长的路要走。我们很幸运有一支优秀的团队的核心程序员投入大量时间来完成这段旅程。临时目标仍然是在 5 月份的 RailsConf 之前发布 Rails 3.0 的 beta 版本。您可以通过与早期版本的 Rails 相同的方式提供帮助:下载源代码,开始在您的应用程序上进行测试,并将您自己的想法和补丁提交到Rails Lighthouse。多年来,Rails 一直是数千名开发人员的共同努力,Rails 3.0 在这方面也不会有任何不同。