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
リアーキテクトと開発生産性について
yosuke_furukawa
PRO
22
8.1k
JavaScript Server Runtime History
yosuke_furukawa
PRO
8
2.8k
tc39 x jsconf.jp Panel Discussion
yosuke_furukawa
PRO
0
980
フロントエンドの開発生産性とは
yosuke_furukawa
PRO
16
9.6k
7 principles for rich web apps And how next.js achieves these principles
yosuke_furukawa
PRO
6
2.2k
Deep Dive International Conference
yosuke_furukawa
PRO
0
98
フロントエンドのDXと今後
yosuke_furukawa
PRO
6
3.8k
フロントエンドリアーキテクトの話
yosuke_furukawa
PRO
18
8.9k
new_urlparser.pdf
yosuke_furukawa
PRO
1
430
Other Decks in Programming
See All in Programming
PostmanでAPIの動作確認が楽になった話
h455h1
0
110
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
850
Ruby Pattern Matching
bkuhlmann
0
920
Front-end application development, Symfony-style(s)
dunglas
2
1.9k
Elm 0.19.0 Changes
bkuhlmann
0
480
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
1
300
今、知っておきたい! 生成AIエージェントの世界
elith
3
340
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
210
Java 22 Overview
kishida
1
160
Folding Cheat Sheet #3
philipschwarz
PRO
0
110
"config" ってなんだ? / What is "config"?
okashoi
0
210
코틀린으로 멀티플랫폼 만들기
pangmoo
0
120
Featured
See All Featured
Unsuck your backbone
ammeep
662
57k
What's new in Ruby 2.0
geeforr
336
31k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
272
13k
Code Review Best Practice
trishagee
54
15k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
225
51k
Being A Developer After 40
akosma
56
580k
Designing Experiences People Love
moore
135
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
29
6k
Facilitating Awesome Meetings
lara
40
5.6k
Debugging Ruby Performance
tmm1
69
11k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
15
1.4k
The Power of CSS Pseudo Elements
geoffreycrofte
58
5k
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