5月30日、Ruby on Railsの最新バージョン7.2 Beta 1がリリースされた。

image.png
この記事では、Rails 7.2の新機能や改善点について詳しく紹介する。
改善されたプロダクションデフォルト設定
YJITのデフォルト有効化:
RubyのJITコンパイラであるYJITが、Rails 7.2ではデフォルトで有効化されている。これにより、レイテンシが15-25%改善される。$ rails new myapp --ref=yjit
Pumaのスレッド数変更:
デフォルトのスレッド数が5から3に変更され、リクエスト応答時間が改善される。jemallocの導入:
デフォルトのDockerfileにjemallocが追加され、メモリアロケーションが最適化される。
開発コンテナの設定
Rails 7.2では、開発環境をフル機能で提供するための開発コンテナの設定を生成できるようになった。この設定には、.devcontainer
フォルダにDockerfile、docker-compose.yml、およびdevcontainer.jsonファイルが含まれている。
デフォルトで含まれるものは以下の通りだ。
- Redisコンテナ
- データベース(SQLite、Postgres、MySQL、MariaDB)
- ヘッドレスChromeコンテナ
- ローカルディスクを使用するActive Storage
新しいアプリケーションでの使用例:
$ rails new myapp --devcontainer
Railsガイドの新デザイン
Railsガイドのデザインが一新され、以下の変更が加えられた。
- クリーンでわかりやすいデザイン
- ホームページと一貫性のあるフォント、カラースキーム、ロゴ
- 更新されたアイコン
- ナビゲーションの簡素化
- スクロール時の「Chapters」ナビバーの固定
その他の改善点
Rails 7.2には他にも多くの改善点と新機能が含まれている。以下にいくつかのハイライトを示す。
- ブラウザバージョンガードの追加
- Ruby 3.1を新しい最低バージョンに設定
- デフォルトのPWAファイルの追加
- デフォルトのRuboCopルールの追加
- 新しいアプリケーションにデフォルトでGitHub CIワークフローを追加
- デフォルトでBrakemanを追加
- トランザクション内のジョブスケジュールの防止
- トランザクションごとのコミットとロールバックのコールバック
bin/setup
でpuma-dev設定の提案
詳細はRails 7.2 Beta 1: Better production defaults, Dev containers, new guides design, and more!を参照していただきたい。