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
400
なぜ 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
"複雑なデータ処理 × 静的サイト" を両立させる、楽をするRails運用 / A low-effort Rails workflow that combines “Complex Data Processing × Static Sites”
hogelog
3
3.4k
Javaアプリケーションの配布とパッケージング / Distribution and packaging of Java applications
hogelog
4
800
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
1.2k
ruby/irbへのコントリビュートと愉快な仲間たち / RubyKaigi 2024 Wrap Party
hogelog
0
210
RubyKaigi 2024 LT: Visualize the internal state of ruby processes in Real-Time
hogelog
0
250
Talk about CI and testing of the STORES
hogelog
2
570
小3の子がいるエンジニアの昔と今。
hogelog
0
1.5k
Kaigi_on_Rails_2022_Talk-hogelog.pdf
hogelog
6
1.6k
クックパッドインターンシップ 2018 API 編(前半)/ Cookpad internship 2018 Day 3: API
hogelog
0
9.7k
Other Decks in Technology
See All in Technology
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.6k
進化する大規模言語モデル評価: Swallowプロジェクトにおける実践と知見
chokkan
PRO
3
460
戦えるAIエージェントの作り方
iwiwi
22
11k
激動の2025年、Modern Data Stackの最新技術動向
sagara
0
690
re:Inventに行くまでにやっておきたいこと
nagisa53
0
1k
窓口業務を生成AIにおまかせ!Bedrock Agent Coreで実現する自治体AIエージェント!
rayofhopejp
0
160
Playwrightで始めるUI自動テスト入門
devops_vtj
0
140
AIエージェントは「使う」だけじゃなくて「作る」時代! 〜最新フレームワークで楽しく開発入門しよう〜
minorun365
PRO
3
400
LLM APIを2年間本番運用して苦労した話
ivry_presentationmaterials
10
7.8k
20251102 WordCamp Kansai 2025
chiilog
1
540
Spec Driven Development入門/spec_driven_development_for_learners
hanhan1978
1
630
AIで急増した生産「量」の荒波をCodeRabbitで乗りこなそう
moongift
PRO
0
460
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Context Engineering - Making Every Token Count
addyosmani
8
330
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Invisible Side of Design
smashingmag
302
51k
[RailsConf 2023] Rails as a piece of cake
palkan
57
6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Balancing Empowerment & Direction
lara
5
710
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Automating Front-end Workflow
addyosmani
1371
200k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Agile that works and the tools we love
rasmusluckow
331
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
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を理解してみよう! - というワークショップをします、よろしくおねがいし ます