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
jsconfeu 2018
Search
Yosuke Furukawa
PRO
June 20, 2018
Programming
0
220
jsconfeu 2018
NodeGirls で発表した jsconfeu 2018 の話です。
Yosuke Furukawa
PRO
June 20, 2018
Tweet
Share
More Decks by Yosuke Furukawa
See All by Yosuke Furukawa
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
1
3.8k
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.4k
AppRouter Panel Talk
yosuke_furukawa
PRO
3
750
Node.js v22 で変わること
yosuke_furukawa
PRO
13
5.8k
Other Decks in Programming
See All in Programming
ソフトウェアエンジニアの成長
masuda220
PRO
12
2.1k
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
250
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
150
Formの複雑さに立ち向かう
bmthd
1
930
Honoとフロントエンドの 型安全性について
yodaka
7
1.4k
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
280
仕様変更に耐えるための"今の"DRY原則を考える
mkmk884
9
3.2k
AIプログラミング雑キャッチアップ
yuheinakasaka
17
4.3k
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
150
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
380
Learning Kotlin with detekt
inouehi
1
120
CI改善もDatadogとともに
taumu
0
200
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Raft: Consensus for Rubyists
vanstee
137
6.8k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Site-Speed That Sticks
csswizardry
4
410
A Tale of Four Properties
chriscoyier
158
23k
How GitHub (no longer) Works
holman
314
140k
Scaling GitHub
holman
459
140k
Transcript
jsconf.eu 2018 2018/06/20 @ Recruit Technologies
Twitter: @yosuke_furukawa Github: yosuke-furukawa
jsconf.eu 2018
Ұ൪໘ന͔ͬͨͷ
None
Ұ൪໘ന͔ͬͨͷίϨ ͚ͩͲɻɻɻ
ৄࡉ͜͜Ͱ͠·͢
͓͠Ζ͔ͬͨηογϣϯ 3ͭհ EFOPҎ֎ͷ
None
৫ͷͨΊͷഉଞతͳߦҝͷݮ Β͠ํ • ܭଌͰ͖ͳ͍ͷཧͰ͖ͳ͍ • Ͳ͏ͬͯ৫Λվળ͢Δ͔ɺͱ͍͏৫վ ળͷ • ·͔͞ JavaScript
ͷΧϯϑΝϨϯεͰ৫վ ળωλΛฉ͘ͱɻɻɻ
None
৫ͷͨΊͷഉଞతͳߦҝͷݮ Β͠ํ • ͯ͢ͷεςʔΫϗϧμʔ͕Ͳ͏ײ͡Δ͔Λ ૾ͯ͠ɺͦͷίΞόϦϡʔΛఆٛ͠ͳ͍͞ • ܭଌͰ͖ͳ͍ͷޭ͔ͨ͠Ͳ͏͔ଌΕͣɺ ͦΕʹΑͬͯݕূͰ͖ͳ͍ͷͰɺܭଌͯ͠ς ετ͠ͳ͍͞ •
ςετͨ͠Βͦͷ݁ՌΛඪ४Խͯ͠Ίͳ͍͞
৫ͷͨΊͷഉଞతͳߦҝͷݮ Β͠ํ • ૾͢Δ͜ͱ • ఆٛ͢Δ͜ͱ • ద༻͢Δ͜ͱ • ݕূ͢Δ͜ͱ
• ඪ४Խ͢Δ͜ͱ • ͜ΕΒΛܧଓతʹ࣮ࢪ͢Δ͜ͱ
None
https://ejzimmer.github.io/event-loop-talk/#/
Event Loop ͬͯΑ͘ฉ͚͘Ͳ Կʁ • TaskͷཧͷͨΊͷΩϡʔʢΈ͍ͨͳΜʣ • TaskͬͯͳʹΑʁ document.body.addEventListener('keydown', (event)
=> { if (event.key === 'PageDown') { location.href = "/#/36"; } }); ͜͜ͷ͜ͱ
Event Loop ͬͯΑ͘ฉ͚͘Ͳ Կʁ
Event Loop ͬͯΑ͘ฉ͚͘Ͳ Կʁ • TaskͷཧͷͨΊͷΩϡʔʢΈ͍ͨͳΜʣ • TaskͬͯͳʹΑʁ document.body.addEventListener('keydown', (event)
=> { if (event.key === 'PageDown') { location.href = "/#/36"; } }); ͜͜ͷ͜ͱ
Event Loop ͬͯΑ͘ฉ͚͘Ͳ Կʁ • Πϕϯτϧʔϓʹ͍ͭͯղઆͯ͠Έͨ • ࠷ۙTaskͱ͍ͬͯsimpleͰͳ͘ɺPromise ͷmicrotaskwebworkerΛͬͨผεϨου ଘࡏ͢Δ
• Node.jsͷEventLoop·ͨಛత setImmediate process.nextTick ͕͋ͬͨΓɻ
None
None
None
None
None
TCPͷղઆ • ΊͪΌͪ͘Ό໘ന͔ͬͨɻ • Slow Start ͷղઆͱͯ͜͠ΕҎ্ແ͍͘Β͍ຊ࣭ Λଊ͑ͯͨɻ • Head
of Line blocking ΛύϯέʔΩΛ৯͗ͯ͢ ৯ΒΕͳ͘ͳͬͨঢ়ଶͱදݱͯͨ͠ͷਧ͍ͨ • രস͠ͳ͕ΒݟΕͨؾ͕͢Δɻ
None