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
Node.js / Deno 徹底討論の時のスライド
Search
Yosuke Furukawa
PRO
March 31, 2022
Programming
3
7.5k
Node.js / Deno 徹底討論の時のスライド
2022/3/17 Node学園38時限目のスライドです。
Yosuke Furukawa
PRO
March 31, 2022
Tweet
Share
More Decks by Yosuke Furukawa
See All by Yosuke Furukawa
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
1
3.7k
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
190
Removing Corepack
yosuke_furukawa
PRO
9
1.5k
JavaScript Runtime とはなにか
yosuke_furukawa
PRO
15
2.6k
Strip Types と Storage
yosuke_furukawa
PRO
4
370
Module Harmony について
yosuke_furukawa
PRO
3
1.6k
LTのやり方
yosuke_furukawa
PRO
16
2.3k
AppRouter Panel Talk
yosuke_furukawa
PRO
3
750
Node.js v22 で変わること
yosuke_furukawa
PRO
13
5.7k
Other Decks in Programming
See All in Programming
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
120
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
5
390
Spring gRPC について / About Spring gRPC
mackey0225
0
220
Immutable ActiveRecord
megane42
0
140
チームリードになって変わったこと
isaka1022
0
200
仕様変更に耐えるための"今の"DRY原則を考える / Rethinking the "Don't repeat yourself" for resilience to specification changes
mkmk884
2
400
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
560
昭和の職場からアジャイルの世界へ
kumagoro95
1
380
Unity Android XR入門
sakutama_11
0
160
ペアーズでの、Langfuseを中心とした評価ドリブンなリリースサイクルのご紹介
fukubaka0825
2
330
時計仕掛けのCompose
mkeeda
1
300
Open source software: how to live long and go far
gaelvaroquaux
0
640
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Building an army of robots
kneath
303
45k
Unsuck your backbone
ammeep
669
57k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
51k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
KATA
mclloyd
29
14k
Music & Morning Musume
bryan
46
6.3k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Why Our Code Smells
bkeepers
PRO
336
57k
Practical Orchestrator
shlominoach
186
10k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
Transcript
None
͜ͷରஊͷૂ͍ • ʮΒͳ͍͠ɺͲͬͪΛબΜͩΒྑ͍͔Θ͔Βͳ͍ʯ ͱ͍͏ঢ়گΛݮΒ͢ɻ ্ͬͨͰ/PEFKTΛ͏ ্ͬͨͰٕज़બͱͯ͠ਖ਼ ͍͠ํΛέʔεʹ߹Θͤͯऔ ࣺબͰ͖Δ Βͳ͍͠ɺͲͪΒΛબΜͩ Βྑ͍͔Θ͔Βͳ͍
্ͬͨͰ%FOPΛ͏
Node.js ͷྑ͍ͱ͜Ζ deno ͷྑ͍ͱ͜Ζ
Α͍ͱ͜Ζ • Node.js: αϙʔτମ੍ɺಛʹLTS͕͋Γɺ2ؒαϙʔτ͞ΕΔ • deno: πʔϧ͕ຊମʹϏϧτΠϯͰؚ·Ε͍ͯͯɺೖΕͨ͋ͱ͍͖ͳ Γ։ൃ͕ਐΊΒΕΔ • ಛʹܕඇৗʹڧ͍
Node.js ͷѱ͍ͱ͜Ζ deno ͷѱ͍ͱ͜Ζ
ΘΔ͍ͱ͜Ζ • deno: αϙʔτମ੍͕ऑ͍ • deno: ࠷৽ʹ্͛ͯ͘Εͱ͍͏ݴ͍ํʹͳΔ • ͪΐͬͱલͷϚΠφʔόʔδϣϯΛαϙʔτͯ͠΄͍͠ͱ͍͏ʹͳΓ͕ͪ •
࠷৽ʹ͍ͭͯདྷΕΔମྗ͕ඞཁʹͳΔ • Node.js: ܕͷαϙʔτ • Node.js: ϞδϡʔϧγεςϜ͕ΰλΰλ • CJS / ESM ͷରԠʹ͍ͭͯ
Node.js ͷվળ deno ͷվળ
վળ • Node.js => Deno : Deno ͬͯ npm ϞδϡʔϧΛαϙʔτ͢Δͬͯݴ͚ͬͯͨͲɺΰλΰλ
Ͳ͏͢Δͷ͔ʁ • Deno: ΰλΰλ͝ͱड͚ೖΕͯΔ • Node.js: ͦͨ͠ΒͲͬͪΰλΰλʹͳΔͷͰɾɾɾʁ • import fs from "node:fs"; ͜Μͳײ͡ʁ • import fs from "https://deno.land/std/fs/mod.ts"; • Deno: ίϛϡχςΟଆ npm ϞδϡʔϧͷޓੑʹରҙݟͩͬͨɻͰϦʔμʔޓ ੑΛਪਐͨ͠ɻͻͷ͞Θ͞Μͷҙݟ͖ͬΓ۠ผ͢ΔϥΠϯ͕͋Εྑ͍ͱࢥ͍ͬͯΔ
Web Standard ͷऔΓΈ ํ
Web Standard ͷऔΓΈํ • Deno: Web Standard ΛੵۃతʹऔΓೖΕΑ͏ͱ͢Δɻ • ੵۃతʹऔΓೖΕա͗ͳͷͰʁ
• ·ͩWICGͷϨϕϧͰऔΓೖΕΔͷ͍ͩͿૣ͗͢Δؾ͕͢Δ •
Tooling ʹ͍ͭͯ
tooling • deno: deno task ͱ͍͏ͷ͕ೖͬͨ (npm run Έ͍ͨͳͭ) •
deno.json ʹίϚϯυΛॻ͘ͱ࣮ߦ͞ΕΔ
Permission ʹ͍ͭͯ
Permission ʹ͍ͭͯ • mizchi: ࠷ॳؤு͚ͬͯͭͯΔɺͰ import ͨ͠ઌͰଞͷϝϯόʔ͔Β permission ͕ଞʹඞཁʹͳͬͯ͘Δɻ •
ѱҙͷ͋Δϝϯόʔ͕ͦΕΛݴ͖ͬͯͨΒ࣮ࡍ͙ͷ͍͠ • kt3k: mizchi ͞ΜʢίʔυΦʔφʔʣ͕ඞཁͱࢥͬͨ permission ͚ͩ༩͢Εྑ͍ͷͰɺͦΕΛڧݻʹकΔ͖ • mizchi: ͦΕΘ͔Δ͕ɺαϓϥΠνΣʔϯΞλοΫΛकΔʹ࡞Δଆͱ͏ଆͷ྆ํͰͷέΞ͕ඞཁͳͷͰͳ͍͔ͱࢥ͍ͬͯ Δ • ݖݶ͕ංେԽ͢ΔͷΤίγεςϜͷதͰΑ͋͘Δͷɺ Android ͱ͔ΞϓϦΛΠϯετʔϧ͢Δͱ͖ʹશͯͷݖݶΛཁ ٻ͖ͯͨ͠Γ͢Δ • martin: Node.js policy ػೳ͕͋ΔɻηΩϡϦςΟίϛϡχςΟͷͰ͋ͬͯҰͭͷςʔϚͰ͋Δ • policy.json ͰΞϐʔϧͰ͖ΔͷͰ͋ΕͦΕΛίϯτϦϏϡʔτͯ͠ଞͷਓʹͪΌΜͱηΩϡϦςΟͷྀΛΞϐʔϧͨ͠ ͍ • ͨͩ೦ͳ͕Βࠓ policy ͷػೳͦ͜·Ͱͳ͍ͬͯͳ͍ɻ
Node.js ͷਪ͠৽ػೳ deno ͷਪ͠৽ػೳ
ਪ͠ػೳ • ݹ: Single Executable Application • Martin: webcrypto ͕࣮͞ΕͨΑʂ
• kt3k: Deno task ͕࣮͞ΕͨΑʂ • mizchi: deno fetch ͕ϩʔΧϧʹରͯ͠Ͱ͖Δ wasmpack Λͦͷ·· ಡΈࠐΊͨ
Governance ʹ͍ͭͯ
Governance ʹ͍ͭͯ • deno: BDFL ϞσϧɺϦʔμʔ͕ܾఆΛ͢Δ • node.js: Open Governance
ϞσϧɺϦʔμʔෆࡏɺεςΞϦϯάίϛοςΟʔ͕ ܾΊΔɻ • martin: deno inc Ͱɺձࣾʹͳ͍ͬͯΔɺϦʔμʔ͕ܾΊΔ͚ͩͰͳ͓ͯۚ͘ ʹΑͬͯࠨӈ͞ΕΔ • kt3k: ͦΕ͔ͨ͠ʹͦ͏ɻϢʔβʔΛ্͛ΔΑ͏ʹͯ͠ɺ͓ۚΛՔ͙ඞཁ͕͋Δ • node ͷϞδϡʔϧΛαϙʔτ͢ΔͷϢʔβʔΛ্͛Δඞཁ͕͋ΔͨΊ
Node.js ͷࠓޙ deno ͷࠓޙ
ࠓޙ • mizchi: ͓ޓ͍Ճ͢Δػೳ͕ࣅ͍ͯΔɺӨڹΛड͚͍͋ͬͯΔɺ͖ͳํΛબΑ͍ͱ͍͏ະདྷʹͳΔɻ • ઈରަΘΒͳ͍ϥΠϯΛMicrosoft͕ʹ͗ͬͯΔɻ • ֦ுࢠͷলུՄ൱ϥΠϯ • kt3k:
Node.jsޓ͕Ͱ͖ΔΑ͏ʹͳΓɺϢʔβʔ͕denoʹ૿͑Δɺདྷͬͱ፰߅͢Δɻ • martin: Node.js ͷະདྷ Web Standard ͷػೳ͕ͬͱ૿͍͑ͯ͘ɻfetch ͷଞʹ Event Emitter ͱ͔৭ʑ૿ ͍͑ͯ͘ɻͬͱϒϥβϓϥοτϑΥʔϜؒͷޓੑ͕ߴ͘ͳΔͣɻ • test runner ͕ Node.js ʹೖΔ • deno ͷ࡞ઓ => deno inc ͕ microsoft ʹങΘΕΔ • furukawa: