Slide 1

Slide 1 text

@hogelog 2024-10-15 Kaigi on Rails 2024 タイムテーブル解説会 なぜ Rack を理解すべきかプレトーク

Slide 2

Slide 2 text

なまえなど 2 - @hogelog (GitHub, Twitter X, 社, …) - 小室 直 (Komuro Sunao) - STORES 株式会社 ソフトウェアエンジニア

Slide 3

Slide 3 text

私とKaigi on Rails 3 - Kaigi on Rails 2022に登壇 - オンライン、事前収録 - むずかしかった!

Slide 4

Slide 4 text

私とKaigi on Rails 4 - Kaigi on Rails 2024ワークショップ登壇(登壇?) - Kaigi on Railsはじめてのワークショップ - おそらくまだ若干名の空きが……? (なかったらごめんなさい)

Slide 5

Slide 5 text

Rackとは

Slide 6

Slide 6 text

Rackとはなんですか 6 - RubyでHTTPアプリケーションを書くインターフェース - RackアプリケーションはHashを受け取り配列を返すだけ class HelloRack def call(env) # CGI-style environment [ 200, # status {"content-type" => "text/html" }, # headers ["Hello, Rack!" ], # body ] end end

Slide 7

Slide 7 text

Rackアプリケーションを動かすRackアプリケーションサーバ 7 class HelloRack def call(env) # CGI-style environment [ 200, # status {"content-type" => "text/html" }, # headers ["Hello, Rack!" ], # body ] end end

Slide 8

Slide 8 text

Rackアプリケーションを動かすRackアプリケーションサーバ 8 - Puma, Pitchfork, Unicorn, Thin, … class HelloRack def call(env) # CGI-style environment [ 200, # status {"content-type" => "text/html" }, # headers ["Hello, Rack!" ], # body ] end end run HelloRack .new

Slide 9

Slide 9 text

Rails on Rack 9 - RailsはRackアプリケーションを記述するフレームワーク - `Rails .application` がRackアプリケーション - Railsの多くはRackミドルウェアとして実装されている - `bin/rails middleware` require_relative "config/environment" run Rails .application Rails .application.load_server

Slide 10

Slide 10 text

よくあるRailsエンジニアの業務 10 - Rackアプリケーション: 書く - Rackミドルウェア: たまに書く - Rackサーバ: あまり書かない

Slide 11

Slide 11 text

Rackアプリケーションサーバを理解する 11 - Rackをアプリケーション、ミドルウェア、サーバまで 一通り実装してみてRackを理解してみよう! - というワークショップをします、よろしくおねがいし ます