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
MCP with Cloudflare Workers
yusukebe
2
310
Remix on Hono on Cloudflare Workers
yusukebe
3
490
僕がつくった48個のWebサービス達
yusukebe
21
18k
Honoの来た道とこれから
yusukebe
20
4.9k
JS RPCを理解する
yusukebe
5
760
Honoとhtmx
yusukebe
6
1.8k
Cloudflare Workersの環境を再現することについて
yusukebe
7
1k
Hono v4
yusukebe
11
5.1k
Hono v3 and v4
yusukebe
4
4k
Other Decks in Technology
See All in Technology
商品レコメンドでのexplicit negative feedbackの活用
alpicola
2
470
When Windows Meets Kubernetes…
pichuang
0
320
JuliaTokaiとJuliaLangJaの紹介 for NGK2025S
antimon2
1
150
re:Invent 2024のふりかえり
beli68
0
130
Site Reliability Engineering on Kubernetes
nwiizo
0
180
Plants vs thieves: Automated Tests in the World of Web Security
leichteckig
0
130
「人物ごとのアルバム」の精度改善の軌跡/Improving accuracy of albums by person
mixi_engineers
PRO
2
140
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
170
FinJAWS_reinvent2024_recap_database
asahihidehiko
2
180
機械学習を「社会実装」するということ 2025年版 / Social Implementation of Machine Learning 2025 Version
moepy_stats
15
3k
新卒1年目、はじめてのアプリケーションサーバー【IBM WebSphere Liberty】
ktgrryt
0
160
コロプラのオンボーディングを採用から語りたい
colopl
5
1.4k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
137
6.7k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Navigating Team Friction
lara
183
15k
Site-Speed That Sticks
csswizardry
3
280
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Unsuck your backbone
ammeep
669
57k
Adopting Sorbet at Scale
ufuk
74
9.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.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 ίϯςϯπΛੜ͢Δ͜ͱग़དྷΕ໘ന͍͔