- Ruby on Rails 8の最初のベータ版が正式にリリース
- このバージョンはRails 7.2をベースに、新機能と最適化を導入し、Rails開発をさらに生産的で楽しいものにする
- 主なハイライト
- Kamal 2との統合
- 新しいデフォルトのアセットパイプラインとしてPropshaftを導入
- ActiveRecordの広範な改善を含む
- SQLite統合のアップグレードにより、本番利用に適した選択肢に
Kamal 2とThrusterによる簡単なデプロイ
- Kamal 2とThrusterにより、アプリケーションのデプロイを簡単にする
- Kamal 2は、クラウドVM、ベアメタルサーバー、またはVPS環境にすばやく簡単にデプロイできるようにし、マネージドクラウドサービスやPaaSプラットフォームへの依存を減らす。
kamal setup コマンドひとつで、標準的なLinuxボックスに本番対応のRails環境をセットアップできる。
- さらにThrusterと統合することで、ダウンタイムなしのデプロイ、HTTP/2対応、Let's Encryptによる自動SSL、Gzip圧縮、単一サーバーでの複数アプリの容易なホスティングが可能。
Solid Adaptersによる簡素化されたRailsデプロイ
- Rails 8の主な改善点の1つは、一般的なWebアプリケーション要件を実装するために必要な追加サービスの数を減らし、デプロイを簡素化したこと。
- SQLiteだけで、Solid Cable、Solid Cache、Solid Queueという3つの新しいデータベースベースのアダプターを通じて、ジョブキュー、キャッシュ、pub/subメッセージングを処理できる。
本番対応になったSQLite
- SQLiteを軽量な開発ツールから、本番利用に適した信頼できる選択肢へと進化させる。
- SQLiteアダプターとRubyドライバーに対する広範な取り組みにより、SQLiteはAction Cable、Rails.cache、Active Jobを効果的にサポートできるようになった。
Propshaftによる新しいアセットパイプライン時代
- Propshaftを新しいアセットパイプラインのデフォルトとして導入し、長年使われてきたSprocketsシステムを置き換える。
- Propshaftは、現代の開発者の中核的なニーズに合わせてアセットを管理する、シンプルでモダンなアプローチを反映している。
より簡単になった組み込み認証
- データベースベースのセッションとパスワードリセット機能を備えた認証システムを、簡単にセットアップできるコマンドを提供する。
- このコマンドは、モデル、コントローラー、メーラー、ビューなどの主要ファイルを生成し、安全で本番対応の認証をすばやく構築できるようにする。
新しいスクリプトフォルダーとジェネレーター
- データマイグレーション、クリーンアップ作業、その他のユーティリティ作業のような、単発または汎用目的のスクリプトを保管できる新しい
script フォルダーを導入。
- 新しいスクリプトジェネレーターにより、スクリプトを簡単に作成して実行できる。
さまざまなActive Record改善
- パフォーマンス向上、マイグレーションの簡素化、トラブルシューティング改善、複雑なデータベース利用ケースへの対応を実現するため、Active Recordに重要な改善を導入。
GN⁺のまとめ
- Rails 8は、開発者の生産性を高め、現代的なベストプラクティスに沿ったさまざまな更新を導入し、インフラの複雑さへの対処ではなくアプリケーション構築に集中できるようにする
- KamalとThrusterによる簡単なデプロイ、Propshaftによるモダンなアセット管理、SQLiteの本番対応機能などがRails 8の主な利点
1件のコメント
Hacker Newsの意見
RubyとRailsは最近、復興期を迎えている
Ruby の最大の問題は依然としてドキュメントである
Rails とマイクロサービスベースのアーキテクチャを使うプロジェクトで働いている
Rails は新しい Web プロジェクトにおいて生産性と安定性を提供するフレームワークである
10〜15年前に Node.js ではなく Ruby/RoR を選んでいればよかったと、ときどき思う
Rails は使っていないが、Solid Adapters はすばらしく見える
主に Go 開発者だが、Rails 7 が出たときに趣味プロジェクトで使い始めた
Rails を何度か試したが、Node のほうが理解しやすかった
20年の経験を持つ Rails 開発者で、フルタイムの仕事を探している
2008年から RoR を使っており、今でも強力で柔軟なフレームワークである