2024 年 8 月 6 日(星期二)

7.2 版候选版 1:更佳的生产默认设置、开发者容器、新指南设计等等!

作者:rafaelfranca

Rails 7.2 即将迎来最终版本。今天,我们很高兴宣布 Rails 7.2.0 的第一个候选版。

如果没有问题报告,我们将在 2024 年 8 月 9 日(星期五)发布最终的 7.2.0 版。

请帮助我们测试所有这些新内容,并告诉我们您的想法,以便我们确保 Rails 7.2 的最终版本坚如磐石。

以下是对 Rails 7.2 中一些新功能和改进的总结。

更好的生产默认设置

Rails 7.2 配备了更好的生产默认设置,以帮助您构建更高效的应用程序。

从 YJIT 开始。YJIT 是 Ruby 的 JIT 编译器,自 Ruby 3.1 开始在 CRuby 中推出。它可以为 Rails 应用程序提供显著的性能提升,提供 15-25% 的延迟改善。

在 Rails 7.2 中,如果您运行 Ruby 3.3 或更新版本,则 YJIT 会默认启用

经过仔细考虑、调查以及基于在生产中运行的应用程序的实战经验,我们决定将Puma 中的默认线程数从 5 更改为 3。此更改旨在通过减少 Ruby 在线程数过高时等待全局 VM 锁 (GVL) 释放而花费的时间来改善延迟(请求响应时间)。

Rails 生成的默认 Dockerfile 现在包括jemalloc 以优化内存分配

开发容器配置应用

开发容器(或简称开发容器)允许您将容器作为全面开发环境使用。

Rails 7.2 添加了为您的应用程序生成开发容器配置的能力。此配置包括一个包含 .devcontainer 文件夹的 Dockerfile,一个 docker-compose.yml 文件,以及一个 devcontainer.json 文件。

默认情况下,开发容器包含以下内容:

  • 用于 Kredis、Action Cable 等的 Redis 容器
  • 数据库(SQLite、Postgres、MySQL 或 MariaDB)
  • 用于系统测试的无头 Chrome 容器
  • 配置为使用本地磁盘并启用预览功能的 Active Storage

要生成带有开发容器的新应用程序,您可以运行

rails new myapp --devcontainer

对于现有应用程序,现在可以使用 devcontainer 命令

rails devcontainer

有关更多信息,请参阅开始使用开发容器指南。

Rails 指南的新设计

2021 年 12 月,Rails 7.0 发布时,它带来了一个新主页和一个新启动屏幕。不过,指南的设计自 2009 年以来一直基本保持不变——这个情况引起了大家的关注(我们听到了大家的反馈)。

目前正在开展移除 Rails 框架的复杂性、让文档保持一致、明确和最新的工作,因此现在是时候解决指南的设计并使其同样现代、简单和新鲜了。

我们与 UX 设计师 John Athayde 合作,采用了主页的外观和感觉,将其移植到了 Rails 指南,使其变得干净、简洁和最新。

布局将保持不变,但从今天开始,您将在指南中看到反映的以下更改

  • 更干净、更简洁的设计。
  • 字体、配色方案和徽标与主页更加一致。
  • 更新的图标。
  • 简化的导航。
  • 滚动时固定的“章节”导航栏。

查看 公告博文,了解一些前后图像

其他改进

Rails 7.2 还包含许多其他改进和新功能。以下是几个亮点

  • 默认添加浏览器版本保护。
  • 将 Ruby 3.1 设为新最低版本。
  • 默认渐进式 Web 应用程序 (PWA) 文件。
  • 默认添加 omakase RuboCop 规则。
  • 默认添加 GitHub CI 工作流到新应用程序。
  • 默认添加 Brakeman 到新应用程序。
  • 防止在事务中安排作业。
  • 每次事务提交和回滚回调。
  • 建议在 bin/setup 中使用 puma-dev 配置。

有关更多详细信息,请查看 Rails 7.2 发行说明