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
DenoでもBunでもいいから 最速を目指す
Search
Yusuke Wada
September 05, 2022
Programming
1.7k
3
Share
DenoでもBunでもいいから 最速を目指す
Yusuke Wada a.k.a yusukebe
2022/09/05 Node学園 40時限目
Yusuke Wada
September 05, 2022
More Decks by Yusuke Wada
See All by Yusuke Wada
飯MCP
yusukebe
0
560
へんな働き方
yusukebe
6
3k
Cap'n Webについて
yusukebe
0
330
OSS開発者の憂鬱
yusukebe
17
30k
r2-image-worker
yusukebe
1
260
Introduce Hono CLI
yusukebe
6
4.1k
私はどうやって技術力を上げたのか
yusukebe
47
21k
Reactをクライアントで使わない
yusukebe
8
7.1k
AI時代のUIはどこへ行く?
yusukebe
23
12k
Other Decks in Programming
See All in Programming
PHPでバイナリをパースして理解するASN.1
muno92
PRO
0
460
要はバランスからの卒業 #yumemi_grow
kajitack
0
170
AI時代になぜ書くのか
mutsumix
0
430
Hive Metastoreを通して学ぶIceberg REST Catalog ― 仕様から実装まで
okumin
0
210
PHPでローカル環境用のSSL/TLS証明書を発行することはできるのか? #phpconkagawa
akase244
0
370
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
4
530
Transactional Change Stream Processing With Debezium and Apache Flink
gunnarmorling
1
100
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
240
Agentic Elixir
whatyouhide
0
460
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
290
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
3
400
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
270
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Done Done
chrislema
186
16k
The Invisible Side of Design
smashingmag
302
52k
How to make the Groovebox
asonas
2
2.2k
A designer walks into a library…
pauljervisheath
211
24k
So, you think you're a good person
axbom
PRO
2
2k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
200
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Navigating Team Friction
lara
192
16k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
110
Scaling GitHub
holman
464
140k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
250
Transcript
%FOPͰ#VOͰ͍͍͔Β ࠷Λࢦ͢ :VTVLF8BEBBLBZVTVLFCF /PEFֶԂ࣌ݶ
ࣗݾհ w :VTVLF8BEBBLBZVTVLFCF w ϘέͯDPGPVOEFS w :"1$"TJBϕεττʔΫड w גࣜձࣾτϥϕϧϒοΫ
εʔύʔόΠβʔ w UXJUUFSDPNZVTVLFCF w HJUIVCDPNZVTVLFCF /PEFֶԂॳࢀՃͰ͢
)POPͱ͍͏ϑϨʔϜϫʔΫΛ͍ͭͬͯ͘·͢ w 8FCϑϨʔϜϫʔΫɾϧʔλʔ w 8FC4UBOEBSE'FUDIͷ"1*ͷΈΛ༻ w ϚϧνϓϥοτϑΥʔϜ w $MPVE fl
BSF8PSLFSTɺ'BTUMZ$PNQVUF!&EHFɺ%FOPɺ#VO w ϛυϧΣΞͰػೳՃ w 5SJF3PVUFS EFGBVMU ͱ3FH&YQ3PVUFSͷͭͷϧʔλʔ͕͋Δ IUUQTIPOPKTEFW
)POPͷͭͷϧʔλʔ w 5SJF3PVUFS w 3FH&YQ3PVUFSCZ!VTVBMPNB w +4ͷΣϒϑϨʔϜϫʔΫͰߴͳϧʔλʔΛ࣮͢Δํ๏ 4QFBLFS%FDL w IUUQTTQFBLFSEFDLDPNVTVBMPNBVMUSBGBTUKTSPVUFS
6MUSBGBTU ͱʹ͔͍͘ϑϨʔϜϫʔΫΛࢦ͍ͯ͠Δ
%FOPɺ#VO w #VO w #VOJTBGBTUBMMJOPOF+BWB4DSJQUSVOUJNF IUUQTCVOTI w %FOP w
0VSHPBMJTUPNBLF%FOPUIFGBTUFTU+BWB4DSJQUSVOUJNF IUUQTEFOPDPNCMPHDIBOHFT )POPͲͪΒͰಈ͘ͷͰ %FOPͰ#VOͰͲ͜Ͱಈ͔͍͍͔ͯ͠Β Ұ൪͍ϑϨʔϜϫʔΫΛࢦͯ͠ΈΑ͏
8FCϑϨʔϜϫʔΫ͕͍ͱʁ
͍͍ͩͨ͜ͷͭΛଌΔ w )FMMP8PSME w ϧʔςΟϯά w 3FRVFTU3FTQPOTFͷॲཧ EFMWFEPSSPVUFSCFODINBSL 4BMUZ"PNCVOIUUQGSBNFXPSLCFODINBSL
طଘϕϯνϚʔΫPSΦϦδφϧ ͰଌͬͯΈΑ͏ .BD#PPL1SP.DPSF(#
%FOPɺ#VOͷલʹ/PEF
/PEFϧʔλʔฤ w EFMWFEPSSPVUFSCFODINBSL#FODINBSLPGUIFNPTUDPNNPOMZ VTFEIUUQSPVUFST IUUQTHJUIVCDPNEFMWFEPSSPVUFSCFODINBSL w /PEFͷओཁʮϧʔλʔʯͷϕϯνϚʔΫ w &YQSFTT
w LPBSPVUFS w LPBUSFFSPVUFS w fi OENZXBZ'BTUJGZͰΘΕ͍ͯΔ w USFLSPVUFS w FUD )POPͷݸΛ͋Θͤͯݸͷϧʔλʔ
Γํ ϧʔςΟϯάఆٛ ୟ͖ํ ͋͘·ͰϧʔςΟϯά 3FR3FTͷϋϯυϦϯά͠ͳ͍
݁Ռͦͷ Ґ Ґ
݁Ռ্Ґ Ґ Ґ Ґ
)POP Ґ Ґ ˎͪͳΈʹ)POPͷϧʔλʔෳͷϋϯυϥʹରԠͤͨ͞Γ ϓϥΠΦϦςΟ͕ෳࡶͩͬͨΓ͢Δ
ͪͳΈʹ#VOͩͱ
)POP3FH&YQ3PVUFS͕উͭ #VOͷਖ਼نදݱ͕͍ /PEFΑΓ͘ͳͬͯΔͷ ͳʹ͔ཧ༝͕͋Δͷ͔ͳ͍ͷ͔
͍Α͍Α%FOP
%FOP)FMMP8PSMEฤ w EFOPTBVSTCFODI📊$PNQBSJOHEFOPOPEF)551 GSBNFXPSLT IUUQTHJUIVCDPNEFOPTBVSTCFODI w %FOPɺ/PEFͷϑϨʔϜϫʔΫΛܭଌ ૉͷ#VO w
)FMMP8PSMEΛBVUPDBOOPOͰଌΔ w (JU)VC"DUJPOTͰճɺ݁Ռ͕3&"%.&ʹͳΔ
݁Ռ ϑϨʔϜϫʔΫͷதͰҰ൪͍ #VOׂ͕ͱ͍ʁ
+BSSFEొ IUUQTHJUIVCDPNEFOPTBVSTCFODIJTTVFT
BVUPDBOOPO͍͔ΒPIB͑ ࠷ۙ#PNCBEJFS͕͓ؾʹೖΓΒ͍͠
Ͱɺ࣮ʜ
%FOPϕϯνϚʔΫ w ࣮)POP%FOPެࣜϕϯνϚʔΫͰΘΕ͍ͯΔ w IUUQTEFOPMBOECFODINBSLT
None
%FOP fl BTI w %FOPΑΓ࣮ݧతʹಋೖ͞Εͨ)551TFSWFS"1* YJNQSPWFNFOUDPNQBSFEUPPVSFYJTUJOHXFCTFSWFS
w ͔֬ʹ%FOP fl BTI#VOΑΓ͍ w ͨͩ͠ɺ͜͜ͰΘΕ͍ͯΔ#VOͷ όʔδϣϯݹ͍ʢͣʣ
%JWZ͘Μ͕%FOP fl BTIͷϕϯνʹ)POPΛͬͯ͘Εͨ HJUIVCDPNEFOPMBOEEFOPQVMM
+BSSFEݱΔ IUUQTHJUIVCDPNEFOPMBOEEFOPQVMMJTTVFDPNNFOU
Ͱ#VOฤ
#VO)551ϑϨʔϜϫʔΫϕϯν w 4BMUZ"PNCVOIUUQGSBNFXPSLCFODINBSL$PNQBSFUISPVHIQVU CFODINBSLGSPNWBSJPVT#VO)551GSBNFXPSL IUUQTHJUIVCDPN4BMUZ"PNCVOIUUQGSBNFXPSLCFODINBSL
(FU 1BSBNT RVFSZIFBEFS 1PTU+40/
#VO ,JOH8PSMEͬ Ͱ1PTU+40/ͦΜͳͰͳ͍ʁ
1PTU+40/ w BXBJUBTZODΛ͏ͱ,JOH8PSMEͷύϑΥʔϚϯεམͪΔ w (&5 ͳͲಉظత w )POP ࣌
શͯͷϋϯυϥͰBXBJU͢Δॲཧ͕ೖ͍ͬͯͨ BTZODϋϯυϥͷαϙʔτ BXBJU͢Δॲཧ͕શϋϯυϥʹରͯ͠ߦΘΕ͍ͯͨ 1PTU+40/
BXBJUΛ͏ͱ͍ IUUQTHJUIVCDPNPWFOTICVOJTTVFT
+BSSFEొ IUUQTHJUIVCDPNPWFOTICVOJTTVFTJTTVFDPNNFOU 5IFSFJTTUJMMNPSFXPSLUPCFEPOF UPSFEVDF#VOTQSPNJTFBXBJUPWFSIFBE
WͰվળ ͨͩ͠ ˎ5IFNPSFHFOFSBMDBTFPGBTZODBXBJUQFSGPSNBODFCFJOHXPSTFJO+4$UIBO7JTTUJMMBOJTTVF
#VODBOBSZ ݈ಆͯ͠Δ
+BSSFEͷΞυόΠε ˎW͕ग़ΔલͰ͕͢ʜ
ϋϯυϥ͕Ұͭͷ߹DPNQPTF͠ͳ͍Α͏ʹͨ͠ IUUQTHJUIVCDPNIPOPKTIPOPQVMM
ABXBJUAΛগͳͨ͘͠ IUUQTHJUIVCDPNIPOPKTIPOPQVMM
#VOWDBOBSZ )POP "dependencies": { "@kapson fi re/bun-bakery": "^0.3.2", "@nbit/bun":
"^0.7.0", "baojs": "^0.1.3", "bunrest": "^1.1.0", "colstonjs": "latest", "express": "^4.18.1", "hyperbun": "^0.4.6", "kingworld": "^0.0.0-experimental.24" } )POP͍ͧ
࠷৽൛ #VOWDBOBSZ )POPIUUQTHJUIVCDPNIPOPKTIPOPUSFF FCFCDDGEDGCC "dependencies": { "@kapson fi re/bun-bakery": "^0.3.2",
"express": "^4.18.1", "fastify": "^4.5.3", "hyperbun": "^0.4.6", "kingworld": "^0.0.0-experimental.24" },
࠷৽ͷ݁Ռ IUUQTHJUIVCDPNZVTVLFCFXFCGSBNFXPSLCFODI
ͱ͍͏͜ͱͰ%FOPͰ#VOͰ ϑϨʔϜϫʔΫͷதͰ ˚Ұ൪͍ ⦿ҰೋΛ૪͏
͍ͬͨΜײ w ύϑΥʔϚϯεΛͱΔ͔ϝϯςφϏϦςΟΛͱΔ͔ʁ w 6MUSBGBTUΛΞΠσϯςΟςΟʹͯ͠ΔͷͰͳΔ͘͘ w ػೳ͋ΔͷͰ࠷େม w ϕϯνϚʔΫʮͳ·ͷʯ w
ϕϯνϚʔΫ͍͠ w ڥɺϥϯλΠϜͷ࣮ w #VOͷϨεϙϯεϔομʹA%BUFAϔομ͕ͳ͍FUD w ఢΛ࡞ΔՄೳੑ͕͋Δ
%FOP্ͱ#VO্ͳΒͲͪΒ͕͍ͷ͔ʁ %FOP fl BTI͍ #VO৽͍͠)POPͩͱ͍
ࡢڭ͑ͯΒͬͨϕϯνϚʔΫαΠτ IUUQTEFOPWTCVO fl ZEFW %FOP fl BTIͬͯͳ͍
#VOͰ੩తϑΝΠϧͷαʔϒΛ࠷దԽ͠Α ͏ͱ͍ͯ͠Δ
#VOͬͱ͘ͳΔ
ͪͳΈʹ%&-&5&͚ͩ3FRVFTUͷத ͕ۭʹͳΔόά͕͋Δ IUUQTHJUIVCDPNPWFOTICVOJTTVFT IUUQTHJUIVCDPNIPOPKTIPOPJTTVFT
%FOP
·ͩ͘ͳΔ
63-͕͍
͏*TTVFʹͳͬͯͨ IUUQTHJUIVCDPNEFOPMBOEEFOPJTTVFT
63-͡Όͳͯ͘ 63-4FBSDI1BSBNT͚ͩͰΑ͘ͳ͍ʁ
DSFRRVFSZͷߴԽ IUUQTHJUIVCDPNIPOPKTIPOPQVMM
Ҏ্ύϑΥʔϚϯε্͕ͬͨ IUUQTHJTUHJUIVCDPNZVTVLFCFGFEGEFFDEGE
ߴԽͱϕϯνϚʔΫ ଓ͍͍ͯ͘ʜ