Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
I Hated React too Soon, Reconciled with It Quic...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tugberk Ugurlu
January 20, 2017
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
I Hated React too Soon, Reconciled with It Quickly Afterwards
NDC London 2017 (London, UK)
Tugberk Ugurlu
January 20, 2017
More Decks by Tugberk Ugurlu
See All by Tugberk Ugurlu
Redis Cluster for Write Intensive Workloads
tourismgeek
1
21k
Designing Towards Event Sourcing
tourismgeek
1
21k
Essentials for Building and Leading Highly Effective Development Teams
tourismgeek
0
620
Let the Uncertainty be Your Friend: Finding Your Path in a Wiggly Road
tourismgeek
0
690
Benefits of Managed Kubernetes in Azure (Azure Container Service, AKS)
tourismgeek
0
620
Levelling up to Become a Technical Lead
tourismgeek
2
28k
Benefits of Managed Kubernetes in Azure (Azure Container Service, AKS)
tourismgeek
0
290
GraphQL
tourismgeek
0
280
ASP.NET MVC 5 vs ASP.net Web API 2 vs ASP.NET Core MVC 1
tourismgeek
1
1.1k
Other Decks in Programming
See All in Programming
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.4k
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
130
SREの越境 / SRE Collaboration
y0hgi
2
300
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
270
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
390
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
340
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
310
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
620
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
120
ジョジョの世界をXRで再現する
mofurune
0
110
R8 の設定見直しでアプリサイズ削減
andpad
0
140
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
350
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
710
Making Projects Easy
brettharned
120
6.8k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
210
Typedesign – Prime Four
hannesfritz
42
3.2k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Become a Pro
speakerdeck
PRO
31
6.3k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
A Soul's Torment
seathinner
8
3.7k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
380
How STYLIGHT went responsive
nonsquared
100
6.3k
Statistics for Hackers
jakevdp
799
230k
Transcript
I Hated React too Soon, Reconciled with It Quickly Afterwards
Tugberk Ugurlu Software Engineer @ Redgate @tourismgeek http://tugberkugurlu.com https://flic.kr/p/cQRAYC
https://flic.kr/p/e6nUW Aim of the Talk
https://flic.kr/p/t3H9A Once upon a time…
https://flic.kr/p/cEJMpW
https://flic.kr/p/faTRHU
https://flic.kr/p/7yqhJt JSX!
https://flic.kr/p/6sZ7Kp
https://twitter.com/tourismgeek/status/637380542191796224
https://twitter.com/tourismgeek/status/637380542191796224
None
https://flic.kr/p/6doME6
None
None
TODO: WHY! https://flic.kr/p/9yaos5
React is Simple Give it an input, get an output
React does one thing and it does it well It has a small public API surface area
https://twitter.com/thomasfuchs/status/708675139253174273
React is Simple “React applications start complex but maintenance complexity
of React applications doesn’t grow much as your applications grow
Its declarative and predictable nature High level of transferable knowledge
Learn once, write everywhere
React shines with Redux
What is Redux? “Redux is a state management library for
JavaScript applications, inspired by Flux and Elm.
What is Redux? (in human English) “Kind of like event
sourcing and pub/sub, with a fancier name.
The Problem
Redux Store
The Meat of Redux Actions Reducers Store
The Meat of Redux Actions Actions describe updates
The Meat of Redux Reducers Reducers apply updates based on
actions
The Meat of Redux Store Store is where everything comes
together and it acts as the source of truth for the application state
Simple Example: Counter
React Usage (Manual Way)
Usage with React
The Whole Idea Data Down Actions Up http://www.samselikoff.com/blog/data-down-actions-up/
The Whole Idea You have one state, one state only
for your entire application! https://flic.kr/p/9QQHW
The Whole Idea You never mutate the state! https://flic.kr/p/pzf72v
But why Redux and not flux, mobx, marty? https://flic.kr/p/NzcYg
It boils down to scientific reasons https://flic.kr/p/byrtr Well... NO!
Widely Adopted
Widely Adopted
Rich Docs and Resources http://redux.js.org/
Rich Ecosystem https://www.npmjs.com/search?q=redux
Rich Ecosystem http://redux-form.com/6.0.0-rc.5
Boost on Happiness with React and Redux https://flic.kr/p/99iZtS
https://twitter.com/dan_abramov/status/780475600716857344
https://github.com/facebook/react-devtools React Developer Tools
Redux Developer Tools https://github.com/gaearon/redux-devtools https://github.com/zalmoxisus/redux-devtools-extension
Redux Logger npm install redux-logger https://github.com/evgenyrodionov/redux-logger
Redux Immutable State Checker npm install redux-immutable-state-invariant https://github.com/leoasis/redux-immutable-state-invariant
Redux Undo npm install redux-undo https://github.com/omnidan/redux-undo
https://github.com/joshwcomeau/redux-vcr Redux VCR
https://twitter.com/tourismgeek/status/767629396916178947
https://egghead.io/courses/getting-started-with-redux Some Resources
https://egghead.io/courses/building-react-applications-with-idiomatic-redux Some Resources
Some Resources • My Blog Post on React: http://bit.ly/2jwicka •
React Docs: https://facebook.github.io/react/docs/hello-world.html • Redux Docs: http://redux.js.org • The Redux Journey at react-europe 2016: http://bit.ly/2bJEZEP • Redux Usage with React: http://bit.ly/2bdAiVO • Presentational and Container Components: http://bit.ly/2bM3DpO • (Pluralsight Course) Building Applications with React and Redux in ES6: http://bit.ly/2bRAQ4T • Thinking in React: https://facebook.github.io/react/docs/thinking-in-react.html • React Reconciliation: https://facebook.github.io/react/docs/reconciliation.html • Influencers of Redux: https://github.com/reactjs/redux#influences • Why did you reinvented Event Sourcing?: https://github.com/gaearon/ama/issues/110
99% Boost on Dev Happiness npm install redux-logger https://github.com/evgenyrodionov/redux-logger https://twitter.com/tourismgeek/status/637380542191796224
Redux Internals: It’s Freakin Tiny!