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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
74
完璧を求めない意思決定-アクセス制御基盤における制約との向き合い方
bmf_san
5
20k
AAPについて調べてみた
bmf_san
0
140
レーダーをつくる
bmf_san
0
85
契約テストと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
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
170
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
FDEが実現するAI駆動経営の現在地
gonta
2
250
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
520
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
560
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
340
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
140
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
430
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
260
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
180
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
160
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
3.4k
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
390
sira's awesome portfolio website redesign presentation
elsirapls
0
310
Paper Plane (Part 1)
katiecoart
PRO
1
10k
The Cult of Friendly URLs
andyhume
79
7k
Chasing Engaging Ingredients in Design
codingconduct
0
250
Bash Introduction
62gerente
615
220k
Docker and Python
trallard
47
4k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
430
Measuring & Analyzing Core Web Vitals
bluesmoon
9
940
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
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