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
URLルーティングをつくるエピソード1
Search
bmf_san
December 19, 2018
Programming
330
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
URLルーティングをつくるエピソード1
bmf_san
December 19, 2018
More Decks by bmf_san
See All by bmf_san
桃太郎で始めるRego入門‐今日から使えるRegoの基本編
bmf_san
0
72
完璧を求めない意思決定-アクセス制御基盤における制約との向き合い方
bmf_san
5
20k
AAPについて調べてみた
bmf_san
0
140
レーダーをつくる
bmf_san
0
83
契約テストとPactについて
bmf_san
0
130
5分でわかるSLO
bmf_san
2
180
権限について考える
bmf_san
2
170
自作HTTPルーターから新しいServeMuxへ
bmf_san
3
1.8k
古くなってしまったPHPフレームワークとPHPのバージョンアップ戦略
bmf_san
1
510
Other Decks in Programming
See All in Programming
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
1
130
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
250
スマートグラスで並列バイブコーディング
hyshu
0
280
OS アップデート対応の取り組み方がもっと共有されてほしい
andpad
0
110
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
160
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
240
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
150
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
180
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
350
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
180
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.1k
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
220
Code Reviewing Like a Champion
maltzj
528
40k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
230
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
How to build a perfect <img>
jonoalderson
1
5.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
880
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Navigating Weather and Climate Data
rabernat
0
280
AI: The stuff that nobody shows you
jnunemaker
PRO
8
770
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
270
Transcript
URLルーティングをつくる エピソード1 @Makuake LT Party 2018/12/19
動機 ・ある⽇Golangを触っていた ・「標準ライブラリが充実していていいなぁ」 ・「でもnet/httpのURLパースはちょっと弱いから外 部ライブラリ使うのがスタンダートかな・・?」 ・「⾃分で⽤意したい!」
URLルーティングとは? ・リクエストされるURLに対し、実⾏したい処理は何 かを判定させるもの • ex. http://example.com/users • /users → UserControllerͷॲཧΛฦ͢
実装パターン ・正規表現でURLマッチング ・⽊構造を⽤いて⽂字列探索のアルゴリズムを使う
⽊構造とは? ・グラフ理論という数学の分野で定義されている⽊の 構造を持つデータ構造のこと ・⽊ ・複数の点(nodeまたはvertex)と複数の辺 (edge)で構成されたグラフ
ɹࠜʢSPPUʣ ɹࢬʢFEHFʣ ɹઅʢOPEFʣ ɹ༿ʢMFBGʣ
⽊構造の例 ・家系図 ・ファイルシステム ・ドメイン名(cf. https://www.nic.ad.jp/ja/dom/system.html) ・構⽂⽊ ・コンパイラ ・DOMツリー ・親⼦構造を持つタグやカテゴリとか
参考になりそうな実装を⾒てみる ・https://gist.github.com/neo-nanikaka/ c2e2f7742b311696d50b ・https://github.com/nissy/bon ・https://github.com/nissy/mux ・https://github.com/ytakano/radix_tree ・https://github.com/kkdai/radix ・https://github.com/MarkBaker/Tries
なるほどわからん
URLルーティングをつくる ・何を⽊構造として扱うか? ・→ルート定義のリスト ・実装の流れ ・インプットとして、ルート定義とURLパスを得る ・ルート定義から⽊構造を⽣成 ・URLパスをターゲットとして⽊構造を探索、マッチしたデー タを返す
None
1BUI .FUIPE "DUJPO (&5 )PNF$POUSPMMFS!EP4PNF"DUJPO VTFST (&5 6TFS$POUSPMMFS!EP4PNF"DUJPO VTFSTVTFS@JE
(&5 6TFS$POUSPMMFS!EP4PNF"DUJPO VTFSTVTFS@JE 1045 6TFS$POUSPMMFS!EP4PNF"DUJPO VTFSTFWFOUT (&5 6TFS$POUSPMMFS!EP4PNF"DUJPO VTFSTFWFOU@JE (&5 6TFS$POUSPMMFS!EP4PNF"DUJPO VTFSTFWFOU@JE 1045 6TFS$POUSPMMFS!EP4PNF"DUJPO VTFSTTVQQPSU (&5 6TFS$POUSPMMFS!EP4PNF"DUJPO
VTFST (&5 VTFS@JE TVQQPSU FWFOU@JE (&5
(&5 (&5 (&5 1045 )551෦͕ऴϊʔυʢ༿ʣʹͳΔ
None
To be continued