星期三, 2014 年 8 月 20 日

Rails 4.2.0 beta1:Active Job、Deliver Later、Adequate Record、网络控制台

发布人: dhh

对于在其第二个十年里发布的第一个主要新版本 Rails,我们正在进行最后的润色。虽然大多数软件在运行十年后都会进入退休之家,但 Rails 前所未有的健壮,该版本包含许多让工作更容易、应用程序更快的优点,并让整体体验更棒。

Active Job、ActionMailer #deliver_later

Rails 4.2 的头条功能是全新 Active Job 框架及其集成。Active Job 是一个适配器层,位于 ResqueDelayed JobSidekiq 等队列系统之上,以及 更多队列系统之上。你可以为 Active Job 编写作业,它们将在所有这些队列上运行,且无需进行任何更改。

使用一个始终配置的队列(虽然默认只是一个 内联运行器),我们可以在有意义的地方以此为基础进行构建。而有意义的第一步是异步发送 Action Mailer 电子邮件。所以我们要引入 #deliver_later 方法,该方法将执行操作:将你的电子邮件作为作业添加到一个队列以待发送,这样你就不必拖累控制器或模型。瞧!

最棒的是我们的新 GlobalID 库。通过以通用形式对 Active Record 对象进行序列化,它让你能轻松地将这些对象传递给作业。这意味着不再需要通过 ids 手动打包和解压 Active Record 对象。只需将直接 AR 对象提供给作业,它便会使用 GlobalID 对其进行序列化,并在运行时对其进行反序列化。轻松得多!

特别感谢 Cristian BicaAbdelkader Boudih 为 Rails 带来了这三个重大改进的出色工作!

Adequate Record

Aaron Patterson 一直在为 Rails 中的性能悬赏单而奔波,通过为 Active Record 带来名为 Adequate Record 的一个改进项目,他做得很棒。很多通用查询的速度现在都比 Rails 4.2 至少提升了一倍!这是性能方面的一次重大飞跃。虽然计算机的价格不断走低,性能不断提升,但没有人反对“嘿,把我的框架里多余的速度给我”。所以给你:一些多余的速度,哥们!

网络控制台

来自 Google Summer of Code 为 Rails 举办的精彩活动,诞生了 Web 控制台。它是一个可在浏览器中使用的 IRB 控制台。在开发模式下,您可以转到 /console 并直接开展工作。

这一点很不错,但是这款控制台真正变态地好用之处在于,它会自动用在所有例外页面上!因此,当出现问题时,您现在能立即检查情况。它甚至允许您在回溯中的不同点之间进行跳转,让您能够直接检查该点的情况。

这是调试工作流程的一项极大改进。感谢 Genadi SamokovarovRyan Dao 对此项目作出的贡献。

其他一切内容

Rails 4.2 的所有其他精彩内容的精彩摘要

  • 在计算用于缓存的 etag 时,现在会自动包含模板摘要。因此,当模板更改时,缓存会被清除。
  • respond_with 已移出并进入其自己的宿主,即 responders gem。
  • 支持真正的外键!迁移中现在已提供 add_foreign_key/remove_foreign_key
  • 大量错误修复和对活动记录的少量改进。
  • 为在 config/environments/*config/application.rb 和 initializers 中自定义配置您的应用而添加 config.x.whatever.you_want = true
  • 已添加 Rails::Application.config_for(:some_yaml) 以简便地加载存储在 config/ 中的 YAML 配置。

我们也在编写一组 初步发行说明

维护后果和 Rails 5.0!

根据我们的 维护政策,Rails 4.2 的发行意味着错误修复仅适用于 4-2-stable,常规安全问题适用于 4.2.x 和 4.1.x,严重的安全性问题才适用于 4.2.x、4.1.x 和 3.2.x。除了这些已陈述的承诺外,高贵的 Rafael França 还同意将错误修复应用于 4-1-stable。因此,所有仍然处在 4.1 且无法快速移动的人都可以感谢 Rafael!

Rails 4.2 也将标志着 4.x 系列中最后一个大型发行版。在发布之后,我们将努力实现更大型的 Rails 5.0!这意味着一旦 4.2 的候选版本开始发布并且创建了 4-2-stable,rails/master 就会将其定为目标。

Rails 5.0 极有可能针对 Ruby 2.2。Ruby 2.2 中还包含大量优化,这些优化非常棒,但对于 Rails 而言,最重要的莫过于符号将被垃圾回收。这意味着当我们接受来自外部世界的输入时,可以大大减少与处理字符串有关的负担。这也意味着我们可以完全转换为关键字参数,以及来自最新 Ruby 的所有其他好东西。

Rails 5.0 的发布目标目前是 2015 年的春季/夏季。所以还有一些时间,但我们公布这个消息是为了让人们知道,以便 gem 维护人员和其他的 Ruby 实现知道我们的目标是什么。

请帮助我们巩固 Rails 4.2!

我们依赖于社区中每个人的反馈,以解决问题并在此类大型发布前升级问题。所以请尝试在您的应用上使用 Rails 4.2,如果您今天开始一个新应用,您应该可能使用 beta1,如果您对 Rails 有一点了解的话。

可以在 Github 问题追踪系统 中记录问题。

已经 有 476 个人 为此新版的 Rails 做出过贡献。请成为他们中的一员!