Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rails 8.0 のマイルストーンから窺う Ruby on Rails が目指す未来/The...

Rails 8.0 のマイルストーンから窺う Ruby on Rails が目指す未来/The future of Ruby on Rails as seen from the milestones of Rails 8.0

シニアエンジニアリングマネージャーの山口が「Railsの伝統と革新をつなぐ各社の取り組み」でLTをした際の資料となります。

イベントURL:
https://sansan.connpass.com/event/315821/

ワンキャリアTech

May 09, 2024
Tweet

More Decks by ワンキャリアTech

Transcript

  1. 1 Rails 8.0 のマイルストーンから窺う Ruby on Rails が目指す未来 2024.04.30 @

    Railsの伝統と革新をつなぐ各社の取り組み 株式会社ワンキャリア 山口拓弥
  2. 山口 拓弥(@yamat47) 名前・X 株式会社ワンキャリア 所属 Senior EM / PdM for

    ONE CAREER 役割 得意なこと Ruby on Rails / 開発プロセスの改善 Rails の実装でこだわっていること カスタムアクションは全く使いません 2

  3. Copyright © ONE CAREER Inc. これまで可視化されていなかった「キャリアデータ」を活用し、就職・採用の意 思決定をサポート サービスと開発の歴史 人事向け採用クラウド HRアワード2020

    人材採用・雇用部門1 最優秀賞 中途採用メディア 以上 4000件 転職体験談 社員クチコミ 2万件 以上 新卒採用メディア 学生の利用率/ 使いやすさ2 1位 学生が最も 利用した 就職サイト3 2位 1. 日本の人事部「HRアワード2020」にてプロフェッショナル部門(人材採用・雇用部門)で最優秀賞を受賞。 2. NewsPicks発表「【図解】20サービスを徹底比較。本当に役立つ「就活サイト」一覧より。 3. ProFuture株式会社/HR総研「HR総研×楽天みん就:2022年卒学生の就職活動動向調(6月)結果報告【就職活動編】」(https://www.hrpro.co.jp/research_detail.php?r_no=311)より。
  4. Copyright © ONE CAREER Inc.
 8
 Rails 8.0 のマイルストーンから窺うRuby on

    Rails が目指す未来 Ruby on Rails におけるここ最近の主要な変更 Rails 7.0
 JavaScript 環境の刷新(import maps / Stimulus / Hotwire / CSS Bundling) 非同期に SQL クエリを実行できる IF の導入 Rails 6.0
 Action Text / Action Mailbox の追加 複数データベースへの接続のサポート 新たなオートローダー Zeitwerk の導入 Rails 5.1 … Webpack / React / npm / Yarn のサポート Rails 5.2 … Active Storage の追加 Rails 5.0
 JSON API サーバー用の軽量な起動方法の追加 Action Cable の追加 Finder のメソッドに #or や #left_outer_ joins を追加 Rails 7.1 … 複合プライマリーキーのサポート Rails 6.1 … ActiveModel::Error オブジェクトの導入 Rails 4.2 … Active Job の追加 Rails 4.1 … プリローダー Spring の導入
  5. Copyright © ONE CAREER Inc.
 9
 Rails 8.0 のマイルストーンから窺う Ruby

    on Rails が目指す未来
 Ruby on Rails におけるここ最近の主要な変更 
 Rails 7.0
 JavaScript 環境の刷新(import maps / Stimulus / Hotwire / CSS Bundling)
 非同期に SQL クエリを実行できる IF の導入
 Rails 6.0
 Action Text / Action Mailbox の追加
 複数データベースへの接続のサポート
 新たなオートローダー Zeitwerk の導入
 Rails 5.1 … Webpack / React / npm / Yarn のサポート
 Rails 5.2 … Active Storage の追加
 Rails 5.0
 JSON API サーバー用の軽量な起動方法の追加
 Action Cable の追加
 Finder のメソッドに #or や #left_outer_joins を追加
 Rails 7.1 … 複合プライマリーキーのサポート
 Rails 6.1 … ActiveModel::Error オブジェクトの導入
 Rails 4.2 … Active Job の追加
 Rails 4.1 … プリローダー Spring の導入
 ① 様々なサービス構成に対応してきた ② よくある使われ方を標準でサポート (お断り:ここまでも、そしてこれからも個人の感想です)
  6. 1
 Copyright © ONE CAREER Inc.
 2
 3
 16
 Rails

    8.0 のマイルストーンから窺うRuby on Rails が目指す未来 Rails 8.0 における主要なリリースと主な狙い ミドルウェアの 依存関係の整理 Hotwire 中心の フロントエンド 開発・運用環境の レール敷設 • Solid Cache / Solid Queue のデフォルト化 • Redis に依存せずともハイパフォーマンスなサーバー処理を 実現できるようにする • Propshaft のデフォルト化 = “No Build” の推進 • CSS Bundling は二番手の選択肢に • リッチな UI の構築は Hotwire(Turbo 8)に移譲 • デプロイツール Kamal の登場 • RuboCop / Brakeman / Devcontainer / Structured Logging / LSP / Built-in Benchmark tool / … etc.
  7. Copyright © ONE CAREER Inc.
 Rails 8.0 のマイルストーンから窺うRuby on Rails

    が目指す未来 Ruby on Rails において、Memcached や Redis が果たしていた 役割は主にこちら: • 非同期処理のキューの保持 • サーバー処理で利用するキャッシュ機構 • Action Cable(WebSocket) すでに Solid Cache や Solid Queue は公開されており、Rails 8.0 ではこれらがデフォルトで選択されるようになる。 依存するミドルウェアを減らし、開発初期のシンプルな構成を 保ったままプロダクトをスケールできるようにしていきそう。 1. ミドルウェアの依存関係の整理 17
 Redis が果たしていた役割をデータベースに任せられるように https://dev.37signals.com/introducing-solid-queue/
  8. Copyright © ONE CAREER Inc.
 Rails 8.0 のマイルストーンから窺うRuby on Rails

    が目指す未来 2. Hotwire 中心のフロントエンド 18
 Propshaft のデフォルト化で No Build な流れがさらに加速する Propshaft … Sprockets に代わるアセットパイプラインツール。 • Webpack などのようにアセットを一つのファイルにバンド リングせず、そのままの内容で配信する。 • 「ダイジェストの付与」「基礎的なコンパイル処理」 「ファイルパスの設定」といった機能だけを持つ。 importmap-rails と組み合わせて、手元で書いた JavaScript / CSS をそのままサーバーから配信する形がデファクトになってい く。 この構成を取りつつ、Hotwire シリーズ(主には Turbo)を駆使 してリッチな UI を作っていく形を主にサポートしていきそう。 https://world.hey.com/dhh/you-can-t-get-faster-than-no-build- 7a44131c より引用(拡大加工済み)
  9. Copyright © ONE CAREER Inc.
 Rails 8.0 のマイルストーンから窺うRuby on Rails

    が目指す未来 3. 開発・運用環境のレール敷設 19
 「開発初期のスピード・質」をさらに高める動きが加速 • デプロイツール Kamal の自動セットアップ • Basic 認証 / 構造化ログ / ブラウザ判定 / レートリミット • Rails 向けの LSP(Ruby LSP の拡張) • Devcontainer / PWA の自動設定 • GitHub Actions の設定ファイルの自動生成 • RuboCop / Brakeman の自動設定 といった「開発初期に一度だけ実装すればいい処理」がフレーム ワークによってサポートされるようになる。 特に CI / CD に関する整備はこれまであまりされてこなかった改 善であり、今後もこの領域に対する支援が強化されていきそう。 https://kamal-deploy.org/
  10. 1
 Copyright © ONE CAREER Inc.
 2
 3
 20
 Rails

    8.0 のマイルストーンから窺うRuby on Rails が目指す未来 Rails 8.0 における主要なリリースと主な狙い ミドルウェアの 依存関係の整理 Hotwire 中心の フロントエンド 開発・運用環境の レール敷設 依存するミドルウェアを減らし、開発初期のシンプルな構成を保った ままプロダクトをスケールできるようにしていきそう。 この構成を取りつつ、Hotwire シリーズ(主には Turbo)を駆使して リッチな UI を作っていく形を主にサポートしていきそう。 特に CI / CD に関する整備はこれまであまりされてこなかった改善で あり、今後もこの領域に対する支援が強化されていきそう。
  11. 1
 Copyright © ONE CAREER Inc.
 2
 3
 23
 Rails

    8.0 のマイルストーンから窺うRuby on Rails が目指す未来 Rails 8.0 における主要なリリースと主な狙い ミドルウェアの 依存関係の整理 Hotwire 中心の フロントエンド 開発・運用環境の レール敷設 依存するミドルウェアを減らし、開発初期のシンプルな構成を保った ままプロダクトをスケールできるようにしていきそう。 この構成を取りつつ、Hotwire シリーズ(主には Turbo)を駆使して リッチな UI を作っていく形を主にサポートしていきそう。 特に CI / CD に関する整備はこれまであまりされてこなかった改善で あり、今後もこの領域に対する支援が強化されていきそう。
  12. 27 Rails 8.0 のマイルストーンから窺う Ruby on Rails が目指す未来 2024.04.30 @

    Railsの伝統と革新をつなぐ各社の取り組み 株式会社ワンキャリア 山口拓弥