Node.js v12の気になる変更点 / #kng6
by
Masashi Hirano
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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