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
スマホ時代のBotアプリのつくり方
Search
Yusuke Wada
July 03, 2016
Technology
7
27k
スマホ時代のBotアプリのつくり方
YAPC::Asia Hachioji 2016 mid in Shinagawa
2016-07-03
Yusuke Wada a.k.a. yusukebe
Yusuke Wada
July 03, 2016
Tweet
Share
More Decks by Yusuke Wada
See All by Yusuke Wada
Honoアップデート 2025年夏
yusukebe
1
840
パスタの技術
yusukebe
1
400
AI Ramen Fight
yusukebe
0
140
TypeScriptでDXを上げろ! Hono編
yusukebe
4
990
Honoをフロントエンドで使う 3つのやり方
yusukebe
8
4.8k
Honoのおもしろいミドルウェアをみてみよう
yusukebe
2
390
MCP with Cloudflare Workers
yusukebe
2
420
Remix on Hono on Cloudflare Workers
yusukebe
3
760
僕がつくった48個のWebサービス達
yusukebe
22
18k
Other Decks in Technology
See All in Technology
どこで動かすか、誰が動かすか 〜 kintoneのインフラ基盤刷新と運用体制のシフト 〜
ueokande
0
180
GitHub Copilot coding agent を推したい / AIDD Nagoya #1
tnir
2
4.5k
現場が抱える様々な問題は “組織設計上” の問題によって生じていることがある / Team-oriented Organization Design 20250827
mtx2s
3
780
アジャイルテストで高品質のスプリントレビューを
takesection
0
110
キャリアを支え組織力を高める「多層型ふりかえり」 / 20250821 Kazuki Mori
shift_evolve
PRO
2
300
見てわかるテスト駆動開発
recruitengineers
PRO
4
270
Figma + Storybook + PlaywrightのMCPを使ったフロントエンド開発
yug1224
2
110
Goss: New Production-Ready Go Binding for Faiss #coefl_go_jp
bengo4com
0
1.1k
KiroでGameDay開催してみよう(準備編)
yuuuuuuu168
1
130
Backboneとしてのtimm2025
yu4u
4
1.4k
認知戦の理解と、市民としての対抗策
hogehuga
0
310
JavaScript 研修
recruitengineers
PRO
2
130
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
How STYLIGHT went responsive
nonsquared
100
5.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Visualization
eitanlees
147
16k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
The Cult of Friendly URLs
andyhume
79
6.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Transcript
εϚϗ࣌ͷ #PUΞϓϦͷͭ͘Γํ :"1$"TJB)BDIJPKJNJEJO4IJOBHBXB :VTVLF8BEBBLBZVTVLFCF
ࣗݾհ w ా༟հBLBZVTVLFCF w ϫσΟοτදऔక w ΦϞϩΩ$50 w ٕज़ސY w
DPGPVOEFSPGCPLFUF w XBEBGNEBOEZGN w 1FSM.POHFS
ͦ͏͍͑
ԭೄཱྀߦߦ͖ͬͯ·ͨ͠
ཱྀߦͱ͍͑
τϥϕϧϒοΫ ג ͷٕज़ސͬͯ·͢
None
ࡢͷϠύνʔͰ τϥϕϧϒοΫ͔ࣾΒ ໊͕ ֤ࣗॳ ൃදʂ ✕
ΊͰ͍ͨʂ ˎࣸਅάϧΫϯͰ͢
Ϡύνʔʹײँ
ͱ͜ΖͰ
None
ΈΜͳେ͖ʂ ͩΑͶʁ
ͦΜͳͭͷϓϥοτϑΥʔϜ ͔Β݄ʹΞφϯε͕
None
εϚϗϝοηϯδϟʔ w -*/&'BDFCPPL.FTTFOHFS w εϚϗ࣌ͷϝοηʔδΞϓϦ w ରPSάϧʔϓ w ͜ͷͭσϑΝΫτε λϯμʔυʹͳ͍ͬͯΔ
w ͦ͜ʹ#PUͱ͍͏֓೦ͱ࣮͕ ೖͬͯ͘Δ
ຊͷςʔϚ w -*/&'BDFCPPL.FTTFOHFS#PUͷͭ͘Γํ w ओʹ-*/&ʮ#05"1*5SJBM"DDPVOUʯΛར༻ w #0,&5Λྫʹڍ͛·͢ w ҙ֎ͱۤ࿑͢Δ࣮ͷ͍͔ͭ͘ͷίτ w
ίϚϯυࢦͱͦͷ࣮ w ཧతͳΞʔΩςΫνϟͱ࣮ྫ
ͦͦ #PUͬͯͳΜͧ
άάΔ
ఆظతʹπΠʔτ͢Δ πΠολʔ ΞΧϯτ
/0/0 ͦΕ͚ͩ͡Όͳ͍Α
͔͋ͨਓؒͷΑ͏ʹ࡞ۀΛ ߦ͏ίϯϐϡʔλϓϩάϥϜ ͷ૯শ
30#05
ྫ͑
ݕࡧΤϯδϯͷ#PU ͱ͔͋ΔΑͶ
-*/"1*ͷ߹
ެࣜ"1*υΩϡϝϯτΑΓ༁Ҿ༻ w #05"1*Λ͏ͱݸਓͷϢʔβʔͱΓͱΓ͕ ग़དྷΔ w #05ΞΧϯτΛ༑ୡͱͯ͠Ճͯ͠Β͍ϝο ηʔδΛड͚औΔͱࣗಈతʹΧελϚΠζͨ͠Ϩε ϙϯεΛฦ͢ͳͲ͕ߟ͑ΒΕΔ w ͲΜͳλΠϛϯάͰϢʔβʔʹରͯࣗ͠ͷ#05
αʔόʔ͔ΒϝοηʔδΛૹΕΔ
ެࣜ"1*υΩϡϝϯτΑΓਤΛഈआ
ͭͬͯ͘Έͨ
None
ݱࡏ ༑ୡ
ײ
͔ͭͬͯ͘Δ#05"1*Ͱग़དྷΔ͜ͱ w جຊ#05ରϢʔβʔͷΠϯλϥΫγϣϯ w NJEݸผ#05ΞϓϦʹͱͬͯͷϢʔβʔࣝผࢠ w NJEΛอ࣋ͯ͠Ұ੪ૹ৴ͳͲग़དྷΔ͕ϑΟοτ͠ͳ͍ w ςΩετͳͲϝοηʔδΛड͚औͬͯԿ͔Λฦ͢ w
Ϧονϝοηʔδ ޙड़ Λར༻ͯ͠ϘλϯΛ࣮ݱ
#0,&5ͷػೳ
ςΩετΛૹΔ Ϙέݕࡧ
ελϯϓΛૹΔ ࡢͷਓؾϘέ
ʮͬͱΈΔʯΛλοϓ .03&ίϚϯυൃಈ ଓ͖ͷϘέ͕ݟΕΔ
ࠨԼͷϘλϯΛλοϓ 5*.&-&"1ίϚϯυൃಈ աڈͷͷਓؾϘέ͕ݟΕΔ
Χʔυͷ্Λλοϓ 8FC7JFXͰ։͘
ӈԼͷϘλϯΛλοϓ (";0ίϚϯυൃಈ ͦͷϘέͷը૾Λऔಘग़དྷΔ
ػೳ͓͞Β͍
#0,&5 w ςΩετૹΔϘέݕࡧ w ελϯϓૹΔࡢͷਓؾϘέ w .03&ίϚϯυͬͱΈΔ w 5*.&-&"1\::::..%%^աڈͷਓؾϘέ w
(";0\CPLF@JE^Ϙέը૾Λऔಘ w Χʔυͷ্Λλοϓ8FC7JFXͰදࣔ
ϨεϙϯεΦϒδΣΫτ
Ϧονϝοηʔδ ςΩετ ϝοηʔδ
ը૾ ϝοηʔδ
Ϧονϝοηʔδ w શͯը૾ w ࠲ඪͰۣܗΛࢦఆͯ͠Ξ ΫγϣϯΛܾΊΕΔ w ࢦఆͨ͠63-Λ։͘ w ࢦఆͨ͠จࣈྻΛൃݴ͞
ͤΔίϚϯυ w -*/&/&84ͷΞΧϯ τͳͲ͜ΕΛར༻ͯ͠ ΔͬΆ͍
λοϓͨ͠Β ࢦఆͨ͠จࣈྻΛൃݴͤ͞Δʁ
ࡌͬͯͳ͍
࣮
IUUQTHJUIVCDPNMJOFMJOFCPU TELQFSMCMPCNBTUFSMJC-*/&#PU "1*#VJMEFS3JDI.FTTBHFQN- 4%,ͷιʔεʹͷΈࡌͬͯΔ
ͬͯ͜ͱͰ࣮ͷ
جຊతͳΞʔΩςΫνϟ ࣗલ #05ΞϓϦ -*/& ϓϥοτϑΥʔϜ Ϣʔβʔ ϝοηʔδ DBMMCBDL 1045IUUQTFYBNQMFDPNDBMMCBDL NFTTBHF
1045IUUQTUSJBMCPUBQJMJOFNFWFWFOUT ϝοηʔδ SFTQPOTF
ࣗલ#05ΞϓϦ w DBMMCBDLΛड͚औΓ w ϝοηʔδʹؚ·ΕΔNJEΛऔಘ w NJEΊ͕͚ͯϨεϙϯεΛฦ͢ w த+40/ άϩʔόϧυϝΠϯ
)551αʔ ό 44- +40/ύʔα )551Ϋ ϥΠΞϯτ͕͋ΕجຊσΩΔʂ ˎॺ໊ͷݕূআ͘
ͨͩ͠ ಠࣗϑϨʔϜϫʔΫ࣭͕͍͜ͱ͕ଟ͍ ॺ໊ͷݕূ͍ͨ͠ -*/&͔ΒૹΒΕ͖ͯͯΔ͔ Ϧονϝοηʔδͱ͔ΊΜͲ͍͘͞
-*/6%,
-*/&#PU"1* w IUUQTNFUBDQBOPSHQPE-*/&#PU"1* w $1"/J[F͞Ε͍ͯΔ w Ϧονϝοηʔδͷ࡞ʹͪΖΜରԠ w ॺ໊ͷݕূҰߦͰॻ͚Δ w
ςετ͕ेʹଗ͍ͬͯΔͷͰ࣭͕ߴ͍ w ྫͷυΩϡϝϯτʹࡌͬͯͳ͍"1*͕࣮ w FHσΟϨΫτϦʹϑϨʔϜϫʔΫ͕ܝࡌ
VOMFTT SFRNFUIPEFR1045SFRQBUIFRDBMMCBDL \ SFUVSO< <> </PU'PVOE>> ^ NZJT@WBMJECPUWBMJEBUF@TJHOBUVSF SFRDPOUFOU SFRIFBEFS
9 -*/&$IBOOFM4JHOBUVSF VOMFTT JT@WBMJE \ SFUVSO< <> <GBJMFEUPWBMJEBUFTJHOBUVSF>> ^ NZSFDFJWFTCPUDSFBUF@SFDFJWFT@GSPN@KTPO SFRDPOUFOU GPSNZSFDFJWF !\SFDFJWFT^ \ OFYUVOMFTTSFDFJWFJT@NFTTBHFSFDFJWFJT@UFYU NZSFTCPUTFOE@UFYU UP@NJESFDFJWFGSPN@NJE UFYUSFDFJWFUFYU ^ SFUVSO< <> <0,>> 4:/014*4
ࡢͷ-5ͯ͠Δ࣌ؒʹ
None
-*/"1*ͷಛ
NJE͔͑ͭ͞ΜͰ͠·͑ݸผͷ Ϣʔβʔʹϝοηʔδ͕ૹΕΔ NZSFTCPUTFOE@UFYU UP@NJESFDFJWFGSPN@NJE UFYUSFDFJWFUFYU w
Ϣʔβʔʹ͖ͭͦͷΞϓϦʹͱͬͯҰҙͷNJE w DBMMCBDLʹԠ͢ΔλΠϛϯάͰͳͯ͘ྑ͍ w ඇಉظͰૹΕΔɺNJEΛ͓͚֮͑$-*͔ΒͰ w ϝοηʔδΛૹΔࡍͷ࣮ػςετʹ͑Δ
ޮՌత͕ͩΫηͷ͋Δ Ϧονϝοηʔδ
NZSFTCPUSJDI@NFTTBHF IFJHIU TFU@BDUJPO ."/(" UFYUNBOHB
MJOL@VSJIUUQTTUPSFMJOFNFGBNJMZNBOHBFO BEE@MJTUFOFS BDUJPO."/(" Y Z XJEUI IFJHIU TFU@BDUJPO .64*$ UFYUNJTJD MJOL@VSJIUUQTTUPSFMJOFNFGBNJMZNVTJDFO BEE@MJTUFOFS TFOE@NFTTBHF UP@NJENJE JNBHF@VSMIUUQTFYBNQMFDPNSJDIJNBHFGPP BMU@UFYU5IJTJTBBMUUFYU
Ϧονϝοηʔδը૾৴ w ͭͷαΠζͷը૾Λ༻ҙͯ͠σόΠεʹରԠ͢Δ w IUUQFYBNQMFDPNJNHTGBDF w ଟ͘ͷ߹ಈతʹը૾Λੜ͠ͳ͍ͱ͍͚ͳ͍
ྫͷλοϓ͢Δͱ ൃݴͤ͞Δͭ λοϓ Ϣʔβʔ͕ উखʹൃݴ
NZSFTTFMGCPUSJDI@NFTTBHF IFJHIUIFJHIU TFU@BDUJPO #0,& UFYUՄԙ MJOL@VSJIUUQCPLFUFKQCPLFCPLF\JE^
BEE@MJTUFOFS BDUJPO#0,& Y Z XJEUI IFJHIU IFJHIU TFU@BDUJPO 5*.&-&"1 UFYU5*.&-&"1ZNE UZQFTFOE.FTTBHF BEE@MJTUFOFS BDUJPO5*.&-&"1 Y Z XJEUI IFJHIU UZQFࢦఆͯ͠Δ
#PU։ൃͷ࣮ࡍ
Ϧονϝοηʔδͷ ը૾৴
ཧͷΞʔΩςΫνϟ w ը૾Λੜ͢Δʹίετ͕͔͔Δ w DBMMCBDLޙʮ͙͢ʹϝοηʔδΛૹΔඞཁແ͍ʯ w KPCRVFVFʹ͛ͯը૾ੜޙϝοηʔδ͕ཧ w 8FCαʔό͕٧·Δ͜ͱ͕ແ͍ 8FCαʔό
-*/& +PCαʔό XPSLFS XPSLFS DBMMCBDL SFTQPOTF EJTQBUDI NFTTBHF ը૾ੜ
ͱ͍͑
࣮ࡍͷΞʔΩςΫνϟ w ొ ਓΛ͑ͯΞΫςΟϒগͳ͍ w 8FCαʔόͷGPSLͨ͠ϓϩηε͕ը૾ੜΛ݉ͶΔ w ͔ͭը૾ेʹΩϟογϡͯ͠0,ʂ w ཧίετͷ͞Λॏࢹͨ͠ઃܭʹͨ͠
8FCαʔό -*/& DBMMCBDL SFTQPOTF NFTTBHF ը૾ੜ ը૾৴ Ωϟογϡ αʔό
ը૾ੜ৴ w ෦Ϙέͯ"1*͔ΒϘέใΛऔಘ w *NBHFSͰΨϦΨϦը૾࡞ w ेͳ࣌ؒͰNFNDBDIFEʹσʔλΛΩϟογϡ w ্هΛݩσʔλͱ͠ϦαΠζͯ͠৴ w
$%/ܦ༝ͤͣ"84&-#͔Β৴ w DBMMCBDL͕དྷͨॠؒʹࣗΒͷը૾Λऔಘ w ΩϟογϡΛੜ͓ͯ͘͠
ίϚϯυͷ࣮ w ςΩετϝοηʔδΛϋϯυϧ͢ΔࡍจࣈྻΛൺֱ w Ϛονͨ͠ΒͦΕͧΕσΟεύον w Ϛον͠ͳ͔ͬͨΒϘέݕࡧϞʔυ JG BSHT\UFYU^FR3"/,*/( \
SFUVSOTFMGIBOEMF@TUJDLFS BSHT ^ JG BSHT\UFYU^_N?5*.&-&"1=T =E \ SFUVSOTFMGIBOEMF@UJNFMFBQ BSHT ^ JG BSHT\UFYU^_N?(";0=T =E \ SFUVSOTFMGIBOEMF@HB[P BSHT ^
.03&ίϚϯυͷ࣮ w NJEΛϕʔεʹηογϣϯ*%Λੜ w ηογϣϯ͔ΒݱࡏͷίϯςΩετΛऔಘ w ্هͩͱԿϖʔδ͔ʁͱݕࡧΫΤϦʔ w ηογϣϯใNFNDBDIFEʹஞҰอଘ JG
BSHT\UFYU^FR.03& \ NZQBSBNTTFTTJPOHFU QBSBNT ]]\^ QBHFQBSBNT\QBHF^ RVFSZQBSBNT\RVFSZ^ ^
#PUͷӡ༻
ϢʔβʔͷߦಈΛ τϥοΩϯά͍ͨ͠
None
+4࣮ߦͱ͔ϜϦϙ
.FBTVSFNFOU1SPUPDPM w )551ϦΫΤετΛૹͬͯΞΫηεͱݟͳ͢ w ͱΓ͋͑ͣϨεϙϯε͕ޭͨ͠߹ʹૹͬͯΔ w NJEΛΩʔʹϢχʔΫϢʔβʔΛΧϯτ w CPLFTFBSDIωίCPLFEBJMZ
ݱ࣮
None
ͳ͔ͳ͔ݫ͍͠
ͦΖͦΖ·ͱΊ
#PU։ൃͷݱ࣮·ͱΊ w -*/"1*جຊతʹϢʔβର#05 w NJEͰϢʔβʔΛࣝผ͠Ԡ༻͠Α͏ w ϝοηʔδඇಉظͰฦͤྑ͍ w ΞΫςΟϒ͕ଟ͘ͳΕཧతͳΞʔΩςΫνϟ w
ϦονϝοηʔδͱίϚϯυͰػೳΛ࣮ݱ w ϞόΠϧΞϓϦ͕͍Βͳ͘ͳΔੈք؍དྷΔͷ͔ w ίϯςϯπΛੜ͢Δ͜ͱग़དྷΕ໘ന͍͔