2024 年 5 月 29 日,星期三

Rails 7.2 Beta 1:更好的生产默认值、开发容器、新的指导设计及更多!

由 rafaelfranca 发布

Rails 7.2 版本发布列车即将出发,我们很高兴宣布 Rails 7.2 的第一个 Beta 版本!自 Rails 7.1 以来,已提交近 2,500 次,由 400 多位贡献者完成,所以此版本包含众多新功能和改进。

请帮助我们测试所有这些新内容,以便我们确保 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 容器。
  • 配置为使用本地磁盘并具有正常运行的预览功能的主动存储。

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

rails new myapp --devcontainer

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

rails devcontainer

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

针对 Rails 指南的新设计

在 2001 年 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 发行说明,了解更多详细信息。

总结

Rails 7.2 的最终版本预计将在几周内发布。在此期间,请尝试 Rails 7.2.0.beta1,并告诉我们您的想法