Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
[Roppongi.rb#31]Roda紹介
Search
Hoang Duc Quan
June 12, 2025
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[Roppongi.rb#31]Roda紹介
Hoang Duc Quan
June 12, 2025
More Decks by Hoang Duc Quan
See All by Hoang Duc Quan
[Roppongi.rb#38] RubyによるStrategyパターンの実践
blazingrockstorm
0
59
[SaigonRB#20] Clean code in Ruby
blazingrockstorm
0
41
[SaigonRB#21] Ruby Silver & Ruby Gold
blazingrockstorm
0
49
[Roppongi.rb#28] Sentiment-aIというgemを作りました
blazingrockstorm
0
190
Other Decks in Programming
See All in Programming
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
33k
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
270
JIS keyboard support in Omarchy
lef237
0
140
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
0
130
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
900
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.6k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
790
The Rails Doctrine Decade
koic
2
600
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
560
How to build a perfect <img>
jonoalderson
1
6.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Fireside Chat
paigeccino
43
4.1k
30 Presentation Tips
portentint
PRO
1
430
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
The Curious Case for Waylosing
cassininazir
1
570
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
420
Transcript
Roda の紹介: ルーティングツ リー Web フレームワーク Hoang Quan @BlazingRockStorm
自己紹介 Hoang Quan (ホアンクアン) @BlazingRockStorm rocker.gryphon クラウドとバックエンドに特化したシステムエンジニア。 RubyとAWSとAgileが好き 折り紙インスタグラマー、ドラマー・パーカッショニスト https://www.linkedin.com/in/hoang-quan-8418a7155/
新しい Rubyフレームワークを探す 1 Railsの制限 Rails は強力ですが、簡単なプロトタイプやハッカソンでは遅く なる可能性がある。 2 他のオプション 多くのハッカソン
プロジェクトでは、Go、 TypeScript/JavaScript、または Python が使用されてい る。 3 Sinatraの短所 Sinatra は優れたフレームワークですが、開発されてから長 い年月が経っているため、一部がやや時代遅れになっている 部分がある。 4 スピードプログラミング 高速でシンプルな Ruby フレームワークが必要で、Python の FastAPI に似たものが望ましい。
Rodaとは? Rubyウェブフレームワーク Roda は Jeremy Evans によって作成さ れた、Web アプリケーション構築のための 軽量なソリューションです。
ルーティングツリーデーサイン 動的でスケーラブルなリクエスト処理のた めに、ルーティングツリーを使用します。 軽くて早い 100万回以上のダウンロード数を誇る Roda は、その速度と効率性で高く評価さ れています。
Rodaの主な特徴 1 シンプルさ Rodaは、学習と使用が容易になるように設計されており、ウェブ開発をより身近 なものにする。 2 信頼性 イミュータビリティ(不変性)とスレッドセーフをサポートしており、安定した予測可 能なパフォーマンスを保証します。 3
拡張性 プラグインベースのアーキテクチャにより、Roda は特定のニーズに合わせて容 易に拡張できます。 4 パーフォーマンス Roda は、純粋な Rack の速度に近いパフォーマンスを提供し、リソースの使用 を最適化します。
ルーティングツリーの概念 1 動的なリクエスト処理 Roda は、ルーティングツリー構造を通じて、 Web リクエストを効率的に処理し ます。 2 逐次的なパスのマッチング
パスのセグメントを順番に照合し、正確なルーティングロジックを実現します。 3 重複を減ら ルーティングツリーは、複雑なウェブアプリケーションにおけるコードの重複を 減らします。
ルーティングツリーの概念 4 例 r.on "a" do # /a branch r.on
"b" do # /a/b branch r.is "c" do # /a/b/c request r.get do end # GET /a/b/c request r.post do end # POST /a/b/c request end r.get "d" do end # GET /a/b/d request r.post "e" do end # POST /a/b/e request end end
基本的な Roda アプリケーションの 構造 Roda を継承 アプリケーションを作成するには、まず Roda クラスを継承することから始め ます。
ルートを定義 route ブロックを使用して、アプリケーションのルートとロジックを定義しま す。 r.on、r.isとのマッチング ルートのマッチングには、r.on、r.is、r.getなどのメソッドを利用します。 戻り値 ブロックの戻り値は、クライアントに送信される応答になります。
人気のあるRuby Webフレームワークとの比較
Roda vs Sinatra Roda 構造化されたリクエスト処理のためのルーティングツリーを中心に 構築されています。 • 最小限のオーバーヘッドでより高いパフォーマンス。 • プラグインベースのアーキテクチャ。
• 設計上スレッドセーフ。 • 不変なリクエストオブジェクト。 • ベンチマークで2~3倍高速。 • コードの重複が少ない。 Sinatra よりシンプルなアプリケーション向けに、フラットなルーティング構造 を使用します。 • より主流な採用。 • より多くのRubyistにとって馴染み深い。 • 広範なドキュメント。 • シンプルさに焦点を当てたDSL • より大きなコミュニティ • より平坦な学習曲線
Rodaのプラグインシステム コア機能 プラグインがコア機能を 駆動する。 簡単に追加 機能の追加や削除が簡 単。 公式プラグイン 100以上の公式プラグイ ンが存在します。
カスタムプラグイン 特定のニーズに合わせ てプラグインを作成す る。
Rodaを始める インストール 以下のコマンドで Rodaをインストール gem install roda config.ru 設定のために、 config.ru
ファイルを作成する プログラミング アプリのクラスとルートを書く アプリを行動 rackup コマンドでアプリを行動する
例のRodaプロジェクト • RodaとMongoDBでペットプロジェクトを作成しました • Github: https://github.com/BlazingRockStorm/roda-example
例のRodaプロジェクト
例のRodaプロジェクト
注意!
https://youtu.be/smDgS8E_-jI?si=IpGH-9lUoL8QP2RD
ISUCON一緒に参加しましょう!
None