1. tanaken on Rails
  2. #032: Rails 7.2.0 has been r..
2024-08-11 09:44

#032: Rails 7.2.0 has been released!

00:01
はい、こんにちは。第32回のtanaken on Railsです。
This Week in Railsの更新は今回はないんですけれども、
元となるalbionrails.orgのブログの方でリリースがありました通り、
Rails 7.2.0がリリースされました。
それに関しまして、Rails 7.2.0でどんな変更点があるのかというのがまとまったブログがありましたので、
そちらを今週は読んでいこうと思います。
大きく4つの観点でまとめられています。
1つ目が、より良い本番環境のデフォルト設定です。
Rails 7.2では、より効率的なアプリケーション開発、アプリケーション構築を行うために、
本番環境のデフォルト設定が改善されております。
Rails 7.2では、Ruby 3.3以降を使用している場合、YGITがデフォルトで有効になります。
YGITは、Ruby 3.1以降のCLubに搭載されているRubyのGITコンパイラー、Just-in-Timeコンパイラーです。
Railsアプリケーションにおいて、15%から25%の待機時間の改善を提供するなど、
パフォーマンスの大幅な向上が期待できるということでございます。
Pumaのデフォルトのスレッド数が、5から3に変更されています。
この変更は、スレッド数が多すぎる場合に、RubyがグローバルVMロック、このGVLというやつですね、
これを開放を待つ時間があると、スレッドが多すぎる場合はその時間があるので、それを短縮すると、
待機時間、リクエストオート時間も改善するために、スレッド数を5から3に変更していると。
これ結構、さまざまな本番相当の環境での実験というか、考察を踏まえて変更しているみたいですね。
あとは、デフォルトのDockerファイルには、メモリーアロケーターとして、Gemlockというのが使われるようになりました。
このGemlockは、高性能なメモリーアロケーターですね。
特に、大規模なシステムやマルチスレッド環境でのパフォーマンス向上を目指して設計されているものになります。
こういったような、YGITだったり、Pumaのスレッド数だったり、メモリーアロケーターだったりというのが変更されることで、
より良い本番環境のデフォルト設定として提供されていますということでございます。
03:02
続いて2つ目、アプリケーション向けの開発コンテナの構成ですね。
コンテナを使った開発というのが、基本的な考え方にデフォルトとして提供されるようになっているということですね。
Razor 7.2では、コンテナ構成のジェネレーターが追加されています。
このジェネレーターによって、.devcontainerというフォルダーが作られて、
その中にDockerファイル、Docker Compose YAML、devcontainer.jsonなどが生成されるようになっています。
このコンテナ構成には主に4つの点が含まれます。
1つ目は、K-Ledis、アクションケーブルなどのLedisコンテナ。
2つ目が、データベース、SQLite、Posgre、MySQL、MariaDBなどですね。
3つ目が、システムテスト用のスレッドレスクロームコンテナ。
システムテストで使うようなコンテナ。
4つ目が、ローカルディスクを使用するように構成された、プレビュー機能が動くアクティブストレージ。
この4つが主に含まれているということです。
新しいアプリケーションを開発コンテナで作る場合は、
rails-new-application-application-devcontainerという風にやると、コンテナが生成できると。
既存のアプリケーション向けには、rails-devcontainerというコマンドがあって、
これをやることでコンテナ構成のファイルたちを生成できるということですね。
詳細については、getting-started-with-devcontainersという、
Rail2Guideの記事があるので、そちらを参照してくださいということです。
続いて、Rail2Guideについては、
Rail2Guideのデザインが新しくなりました。
ガイドのデザインは、2009年以来ほとんど手をつけられていなかったということで、
その点についてのフィードバックの声も結構多かったみたいですね。
その点についてのフィードバックの声も結構多かったみたいですね。
その点についてのフィードバックの声も結構多かったみたいですね。
その点についてのフィードバックの声も結構多かったみたいですね。
今は2024年なので、15年ほどぶりに変わったと。
具体的には次のような変更点が反映されます。
クリーンでシンプルなデザイン。
ホームページと一貫性のあるフォント、配色、ロゴ。
更新されたアイコン。
シンプルになったナビゲーション。
スクロール時に書、チャプターのナビゲーションバーが固定されるというところで、
06:00
便利で見やすい一貫性のあるデザインになったということで、
ビフォーアフターの画像については、
レイルズガイドゲットでフェイスリフト、
レイルズガイズゲットフェイスリフトというブログがあるので、
そちらを見てくださいということでした。
最後4つ目。
その他にも改善点がたくさんありますよという紹介です。
その中でもいくつかピックアップされていますが、
1つ目がデフォルトでブラウザバージョンガードを追加しているということだったり、
Ruby 3.1が最小バージョンとして設定されたということで、
Ruby 3.0以下のものによる考慮をしなくても済むようになっているということですね。
Ruby 3.1以上使ってくださいねということになっています。
あとデフォルトでPWAファイルを追加していると。
またデフォルトでオマカセルボコップのルールを追加していると。
ルボコップレイルズオマカセというGitHubリポジトリがありますね。
続いて新しいアプリケーションのデフォルトでGitHub CIワークフローというのを追加していますよと。
GitHubでテストをしますよねと。
CIのYAMLファイルをGitHub Actionsでやりますよねと。
追加しています。
続いてブレーキマンもデフォルトで追加していますね。
ブレーキマン。ブレーキマンだ。ブレーキマンを壊しちゃいますね。
ブレーキマン。
これはセキュリティ的に怪しいような行動の実装を発見してくれるようなツールですよね。
ブレーキマンが追加されています。
続いてトランザクション周りでトランザクション内でのジョブのスケジューリングを防止するという話。
この話も田中オンレイルズでもピックアップ何とかしましたが、
ジョブのスケジューリングをトランザクション内でやらないようにするよということだったり、
トランザクションごとにコミットおよびロールバックに関してコールバックが追加されたということで、
コミットされたら○○するよとか、ロールバックされたら○○するよみたいなことができるようになったよと。
最後、ビンセットアップでPUMAデブの設定を提案するようになりましたということですかね。
とかいった多くの改善や新機能というのが含まれていますよということで、
詳しくはRails 7.2リリースノートの方をご覧くださいということでございます。
09:01
以上大きく4つのパートに分けてRails 7.2について紹介しました。
今後Rails 8系についての動きもありますよということで、
約半年内ぐらいにはRails 8系についてのリリースの動きも出てくるので、そちらも注目してくれというようなことも書いてありましたね。
こんなところで今週はRails 7.2まで2.0のリリースについてお話ししました。
こんなところで今週は終わりにしたいと思います。
ではまた来週。バイバイ。
09:44

Comments

Scroll