2009 年 2 月 5 日,星期四

本周动态 3.0

发布人:迈克·冈德洛伊

现在,Rails 2.3 已进入发布候选阶段,有些人力的开发会转向 Rails 3.0。随着该活动的升温,是时候开始让你们了解 Rails 源代码的 3.0 版本的动态了。我仍然会发布独立的“此周动态之外部版本”信息,重点关注 Rails 2.3,这样你就可以明确现在可以更新哪些更改,哪些更改还在比较遥远的未来。

愿景

12 月份发布的 公告中基于 Rails 3 的愿景:我们正在将 Merb 的一些主要概念引入 Rails,包括

  • 更加模块化的 Rails 核心,因此你可以使用低于整个 Rails 堆栈来运行应用程序
  • 性能优化
  • 具有明确默认设置的框架不可知论
  • 测试和记录的 API 用于扩展

Rails 3 承诺大幅推进 Ruby Web 框架的最新进展,但同时还提供从 Rails 2。x 和 Merb 1。× 的迁移路径。

源代码

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 Pack 中(与 Action Controller 和 Action View 结合在一起)。Action Dispatch 负责与分发请求有关的所有处理:请求和响应处理、HTTP 状态代码、文件上传、URL 和参数解析、会话存储,等等。

Action View 重构

Action View 内部有很大的变化。总体目标是清理多年来建立过的一堆特殊案例和额外的钩子,并使所有对 Action View 的调用者使用单个统一的入口点。代码清理与 Action View 源代码的一些重新排列结合在一起,以便更容易找到功能位。这是一项重大的努力;如果你有兴趣详细了解重构,可以在 Yehuda 的博客 上阅读。

回调优化

一种处理回调的新方法消除了对运行时迭代回调列表的需要,并极大地提高了这段代码的执行速度。虽然这是一种可能会对其本身产生微小优化效果的微优化,但我们的希望是:通过尽可能小心地优化尽可能多的热点,我们能够在页面创建和交付方面获得明显的整体加速——即 web 框架的重点所在。

下一步是什么?

很明显,从我们今天所取得的成果和 Rails 3.0 的愿景之间还存在很大的差距。我们非常幸运地拥有一支卓越的核心编程团队,他们投入了大量时间来实现这一目标。过渡期间的目标仍然是在五月的 RailsConf 之前推出 Rails 3.0 的 beta 版。你可以通过和早期的 Rails 版本相同的方式提供帮助:下载源代码,开始在你的应用程序中对其进行测试,并将你自己的创意和补丁提交给 Rails Lighthouse。多年来,Rails 一直是数千名开发人员共同努力的成果,而 Rails 3.0 也不会在此方面有所不同。