Node.js v12の気になる変更点 / #kng6
by
Masashi Hirano
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Node.js v12 Notable Changes ؔNodeֶԂ 6࣌ݶ Masashi Hirano(@shisama)
Slide 2
Slide 2 text
ฏ ণ࢜ / Masashi Hirano ɹɹɹɹ Kyoto office @shisama_ @shisama Node.js Core Collaborator ؔNodeֶԂOrganizer
Slide 3
Slide 3 text
4/23ʹ12.0.0͕ϦϦʔε͞Ε·ͨ͠
Slide 4
Slide 4 text
https://nodejs.org/en/blog/release/v12.0.0/ ݄ʹ-54ʹ
Slide 5
Slide 5 text
https://nodejs.org/en/blog/release/v12.0.0/ W&0-ʹ
Slide 6
Slide 6 text
Node.js v12ͷಛʹؾʹͳͬͨ มߋΛհ͠·͢ʂ
Slide 7
Slide 7 text
https://nodejs.org/en/blog/release/v12.0.0/ /PEFKTͷެࣜϖʔδ(JU)VCͷ3FMFBTFϖʔ δʹ1VMM3FRVFTUͷϦϯΫ͕షͬͯ͋Δ
Slide 8
Slide 8 text
https://github.com/nodejs/node/pull/26685
Slide 9
Slide 9 text
V8(JSΤϯδϯ)͕7.4ʹ • Node.js v10ͷV86.8 • JavaScript(ECMAScript)৽ػೳ͕Ճ • async / await͕ߴԽ • async-stack-trace͕Ճ etc…
Slide 10
Slide 10 text
https://twitter.com/mathias/status/1120700101637353473 JavaScript৽ػೳ
Slide 11
Slide 11 text
Array#{flat,flatMap} var arr1 = [1, 2, [3, 4]]; arr1.flat(); // [1, 2, 3, 4] arr1.flatMap(x => [x * 2]); // [2, 4, 6, 8]
Slide 12
Slide 12 text
Private Class Field class Counter { #count = 0; get value() { return this.#count; } increment() { this.#count++; } } const counter = new Counter(); counter.increment(); counter.#counter; // Error counter.value; // OK QSJWBUFʹ͍ͨ͠ϑΟʔϧυʹΛ͚ͭΔ
Slide 13
Slide 13 text
https://twitter.com/mathias/status/1120700101637353473 ଞʹͨ͘͞Μ͋Γ·͢ʂଓ͖WebͰʂ
Slide 14
Slide 14 text
https://speakerdeck.com/ajido/callback-to-promise-and-beyond લճˏAjido͞Μ͕ൃදͯ͘͠Ε·ͨ͠ʂ
Slide 15
Slide 15 text
https://blog.risingstack.com/node-js-12-new-features/ Async Stack Trace
Slide 16
Slide 16 text
https://blog.risingstack.com/node-js-12-new-features/ Async Stack Trace v11 V12
Slide 17
Slide 17 text
https://github.com/nodejs/node/pull/26685
Slide 18
Slide 18 text
llhttp • HTTPύʔαͷσϑΥϧτ͕http_parser͔Βllhttpʹ • http_parserվྑΛࢼΈ͚ͨͲ͔ͬͨ͠ • llhttpTypeScriptͰॻ͔Ε͍ͯͯϝϯς͘͢͠ͳ͍ͬͯΔ • http_parserΑΓ࣮ߦ͕͍ • llparseͰCݴޠLLVMϏοτίʔυʹม
Slide 19
Slide 19 text
llhttp https://github.com/nodejs/llhttp
Slide 20
Slide 20 text
https://github.com/nodejs/node/pull/26209 εΫϦʔϯγϣοτ 2019-05-08 02.51.41.png
Slide 21
Slide 21 text
https://github.com/nodejs/node/pull/23814
Slide 22
Slide 22 text
tls • TLS 1.3Λ৽͘͠αϙʔτ • TLS1.0ɺ1.1σϑΥϧτͰαϙʔτର֎ʹ • 2020/03ʹϝϯς͞Εͳ͘ͳΔ • v12LTSͰ2022/04ͰEOL
Slide 23
Slide 23 text
https://github.com/nodejs/node/pull/25576
Slide 24
Slide 24 text
σϑΥϧτͷheapͷ࠷େ • ैདྷ700MB(32bit) / 1400MB(64bit)ݻఆͩͬͨ • v12͔Β༻ՄೳͳϝϞϦ༰ྔʹ߹Θͤͯ૿ݮ
Slide 25
Slide 25 text
https://github.com/nodejs/node/pull/23027 ͜ͷޙɺొஃ༧ఆʂ
Slide 26
Slide 26 text
https://github.com/nodejs/node/pull/27361 /PEFKTWͰ ྩରԠ͞Εͨ
Slide 27
Slide 27 text
Node.js v12ʹͳΔ͜ͱͰಈ͔ͳ͘ͳ Δύοέʔδଘࡏ͢Δ
Slide 28
Slide 28 text
https://github.com/nodejs/node/issues/25060
Slide 29
Slide 29 text
Node.js v12ͰյΕΔύοέʔδ͕͋Δ • uglify-jsbcryptͳͲ༗໊ͳͱ͜Ζ͕ର • طʹରԠࡁͷͷ͋Δ • CITGMͱ͍͏Node.js CoreͷCIδϣϒͰᖰΓग़͍ͯ͠Δ • Α͘ΘΕΔύοέʔδͷςετ͕௨Δ͔ݕূ • https://github.com/nodejs/citgm • ੈͷதͷશͯͷnpmύοέʔδΛݕূ͍ͯ͠ΔΘ͚Ͱͳ͍
Slide 30
Slide 30 text
npmʹύοέʔδΛެ։͍ͯ͠Δਓ Node.jsͷϝδϟʔόʔδϣϯ͕ϦϦʔ ε͞ΕͨΒݕূͯ͠Έ·͠ΐ͏ʂ
Slide 31
Slide 31 text
·ͱΊ • V8ͷόʔδϣϯΞοϓͰJavaScriptͷ৽ػೳ͕Ճ͞Εͨ • Node.js Core෦తʹΞοϓσʔτ͞Ε͍ͯΔ • ϝδϟʔόʔδϣϯnpmύοέʔδ͕յΕͨΓ͢ΔͷͰݕূ ͕ඞཁ
Slide 32
Slide 32 text
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ @shisama_ @shisama