Slide 1

Slide 1 text

1 Rails 8.0 のマイルストーンから窺う Ruby on Rails が目指す未来 2024.04.30 @ Railsの伝統と革新をつなぐ各社の取り組み 株式会社ワンキャリア 山口拓弥

Slide 2

Slide 2 text

山口 拓弥(@yamat47) 名前・X 株式会社ワンキャリア 所属 Senior EM / PdM for ONE CAREER 役割 得意なこと Ruby on Rails / 開発プロセスの改善 Rails の実装でこだわっていること カスタムアクションは全く使いません 2


Slide 3

Slide 3 text

Copyright © ONE CAREER Inc. 3 人の数だけ、 キャリアをつくる。 ミッション

Slide 4

Slide 4 text

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)より。

Slide 5

Slide 5 text

Copyright © ONE CAREER Inc.
 今日の本題へ 5


Slide 6

Slide 6 text

https://github.com/rails/rails

Slide 7

Slide 7 text

https://rubyonrails.org/

Slide 8

Slide 8 text

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 の導入

Slide 9

Slide 9 text

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 の導入
 ① 様々なサービス構成に対応してきた ② よくある使われ方を標準でサポート (お断り:ここまでも、そしてこれからも個人の感想です)

Slide 10

Slide 10 text

https://world.hey.com/dhh/turbo-8-is-dropping-typescript-70165c01


Slide 11

Slide 11 text

https://github.com/hotwired/turbo/pull/971


Slide 12

Slide 12 text

Copyright © ONE CAREER Inc.
 12
 Rails はどこに向かっているのか? Rails を使うべき場面はいつなのか?

Slide 13

Slide 13 text

Copyright © ONE CAREER Inc.
 13
 Rails はどこに向かっているのか? Rails を使うべき場面はいつなのか?

Slide 14

Slide 14 text

https://github.com/rails/rails/milestone/87


Slide 15

Slide 15 text

https://railsnotes.xyz/blog/rails-8-whats-coming


Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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/

Slide 18

Slide 18 text

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 より引用(拡大加工済み)

Slide 19

Slide 19 text

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/

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

Copyright © ONE CAREER Inc.
 21
 Rails はどこに向かっているのか? Rails を使うべき場面はいつなのか?

Slide 22

Slide 22 text

Copyright © ONE CAREER Inc.
 22
 Rails はどこに向かっているのか? Rails を使うべき場面はいつなのか?

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

Copyright © ONE CAREER Inc.
 いつものやつ 24


Slide 25

Slide 25 text

Copyright © ONE CAREER Inc.
 25
 We are Hiring!!

Slide 26

Slide 26 text

Copyright © ONE CAREER Inc.
 X、EntranceBookで情報を発信中 🚀 興味のある方はぜひ! 26
 Copyright © ONE CAREER Inc. All Rights Reserved.

Slide 27

Slide 27 text

27 Rails 8.0 のマイルストーンから窺う Ruby on Rails が目指す未来 2024.04.30 @ Railsの伝統と革新をつなぐ各社の取り組み 株式会社ワンキャリア 山口拓弥