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 在线程数过高时等待全局虚拟机锁 (GVL) 释放的时间来提高延迟(请求响应时间)。

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

应用程序的开发容器配置

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

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

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

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

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

rails new myapp --devcontainer

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

rails devcontainer

有关更多信息,请参阅 Dev Containers 入门指南

Rails Guides 的新设计

Rails 7.0 于 2021 年 12 月发布时,带来了全新的首页和启动画面。然而,Guides 的设计自 2009 年以来基本未变(我们听到了您的反馈)。

随着目前所有工作的重点都放在消除 Rails 框架的复杂性,并使文档保持一致、清晰和最新,是时候着手改进 Guides 的设计,使其同样现代化、简洁和清新了。

我们与用户体验设计师 John Athayde 合作,将首页的外观和感觉应用到 Rails Guides 中,使其更加简洁、流畅和现代化。

布局将保持不变,但从今天起,您将在 Guides 中看到以下变化:

  • 更简洁、不那么杂乱的设计。
  • 字体、配色方案和 Logo 与首页更加一致。
  • 更新的图标。
  • 简化的导航。
  • 滚动时固定的“章节”导航栏。

请参阅 此公告博客文章以查看一些前后对比图

其他改进

Rails 7.2 还包括许多其他改进和新功能。以下是一些亮点:

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

请查看 Rails 7.2 发行说明以获取更多详细信息。

下一步是什么?

团队正在全力开发 Rails 8.0,我们计划于今年晚些时候发布,并期待在今年九月的 Rails World 上与社区互动并分享惊喜。