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
tokyo.ex #1 - phoenixframeworkの足回り
Search
Hidetaka Kojo
April 19, 2016
Technology
4
2.4k
tokyo.ex #1 - phoenixframeworkの足回り
phonenixのEndpointを起点としたリクエスト処理の流れの説明とよくある実装を使ったcase study
Hidetaka Kojo
April 19, 2016
Tweet
Share
More Decks by Hidetaka Kojo
See All by Hidetaka Kojo
機械学習を使ったゲームの運用サポートとSageMakerRL
hidetakakojo
0
1.2k
Other Decks in Technology
See All in Technology
Azureコストと向き合った、4年半のリアル / Four and a half years of dealing with Azure costs
aeonpeople
1
280
頭部ふわふわ浄酔器
uyupun
0
110
マルチエージェントのチームビルディング_2025-10-25
shinoyamada
0
150
AIとともに歩んでいくデザイナーの役割の変化
lycorptech_jp
PRO
0
870
Observability — Extending Into Incident Response
nari_ex
1
250
会社を支える Pythonという言語戦略 ~なぜPythonを主要言語にしているのか?~
curekoshimizu
3
660
ブラウザのAPIで Nintendo Switch用の特殊なゲーム用コントローラーを体験型コンテンツに / IoTLT @ストラタシス・ジャパン
you
PRO
0
120
[VPoE Global Summit] サービスレベル目標による信頼性への投資最適化
satos
0
240
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
13
82k
コンパウンド組織のCRE #cre_meetup
layerx
PRO
1
260
AI-Readyを目指した非構造化データのメダリオンアーキテクチャ
r_miura
1
310
AIエージェント入門 〜基礎からMCP・A2Aまで〜
shukob
1
170
Featured
See All Featured
Balancing Empowerment & Direction
lara
5
700
GraphQLとの向き合い方2022年版
quramy
49
14k
Build your cross-platform service in a week with App Engine
jlugia
233
18k
Producing Creativity
orderedlist
PRO
347
40k
For a Future-Friendly Web
brad_frost
180
10k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Raft: Consensus for Rubyists
vanstee
140
7.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Why Our Code Smells
bkeepers
PRO
340
57k
Transcript
QIPFOJYGSBNFXPSLͷճΓ 9'-"(äελδΦ )JEFUBLB,PKP
ࣗݾհ w ΤοΫεϑϥάͷதͷਓ w HJUIVC)JEFUBLB,PKP
ࠓͷ w QIPFOJYͷ؆୯ͳಈ࡞ͷઆ໌ w ϦΫΤετͷॲཧͷྲྀΕ .Z"QQ&OEQPJOU w Α͋͘ΔػೳͷQIPFOJY্Ͱͷ࣮ํ๏հ
.Z"QQ "QQMJDBUJPO w MJCNZ@BQQFYͰఆٛ w BQQMJDBUJPOىಈͷى w ࠷ॳʹىಈ͍ͯ͠Δͷ ӈͷͭ w
͜ͷͭΛཧղͨ͠Β QIPFOJYͷಈ࡞Λཧղͨ͠ಉ͡ʂ ͷͣ .Z"QQ .Z"QQ4VQFSWJTPS .Z"QQ&OEQPJOU .Z"QQ3FQP
.Z"QQ&OEQPJOU w .Z"QQ&OEQPJOUͷ༰ʜ w 1IPFOJY&OEQPJOUͷXSBQQFS w QIPFOJY4PDLFUUSBOTQPSUͷEJTQBUDITͷهड़ w IUUQϦΫΤετॲཧͰ௨ΔQMVHQJQFMJOFͷهड़
1MVH w ͦͦ1MVHͬͯʁ w 1MVH$POOߏମΛೖྗͯ͠ 1MVH$POOߏମΛग़ྗ͢Δͷ w ͦΕԿ͔ҙຯ͕͋Δͷʁ w
͜ͷΈͰQIPFOJYߏ͞Ε͍ͯΔͱ ݴͬͯաݴͰͳ͍ QMVH" 1MVH$POO 1MVH$POO`
1MVH QMVH" QMVH# QMVH$ QMVH% QMVH& QMVH' SFRVFTU DPOO
SFTQPOTF DPOO
1MVH
.Z"QQ&OEQPJOU .Z"QQ&OEQPJOU $POpH 1VC4VC 8BUDIFS 4FSWFS 1IPFOJY&OEQPJOU $PXCPZ8FCTPDLFU 1MVH"EBQUFST
$PXCPZ)BOEMFS DPXCPZ IBOEMFST SFRVFTUMJTUFOJOHQSPDFTTFT
.Z"QQ&OEQPJOU w 1MVH"EBQUFST$PXCPZ)BOEMFS w &OEQPJOUͰઃఆͨ͠QMVHͷDBMM͕ͳ͞ΕΔ w IUUQTHJUIVCDPNFMJYJSMBOHQMVHCMPCNBTUFSMJCQMVH BEBQUFSTDPXCPZIBOEMFSFY- w
&OEQPJOUʹࢦఆ͞ΕͨQMVHΛ্͔Βॱʹ దԠ͍ͯ͘͠ w ্͔Βॱͳͷ1MVH#VJMEFSͰͦͷॱ൪ͰݻΊ ΒΕ͍ͯΔͨΊ
.Z"QQ&OEQPJOU w ॳظͰىಈ͍ͯ͠ΔQMVH 1MVH4UBUJD 1MVH3FRVFTU*E 1MVH-PHHFS 1MVH1BSTFST 1MVH.FUIPE0WFSSJEF 1MVH)FBE
1MVH4FTTJPO .Z"QQ3PVUFS
.Z"QQ3PVUFS w XFCSPVUFSFYʹ࣮ w QJQFMJOFΛͬͯQMVHΛଋͶͯɺ TDPQF͝ͱʹଋͶͨQJQFMJOFΛదԠ͢Δ w ͜͜Ͱ1MVH#VJMEFSͰQJQFMJOF͕ଋͶΒΕͯΔ
$POUSPMMFS w BDUJPOʹରԠͨ͠ϩδοΫΛॻ͘ w .Z"QQ3PVUFS݁ہQMVH w 1MVH$POOTFOE@SFTQͷதͰSFTQPOTFʹඞཁͳ ใΛDPOOͷதʹؚΊͯฦ͢ w .Z"QQ3PVUFSͷޙʹͪΖΜQMVH͔͚Δ
w ͜͜·Ͱ͕SFRVFTUΛQIPFOJY͕ͲͷΑ͏ʹ ॲཧ͍ͯ͠Δ͔ͷ
͜͜·Ͱͷ·ͱΊ w .Z"QQ "QQMJDBUJPO Λத৺ʹQIPFOJYΛݟͯΈͨ w UFNQMBUFͱ͔WJFXʜ w TPDLFUҎલʹগͨ͠͠ͷͰͦͪΒΛʜ w
IUUQXXXTMJEFTIBSFOFUIJEFUBLBLPKPFMJYJS w ͔͜͜Β্هͷ༰Λ౿·͑ͯΑ͋͘Γͦ͏ͳ ػೳΛ࣮͢Δ
͋Δ͋Δ࣮ UPLFOͷݕূΛ͍ͨ͠ w ཁ݅ w Ϣʔβ͕ૹΓ͚ͭͯ͘ΔUPLFOͰೝূΛ͍ͨ͠ w ԿΛ͢Ε͍͍ͷ͔ w
ೝূ͕ඞཁͳBDUJPOʹରͯ͠UPLFOͷݕূΛߦ͏
͋Δ͋Δ࣮ UPLFOͷݕূΛ͍ͨ͠ .Z"QQ3PVUFS
͋Δ͋Δ࣮ UPLFOͷݕূΛ͍ͨ͠ .Z"QQ1MVH5PLFO"VUI
͋Δ͋Δ࣮ NTHQBDL"1*Λ͍͍ͨ w ཁ݅ w NTHQBDL"1* QSPUPCVG"1*ͷ࣮ w ԿΛ͢Ε͍͍ͷ͔
w CPEZͷதΛEFDPEF͢Δॲཧ w TFOE@SFTQͰૹ৴࣌ʹFODPEF͢Δॲཧ
͋Δ͋Δ࣮ NTHQBDL"1*Λ͍͍ͨ w $POUSPMMFSͷதͰEFDPEF͞ΕQBSBNTʹೖ͍ͬͯΔ w .Z"QQ3PVUFSΑΓલͷQMVHͰॲཧ͞Ε͍ͯΔ w 1MVH1BSTFS w
QBSTFSTʹ!CFIBWJPVS1MVH1BSTFSTͳNPEVMFΛ ॻ͘͜ͱͰಠࣗͷQBSTFॲཧ͕͔͚Δ w QBSTFͱEFDPEF w 1MVH1BSTFST+40/Λ·Ͷͯมߋ͢Ε؆୯ʹʂ
͋Δ͋Δ࣮ NTHQBDL"1*Λ͍͍ͨ .Z"QQ.THQBDL1BSTFS .Z"QQ&OEQPJOU
͋Δ͋Δ࣮ NTHQBDL"1*Λ͍͍ͨ w TFOE@SFTQΛൃߦ͢Δ࣌ͰSFTQPOTFͷCPEZ FODPEF͓͔ͯ͠ͳ͚ΕͳΒͳ͍ w KTPOͷ߹1IPFOJY$POUSPMMFSKTPOͷॲཧ w ࣗͰTFOE@SFTQॲཧΛͬͯSFTQ@CPEZʹ
FODPEFͨ݁͠ՌΛੵΊ͍͍ w .Z"QQ)FMQFSNTHQBDL 1IPFOJY$POUSPMMFS
!EFSJWFʹ͍ͭͯ w &DUPͷNPEFMͷΑ͏ͳTUSVDUΛ&ODPEFSͰFODPEF ͢Δͱ@@NFUB@@pFME͕͋ΔͨΊʹFSSPSΛग़Δ w ܕ TUSVDU ͝ͱʹFODPEFSͷৼΔ͍Λఆٛ͠ͳ͍ ͱ͍͚ͳ͍
!EFSJWFʹ͍ͭͯ w QSPUPDPMଆ͕༻ҙ͍ͯ͠ΕNPEVMF͝ͱͷڍಈΛ NPEVMFʹ؆୯ʹఆ͕ٛͰ͖Δ
͋Δ͋Δ࣮ ϩάΛSFRVFTUKTPOͰ w ཁ݅ w qVFOUEͰ͍қ͍Α͏ʹSFRVFTUMPHΛKTPOͰ ߏԽ͖͍ͯͨ͠ w ղੳ༻్ͷͨΊSFRVFTUQBSBNT͚͍ͭͨ
w ԿΛ͢Ε͍͍ͷ͔ w ϦΫΤετͷ༰ΛؚΊͯSFTQPOTFʹൃߦ w -PHHFSʹTUSJOHҎ֎ͷPCKFDUΛ͢
͋Δ͋Δ࣮ ϩάΛSFRVFTUKTPOͰ w طଘͷ-PHHFS1MVH-PHHFSʹهड़͞Ε͍ͯΔ w 1MVH1BSTFSΑΓલʹ͍͍͋ͬͯͷ͔ʁ w SFHJTUFS@CFGPSF@TFOE w
TFOE@SFTQͷ෦ͷSVO@CFGPSF@TFOEͰ ొͯ͋͠ΔDBMMCBDLΛݺͼग़͢
͋Δ͋Δ࣮ ϩάΛSFRVFTUKTPOͰ
͋Δ͋Δ࣮ ϩάΛSFRVFTUKTPOͰ w MPHHFSΛॆ࣮ͯ͠΄͍͠ͱݴ͏ϦΫΤετʹ ଚࢣͷ͋Γ͕͍͓ͨݴ༿ʜ w ͱ͍͏͜ͱ͢ͰʹͰ͖Δͣɻ w -PHHFSJOGP
DIBSEBUB@PS@GO NFUBEBUB
͋Δ͋Δ࣮ ϩάΛSFRVFTUKTPOͰ w -PHHFSʹNFUBEBUBͱͯ͠LFZXPSEMJTU͕ͤΔ w ͋ͱड͚औͬͨNFUBEBUBΛKTPOʹFODPEFͯ͠ ग़ྗ͢ΔMPHHFSCBDLFOEΛ༻ҙ͢Ε͍͍ w IUUQTHJUIVCDPNYqBHTUVEJPFMJYJS@MPHHFS@KTPO@pMF@CBDLFOE
w ࣗ࡞ͷ-PHHFSΛ࡞ͯ͠ɺ1MVH-PHHFSͱஔ͖͑ͯ ඞཁͳϩάΛ͘Α͏ʹ͢Δ
͋Δ͋Δ࣮ αʔόͷϨεϙϯεΛίϯτϩʔϧ͍ͨ͠ w ཁ݅ w QBSTFFSSPSͳͲͷϦΫΤετىҼͰൃੜͨ͠ ΤϥʔΛܥͷΤϥʔͰฦͨ͘͠ͳ͍ w ԿΛ͢Ε͍͍ͷ͔
w ಛఆͷΤϥʔΛัଊͯ͠దͳSFTQPOTFΛฦ͢
͋Δ͋Δ࣮ αʔόͷϨεϙϯεΛίϯτϩʔϧ͍ͨ͠ w 1MVH1BSTFS&OEQPJOUͷQMVHQJQFMJOFͷҰ෦ w &OEQPJOUDBMM͕QMVHQJQFMJOFॲཧΛ࣮ߦ͢Δ .Z"QQ&OEQPJOU
·ͱΊ w FOEQPJOUΛىͱͨ͠SFRVFTUͷྲྀΕͱ QMVHͷΈΛཧղ͢Δͱ৭ʑ෯͕͕Δ w QIPFOJYΓ͍ͨ͜ͱ͕γϯϓϧʹ͔͚ͯɺ ݴޠΛݗҾͰ͖ΔଘࡏʹͳΕΔͱࢥ͍ͬͯΔ w "DUJWF3FDPSE 3BJMTͷෳࡶ͔͞Βͷճؼ
w Ϛϧνϓϩηεͷརศੑ w IPUEFQMPZͷϕετͳ͖߹͍ํ·ͩ·ͩݸਓతͳ՝ʜ
None
͕࣌ؒ͋·ͬͨͱ͖ͷࢿྉ &DUPͷTIBSEJOH w &DUPͷෛՙࢄͬͯ·͔͢ʁ w TIBSEJOH&DUP3FQPͩͱ݁ߏ؆୯ʂ
͕࣌ؒ͋·ͬͨͱ͖ͷࢿྉ &DUPͷTIBSEJOH .Z"QQ6TFS4IBSEJOH.BOBHFS .Z"QQ 6TFS3FQP4 .Z"QQ 6TFS3FQP4 .Z"QQ 6TFS3FQP4 .Z"QQ
6TFS3FQP4
͕࣌ؒ͋·ͬͨͱ͖ͷࢿྉ &DUPͷTIBSEJOH w .Z"QQ6TFSHFOFSBUF@JE Ͱγʔέϯα͔Β࠾൪ w 6TFSSFQP VTFS@JE Ͱ֨ೲ͢ΔTIBSEJOH͍ͯ͠Δ 6TFS3FQPMJTU͔ΒରԠ͢Δ3FQPΛฦ͢
w 6TFSSFQP VTFS@JE VQEBUF DIBOHFTFU
·͕ͩ࣌ؒ͋·ͬͨͱ͖ͷࢿྉ FYRͷࢄ w FYR࣮ͬͯSFEJT͕Ұʹݻఆ͞ΕΔͷͰ όοΫΤϯυΛࢄ͍ͨ͠ͱ͖ͱ͔ʹ͕ඞཁ w UXFNQSPYZͩLFZ͕গͳ͍FYRͰͲͷRVFVF ͕Ͳͷϗετʹ͍͔͘Θ͔Βͳ͍͔Βݫີʹෛՙ ͕ࢄ͢Δอূ͕ͳ͍ w
͜ͷลΓੵΉͱ͖ʹSBOEPNʹSFEJTIPTUΛબΜ ͰFORVFVF͢Δͱ͔ඞཁͰ͢
·͕ͩ࣌ؒ͋·ͬͨͱ͖ͷࢿྉ FYRͷࢄ FYRSFEJT FYRSFEJT FYRSFEJT QIPFOJY"QQ X X X QIPFOJY"QQ
X X X ʜʜʜ