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
Bundle Side Optimization in Future JavaScript -...
Search
Yuku Kotani
November 27, 2021
Programming
2
3k
Bundle Side Optimization in Future JavaScript - JSConf JP 2021
JSConf JP 2021
Yuku Kotani
November 27, 2021
Tweet
Share
More Decks by Yuku Kotani
See All by Yuku Kotani
AI Coding Agent Enablement - エージェントを自走させよう
yukukotani
14
6.4k
Expoによるアプリ開発の現在地とReact Server Componentsが切り開く未来
yukukotani
3
420
React 19でお手軽にCSS-in-JSを自作する
yukukotani
5
740
僕が思い描くTypeScriptの未来を勝手に先取りする
yukukotani
11
3.1k
Web技術を駆使してユーザーの画面を「録画」する
yukukotani
14
7.5k
Capacitor製のWebViewアプリからReact Native製のハイブリッドアプリへ
yukukotani
5
1.5k
Real World Type Puzzle and Code Generation
yukukotani
4
910
Kuma UI が提唱する Hybrid Approach CSS-in-JS の仕組み
yukukotani
2
560
GraphQLスキーマ設計の勘所
yukukotani
42
18k
Other Decks in Programming
See All in Programming
2ヶ月で生産性2倍、お買い物アプリ「カウシェ」4チーム同時改善の取り組み
ike002jp
1
110
状態と共に暮らす:ステートフルへの挑戦
ypresto
3
1.1k
fieldalignmentから見るGoの構造体
kuro_kurorrr
0
130
Making TCPSocket.new "Happy"!
coe401_
1
2.9k
flutter_kaigi_mini_4.pdf
nobu74658
0
140
ASP.NETアプリケーションのモダナイゼーションについて
tomokusaba
0
240
Bedrock × Confluenceで簡単(?)社内RAG
iharuoru
1
110
Serving TUIs over SSH with Go
caarlos0
0
540
「理解」を重視したAI活用開発
fast_doctor
0
270
VitestのIn-Source Testingが便利
taro28
8
2.4k
Contribute to Comunities | React Tokyo Meetup #4 LT
sasagar
0
590
RuboCop: Modularity and AST Insights
koic
2
2.3k
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Raft: Consensus for Rubyists
vanstee
137
6.9k
Bash Introduction
62gerente
611
210k
Scaling GitHub
holman
459
140k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Into the Great Unknown - MozCon
thekraken
38
1.7k
Producing Creativity
orderedlist
PRO
344
40k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
BBQ
matthewcrist
88
9.6k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Transcript
Bundle Side Optimization in Future JavaScript JSConf JP 2021 Yuku
Kotani (@MonchiFC)
2 Yuku Kotani (@MonchiFC) - Software Engineer @ Ubie Discovery
- AI https://ubie.app/ - TypeScript+Next.js / Kotlin+Spring Boot / GraphQL / Capacitor - Student (B3) @ - Blog https://yuku.dev 2
3 Web - - ECMAScript - - 3rd-party script
4 - (Dead Code Elimination) - (Mangling) - (Code Splitting)
- (Tree Shaking)
5 - (Dead Code Elimination) terser, Rollup - (Mangling) terser
- (Code Splitting) webpack, Rollup, Next.js, Nuxt - (Tree Shaking) webpack, Rollup
6 - (Dead Code Elimination) terser, Rollup - (Mangling) terser
- (Code Splitting) webpack, Rollup, Next.js, Nuxt - (Tree Shaking) webpack, Rollup
7 DDD
8 DDD
9 1st Approach: Dead Code Elimination
10 - - obj obj
11 TypeScript obj User obj isAdult getFullname getFullName
12 TS AST JavaScript TypeScript TS Compiler JS AST JavaScript
webpack JS AST DCE JavaScript terser JS ⾒
13 TS AST JavaScript TS Compiler JS AST JavaScript webpack
JS AST DCE JavaScript terser JS ⾒ TypeScript
14 TS AST JS JavaScript DCE SWC, Rome TypeScript
15 1 SWC Rome
16 2nd Approach: Tree Shaking
17 Tree Shaking JS/TS
18 Tree Shaking JS/TS A. - / `obj.method()` -
19
20 A. Bind-this operator
21 Bind-this operator func.bind() func.call() Stage-1 this JavaScript Bind Operator
https://yuku.dev/articles/2021-11-11/javascript-bind-this-op
22 Bind-this operator TypeScript This Parameter ⾒ This :: This
Parameter
23 2 ECMAScript
24 - class-based OOP - SWC Rome - ECMAScript JS-way
https://meety.net/matches/SwBiENIgCVFp