Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
なぜ Rack を理解すべきかプレトーク / Why should you understan...
Search
hogelog
October 15, 2024
Technology
0
360
なぜ Rack を理解すべきかプレトーク / Why should you understand Rack - Pre-talk
2024-10-15 Kaigi on Rails 2024 タイムテーブル解説会
hogelog
October 15, 2024
Tweet
Share
More Decks by hogelog
See All by hogelog
Javaアプリケーションの配布とパッケージング / Distribution and packaging of Java applications
hogelog
3
580
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
1.1k
ruby/irbへのコントリビュートと愉快な仲間たち / RubyKaigi 2024 Wrap Party
hogelog
0
200
RubyKaigi 2024 LT: Visualize the internal state of ruby processes in Real-Time
hogelog
0
230
Talk about CI and testing of the STORES
hogelog
2
550
小3の子がいるエンジニアの昔と今。
hogelog
0
1.5k
Kaigi_on_Rails_2022_Talk-hogelog.pdf
hogelog
6
1.5k
クックパッドインターンシップ 2018 API 編(前半)/ Cookpad internship 2018 Day 3: API
hogelog
0
9.6k
クックパッドの巨大 Rails アプリケーションの改善
hogelog
12
11k
Other Decks in Technology
See All in Technology
Model Mondays S2E02: Model Context Protocol
nitya
0
130
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
2
210
本部長の代わりに提案書レビュー! KDDI営業が毎日使うAIエージェント「A-BOSS」開発秘話
minorun365
PRO
14
2k
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
7
1.1k
AIエージェントの継続的改善のためオブザーバビリティ
pharma_x_tech
6
1.3k
TerraformをSaaSで使うとAzureの運用がこんなに楽ちん!HCP Terraformって何?
mnakabayashi
0
230
OCI Oracle Database Services新機能アップデート(2025/03-2025/05)
oracle4engineer
PRO
1
190
ObsidianをMCP連携させてみる
ttnyt8701
2
130
(非公式) AWS Summit Japan と 海浜幕張 の歩き方 2025年版
coosuke
PRO
1
300
Copilot Agentを普段使いしてわかった、バックエンド開発で使えるTips
ykagano
1
1.3k
Oracle Audit Vault and Database Firewall 20 概要
oracle4engineer
PRO
1
1.6k
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
24
8.9k
Featured
See All Featured
Docker and Python
trallard
44
3.4k
Adopting Sorbet at Scale
ufuk
77
9.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
We Have a Design System, Now What?
morganepeng
52
7.6k
Designing for Performance
lara
609
69k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
What's in a price? How to price your products and services
michaelherold
245
12k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Transcript
@hogelog 2024-10-15 Kaigi on Rails 2024 タイムテーブル解説会 なぜ Rack を理解すべきかプレトーク
なまえなど 2 - @hogelog (GitHub, Twitter X, 社, …) -
小室 直 (Komuro Sunao) - STORES 株式会社 ソフトウェアエンジニア
私とKaigi on Rails 3 - Kaigi on Rails 2022に登壇 -
オンライン、事前収録 - むずかしかった!
私とKaigi on Rails 4 - Kaigi on Rails 2024ワークショップ登壇(登壇?) -
Kaigi on Railsはじめてのワークショップ - おそらくまだ若干名の空きが……? (なかったらごめんなさい)
Rackとは
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
Rackアプリケーションを動かすRackアプリケーションサーバ 7 class HelloRack def call(env) # CGI-style environment [
200, # status {"content-type" => "text/html" }, # headers ["Hello, Rack!" ], # body ] end end
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
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
よくあるRailsエンジニアの業務 10 - Rackアプリケーション: 書く - Rackミドルウェア: たまに書く - Rackサーバ:
あまり書かない
Rackアプリケーションサーバを理解する 11 - Rackをアプリケーション、ミドルウェア、サーバまで 一通り実装してみてRackを理解してみよう! - というワークショップをします、よろしくおねがいし ます