6 ポイント 投稿者 GN⁺ 2024-10-08 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-10-08
Hacker Newsの意見
  • RubyとRailsは最近、復興期を迎えている

    • Programming Ruby が今年、Ruby 3.3 を扱う新版として出版された
    • The Rails Way は Rails 8 に合わせて更新中で、2冊の関連書籍が出る予定
    • PragProg では Rails Scales という新しい本がアーリーリリース中
    • YJIT のおかげで Ruby は非常に高速になった
    • Rails には「中間段階」の成功に向けた新機能が追加されている
    • Ruby には Data(不変 Struct)、パターンマッチング、Fibers、Ractors などの新機能が追加された
    • 2013年以降 Ruby から離れていたが、再び戻る可能性に興味を感じている
  • Ruby の最大の問題は依然としてドキュメントである

    • 公式ドキュメントサイトには古い書籍と API ドキュメントが混在している
    • 言語機能が API の下に並べられていて分かりにくい
    • Python のドキュメントと比べると、体系的な目次が不足している
  • Rails とマイクロサービスベースのアーキテクチャを使うプロジェクトで働いている

    • モノリシックアーキテクチャを避けるべきというトレンドはあるが、Rails が提供する中核的な価値を高く評価している
    • Rails チームが継続的に価値を加え、改善している点が好きだ
  • Rails は新しい Web プロジェクトにおいて生産性と安定性を提供するフレームワークである

    • 新しいメジャーバージョンへの更新も、既存アプリに大きな変更なく行える
  • 10〜15年前に Node.js ではなく Ruby/RoR を選んでいればよかったと、ときどき思う

  • Rails は使っていないが、Solid Adapters はすばらしく見える

    • 単一データベースでかなり長く十分に運用できる
    • キャッシュ、pub/sub、全文検索などで最良のソリューションを使うことは、運用の複雑さを増してしまう
  • 主に Go 開発者だが、Rails 7 が出たときに趣味プロジェクトで使い始めた

    • 複雑なフロントエンドツールなしで Dokku にデプロイするのが楽しい
  • Rails を何度か試したが、Node のほうが理解しやすかった

    • シンプルさを求めており、Rails はそれではない
  • 20年の経験を持つ Rails 開発者で、フルタイムの仕事を探している

    • GitHub ハンドルは同じ
  • 2008年から RoR を使っており、今でも強力で柔軟なフレームワークである

    • 大きなアプリを素早く一人で構築できる
    • デプロイ改善に期待しており、Kamal v1 の代わりに Dokku を使っている
    • Kamal 2 に期待している