REDUX
BIG LEAP OF JAVASCRIPT APP DEVELOPMENT
SUPASATE CHOOCHAISRI #BARCAMP BANGKHEN 22 NOV 2015
#BARCAMP BANGKHEN 2015
/ME
▸ Supasate Choochaisri (Ping)
Co-founder Larngear Technology, Streaming, Gad-zilla
@kaizerwing
kaizerwing
supasate
#BARCAMP BANGKHEN 2015
WE ARE IN THE MV* WORLD
MVC MVP MVVM MV*
#BARCAMP BANGKHEN 2015
MVC WAS INTRODUCED SINCE 1979
SMALLTALK-76, SMALLTALK-80
Trygve Reenskaug
Recommended Reading : “GUI Architectures”, http://martinfowler.com/eaaDev/uiArchs.html
#BARCAMP BANGKHEN 2015
IS MVC/MV* GOOD?
#BARCAMP BANGKHEN 2015
IS MVC/MV* GOOD?
still good in several cases
#BARCAMP BANGKHEN 2015
MV* PROBLEMS
▸ two-way data direction
Hacker Way: Rethinking Web App Development at Facebook https://www.youtube.com/watch?v=nYkdrAPrdcw
#BARCAMP BANGKHEN 2015
MV* PROBLEMS
▸ two-way data direction
▸ hard to trace data flow and predict app state
Hacker Way: Rethinking Web App Development at Facebook https://www.youtube.com/watch?v=nYkdrAPrdcw
#BARCAMP BANGKHEN 2015
2014
FACEBOOK
INTRODUCED
FLUX
#BARCAMP BANGKHEN 2015
FLUX STRUCTURE AND DATA FLOW
http://facebook.github.io/flux/docs/overview.html
#BARCAMP BANGKHEN 2015
FLUX STRUCTURE AND DATA FLOW
http://staltz.com/unidirectional-user-interface-architectures.html
#BARCAMP BANGKHEN 2015
2015
@DAN_ABRAMOV
INTRODUCED
REDUX
#BARCAMP BANGKHEN 2015
REDUX (REDUCE + FLUX)
http://staltz.com/unidirectional-user-interface-architectures.html
#BARCAMP BANGKHEN 2015
3 PRINCIPLES OF REDUX
▸ Single source of truth
▸ State of whole app in single store
▸ State is read only
▸ No view, network callback will write state directly
▸ (State) mutations are written as pure functions (reducers)
▸ Reducer is (state, action) => new state
#BARCAMP BANGKHEN 2015
DEMO
https://github.com/supasate/redux-voting
#BARCAMP BANGKHEN 2015
REDUX THE COOL PARTS
▸ Predictable state
▸ Nested reducers composition
(like nested React components)
▸ Live code editing
▸ Time travel debugging
▸ Easy to test
#BARCAMP BANGKHEN 2015
REDUX THE COOL PARTS
Thanks to
▸ Webpack Hot Module Reloading (HMR)
▸ Separate state (single store) from functions (reducers)
▸ Immutable state
▸ Pure functions
#BARCAMP BANGKHEN 2015
REDUX INSPIRATION
▸ CQRS, Event Sourcing
▸ Elm architecture (https://github.com/evancz/elm-architecture-tutorial)
#BARCAMP BANGKHEN 2015
REDUX INSPIRATION
▸ CQRS, Event Sourcing
▸ Elm architecture (https://github.com/evancz/elm-architecture-tutorial)
http://elm-lang.org/examples/mario
#BARCAMP BANGKHEN 2015
REDUX IS FUTURE
#BARCAMP BANGKHEN 2015
THANK YOU
@kaizerwing
kaizerwing
supasate

More Related Content

PPTX
How To Win a Hackaton - My thoughts on the WebGeek Devcup
PDF
Dodging Roadblocks on the way of becoming an Amazing developer
PDF
Building Real PWA
PDF
Progressive Web Apps 1. keynote
PDF
BETTER THAN GOOGLE
PDF
Build an App with JavaScript & jQuery
PDF
Stop That: Common Technical SEO Problems & How to Fix Them
PDF
Automating all the wrong things - You Gotta Love Frontend Keynote
How To Win a Hackaton - My thoughts on the WebGeek Devcup
Dodging Roadblocks on the way of becoming an Amazing developer
Building Real PWA
Progressive Web Apps 1. keynote
BETTER THAN GOOGLE
Build an App with JavaScript & jQuery
Stop That: Common Technical SEO Problems & How to Fix Them
Automating all the wrong things - You Gotta Love Frontend Keynote

What's hot (18)

PDF
WebGeek AppNimbus (Nikko Bautista)
PPTX
GDG Ibadan #pwa
ODP
Ubuntu and the opportunistic programming.
PPTX
Vine and Other Video Content Creators (Sept 2014)
PDF
Progressive Web Apps
PDF
App Smashing Rock Star Saugatuck
PPTX
AngularJS to React
PPTX
Java Clients and JavaFX - Presented to LJC
PDF
Drupalcon Dublin 2016 Frontend recap
PDF
Virtual event introduction to atlas
PDF
A-Team-Vipul
PDF
Eclipse tutorial for beginners
PDF
Automating with operators - FossAsia Summit 2019
PPTX
Amped for AMP at Pubcon Las Vegas 2016
PDF
The Big 3: Essential Plugins for Wordpress Newbs
PPTX
13 mistakes of a developer
PDF
Git - Do's and Dont's for Good Development practice - Part 1
PPTX
Quick prototyping apps using JS - Ciklum, Vinnitsa
WebGeek AppNimbus (Nikko Bautista)
GDG Ibadan #pwa
Ubuntu and the opportunistic programming.
Vine and Other Video Content Creators (Sept 2014)
Progressive Web Apps
App Smashing Rock Star Saugatuck
AngularJS to React
Java Clients and JavaFX - Presented to LJC
Drupalcon Dublin 2016 Frontend recap
Virtual event introduction to atlas
A-Team-Vipul
Eclipse tutorial for beginners
Automating with operators - FossAsia Summit 2019
Amped for AMP at Pubcon Las Vegas 2016
The Big 3: Essential Plugins for Wordpress Newbs
13 mistakes of a developer
Git - Do's and Dont's for Good Development practice - Part 1
Quick prototyping apps using JS - Ciklum, Vinnitsa

Similar to Redux: Big Leap of JavaScript App Development (20)

PDF
Why progressive web apps for word press wc-ahemdabad
PDF
Freeing the World from Slow: How Service Virtualization and the Concept of S....
PDF
Webinar: Next Generation, Data-Driven Plugin and Theme Development
PDF
WordBench Kobe #76 @078kobe
PDF
Building Resilient Cloud Native Apps in GKE
PDF
Introduction of React.js
PDF
Lean frontend development
PDF
Progressive web application considerations before implementing magento pwa ...
PDF
A Week in the Life (of DevOps)
PDF
SEO for PWAs #PubCon
PDF
Serverless and the Way Forward
PDF
Boost your productivity for free!
PDF
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
PDF
[Webinar] Expanding future mobile commerce with Magento PWA Studio
PDF
Progressive Web Apps: Why you want one & how to optimize them #SMSSYD19
PDF
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
PPTX
Google Analytics Bag O' Tricks
PDF
URL Funnel Optimisation: How to get budget for SEO - Michal Magdziarz, CEO, D...
PPTX
SPSVB 2019 - Pour first Power Apps in 30 minutes
PDF
How We Make Apps And Services
Why progressive web apps for word press wc-ahemdabad
Freeing the World from Slow: How Service Virtualization and the Concept of S....
Webinar: Next Generation, Data-Driven Plugin and Theme Development
WordBench Kobe #76 @078kobe
Building Resilient Cloud Native Apps in GKE
Introduction of React.js
Lean frontend development
Progressive web application considerations before implementing magento pwa ...
A Week in the Life (of DevOps)
SEO for PWAs #PubCon
Serverless and the Way Forward
Boost your productivity for free!
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
[Webinar] Expanding future mobile commerce with Magento PWA Studio
Progressive Web Apps: Why you want one & how to optimize them #SMSSYD19
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
Google Analytics Bag O' Tricks
URL Funnel Optimisation: How to get budget for SEO - Michal Magdziarz, CEO, D...
SPSVB 2019 - Pour first Power Apps in 30 minutes
How We Make Apps And Services

Recently uploaded (20)

PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PPTX
Information-Technology-in-Human-Society.pptx
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PDF
SaaS reusability assessment using machine learning techniques
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
Streamline Vulnerability Management From Minimal Images to SBOMs
PDF
Decision Optimization - From Theory to Practice
PDF
Identification of potential depression in social media posts
PDF
Altius execution marketplace concept.pdf
PPTX
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
Advancing precision in air quality forecasting through machine learning integ...
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
giants, standing on the shoulders of - by Daniel Stenberg
A symptom-driven medical diagnosis support model based on machine learning te...
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
Information-Technology-in-Human-Society.pptx
Introduction to MCP and A2A Protocols: Enabling Agent Communication
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
Build Real-Time ML Apps with Python, Feast & NoSQL
EIS-Webinar-Regulated-Industries-2025-08.pdf
SaaS reusability assessment using machine learning techniques
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
Streamline Vulnerability Management From Minimal Images to SBOMs
Decision Optimization - From Theory to Practice
Identification of potential depression in social media posts
Altius execution marketplace concept.pdf
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
Advancing precision in air quality forecasting through machine learning integ...
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
A hybrid framework for wild animal classification using fine-tuned DenseNet12...

Redux: Big Leap of JavaScript App Development