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
Scaling React Applications
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Stepan Parunashvili
June 02, 2016
Technology
110
2
Share
Scaling React Applications
On Scaling React Applications, at Applicative 2016
Stepan Parunashvili
June 02, 2016
More Decks by Stepan Parunashvili
See All by Stepan Parunashvili
Universal Applications
stopachka
0
88
Engineering Growth
stopachka
0
67
Universal Applications
stopachka
1
98
ES2015 & React
stopachka
0
70
ES2015
stopachka
0
74
Other Decks in Technology
See All in Technology
エンタープライズの厳格な制約を開発者に意識させない:クラウドネイティブ開発基盤設計/cloudnative-kaigi-golden-path
mhrtech
0
370
大学職員のための生成AI最前線 :最前線を、AIガバナンスとして読み直すためのTips
gmoriki
2
3.9k
鹿野さんに聞く!CSSの最新トレンド Ver.2026
tonkotsuboy_com
6
2.6k
GKE Agent SandboxでAIが生成したコードを 安全に実行してみた
lamaglama39
0
220
【技術書典20】OpenFOAM(自宅で深める流体解析)流れと熱移動(2)
kamakiri1225
0
380
『生成AI時代のクレデンシャルとパーミッション設計 — Claude Code を起点に』の執筆企画
takuros
3
2.3k
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
200
データモデリング通り #5オンライン勉強会: AIに『ビジネスの文脈』を教え込むデータモデリング
datayokocho
0
210
「背中を見て育て」からの卒業 〜専門技術としてのテスト設計を軸に、品質保証のバトンを繋ぐ〜
nihonbuson
PRO
0
160
要件定義の精度を高めるための型と生成AIの活用 / Using Types and Generative AI to Improve the Accuracy of Requirements Definition
haru860
0
310
Purview 勉強会報告 Microsoft Purview 入門しようとしてみた
masakichixo
1
120
ブラウザの投機的読み込みと投機ルールAPIを理解し、Webサービスのパフォーマンスを最適化する
shuta13
3
300
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
3
350
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.7k
How GitHub (no longer) Works
holman
316
150k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
390
Rails Girls Zürich Keynote
gr2m
96
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Thoughts on Productivity
jonyablonski
76
5.1k
Visualization
eitanlees
150
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Transcript
On Scaling React Applications Stepan Parunashvili 1
@stopachka www.stepanp.com 2
3 Scaling React Applications?
4 Scaling React Applications?
Scaling Your Team 5
6 # engineers output
7 # engineers output
8 # engineers output
9 # engineers output
Scaling Your Product 10
11 LOC # features
12 LOC # features rewrite
13 LOC # features
Goal: Scale Frontend 14
Why React? 15
16
...2015 17
...2014 18
...2013 19
...2012 20
...2011 21
2010 22
23
24 v0.1.0
25
26
27
28
29
30
increment append, decrement, replace 31
Now... 32
33
34
35
36
37
Problem: Keep the DOM in Sync 38
39
40
41
42
2011... 43
2012... 44
2013 45
46
47
48
declarative 49
50
composable 51
52
cohesive 53
54
declarative composable cohesive 55
What's next? 56
57
58
59
How do we do this? 60
Container Components 61
62 props @huang47
63 FooContainer
64 FooContainer Foo
65 FooContainer Foo handle data ui logic
66
Why? 67
68 Container Components • manage data
69 Container Components • manage data • ui logic
70 Container Components • manage data • ui logic •
reusable
71 Container Components • manage data • ui logic •
reusable • tests needed
72 UI Components • manage data • ui logic •
reusable • tests needed
73
74
75
76
77
78
79
80
timeout/retry 81
timeout/retry batch 82
timeout/retry batch filter params 83
84
85
86
87
88
89
90
91
Expose UI Components 92
93
94
95 UI Component
96 container container
* Works best with Redux 97
98
99
100 Containers to Manage Data Expose UI Components Keep a
single app state
What's next? 101
102
103 Step: Action Fired
104 Step: Diff Virtual DOM
105 Step: Apply changeset
106 Step: Diff Virtual DOM
107 Step: Diff Virtual DOM :0
None
None
None
None
None
1 year later... 113
1 year later... 114
None
ImmutableJS 116
None
None
None
None
None
Structural Sharing 122
None
None
Robust by Default 125
None
None
None
None
None
Records 131
None
None
None
None
What's next? 136
HOC 137
None
Implicit Contracts 139
Implicit Contracts State Clashes 140
Implicit Contracts State Clashes Performance Issues 141
None
None
Push difficulties towards the core 144
On JS Fatigue 145
Stick to Principles 146
Could this be a paradigm shift? 147
Could this level the playing field? 148
Could this reduce iteration time? 149
For now, 150
Use Container Components Use Immutable Data Use FP 151
Bonus: relay, redux-saga css-modules 152
Thank you :) 153