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
2024AWSで個人的にアツかったアップデート
nagisa53
1
110
自社 200 記事を元に整理した読みやすいテックブログを書くための Tips 集
masakihirose
2
330
2025年に挑戦したいこと
molmolken
0
160
Copilotの力を実感!3ヶ月間の生成AI研修の試行錯誤&成功事例をご紹介。果たして得たものとは・・?
ktc_shiori
0
350
Visual StudioとかIDE関連小ネタ話
kosmosebi
1
380
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
220
JuliaTokaiとJuliaLangJaの紹介 for NGK2025S
antimon2
1
120
コロプラのオンボーディングを採用から語りたい
colopl
5
1.3k
三菱電機で社内コミュニティを立ち上げた話
kurebayashi
1
360
Kotlin Multiplatformのポテンシャル
recruitengineers
PRO
2
150
DMMブックスへのTipKit導入
ttyi2
1
110
今から、 今だからこそ始める Terraform で Azure 管理 / Managing Azure with Terraform: The Perfect Time to Start
nnstt1
0
240
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
170
14k
BBQ
matthewcrist
85
9.4k
The World Runs on Bad Software
bkeepers
PRO
66
11k
How to Ace a Technical Interview
jacobian
276
23k
Docker and Python
trallard
43
3.2k
Designing for humans not robots
tammielis
250
25k
Typedesign – Prime Four
hannesfritz
40
2.5k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Code Review Best Practice
trishagee
65
17k
Scaling GitHub
holman
459
140k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
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 ʜʜʜ