2024 年 8 月 10 日,星期六

Rails 7.2:更佳的生产环境默认配置、开发容器、新版指南设计等!

作者:rafaelfranca

我们很高兴宣布 Rails 7.2 正式发布!自 Rails 7.1 以来,近 2500 次提交,由 超过 400 位贡献者 完成,因此此版本包含众多新功能和改进。

更佳的生产环境默认配置

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 在线程数过高时等待 Global VM Lock (GVL) 释放的时间来提高延迟(请求响应时间)。

此外,Rails 生成的默认 Dockerfile 现在包含 jemalloc 来优化内存分配

应用程序的开发容器配置

开发容器(简称开发容器)允许您使用容器作为功能齐全的开发环境。

Rails 7.2 添加了为您的应用程序生成开发容器配置的功能。此配置包括一个包含 .devcontainer 文件夹,其中包含 Dockerfiledocker-compose.yml 文件和 devcontainer.json 文件。

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

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

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

rails new myapp --devcontainer

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

rails devcontainer

有关更多信息,请参阅 开发容器入门指南。

Rails 指南的新设计

当 Rails 7.0 于 2021 年 12 月发布时,它带来了一个全新的首页和新的启动画面。但是,指南的设计自 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 发布说明以获取更多详细信息。

下一步是什么?

该团队已经开始着手开发 Rails 8.0,我们计划在今年晚些时候发布,并且我们期待与社区互动,并在今年 9 月的 Rails World 上分享成果。