SlideShare a Scribd company logo
Robust apps with 
React.js 
MAKSYM KLYMYSHYN @maxmaxmaxmax 
CTO GVMachines Inc.
TOC 
TOC 
‣ Typical mistakes 
‣ Data flow 
‣ React.js basics 
‣ Flux
Typical mistakes
Typical mistakes 
It’s not about stack 
‣ Most of application have sporadic data flow and 
tightly coupled components 
‣ It’s quite hard to avoid it and meet deadlines 
simultaneously 
‣ Only when you have really well formed team and 
strong architect 
‣ So it’s not about Backbone, Angular or any other 
frameworks
It’s all about tightly coupled 
application components
Typical mistakes 
Coupled code 
‣ Easy to write – you do not need to think a lot about 
design 
‣ Good for quick bootstrap because you care only 
about domain 
‣ Not require any deep knowledge about 
programming science and apps design
Typical mistakes 
Coupling disadvantages 
‣ A change in one module usually forces a ripple 
effect of changes in other modules. 
‣ Assembly of modules might require more effort 
and/or time due to the increased inter-module 
dependency. 
‣ A particular module might be harder to reuse and/ 
or test because dependent modules must be 
included.
But… 
Typical mistakes 
‣ some frameworks designed to provide more ways 
to communicate between components 
‣ So it’s easier to make coupled things 
‣ And increase coupling between components 
‣ Which increase probability to introduce new bugs 
during change one of them
Cohesion 
Typical mistakes 
‣ Reduce module complexity 
‣ Increase system maintainability 
‣ Increase module reusability
I believe, 
that if framework allow to make coupled things, 
they will be coupled.
Coupling correlates with cohesion 
and 
vice versa
Data flow
Data flow 
What’s the deal? 
‣ Read and write from/to database 
‣ Call external API 
‣ React on external events 
‣ Messages exchange/queues
Data flow 
It’s all about data flow
Robust web apps with React.js
Data flow 
Most of modern applications 
consist from message queues of 
different types and forms.
React.js basics 
React.js basics
React.js basics 
A JavaScript library for building UI 
Wikipedia
What’s inside React.js 
Components 
‣ Object-oriented widgets definition 
‣ Nested widgets support 
‣ HTML-Like Widget DOM definition (VirtualDOM) 
‣ State spreading to nested components - one way 
reactive data flow 
‣ Optimised rendering to the real DOM tree 
‣ Two-way data binding helpers
What’s inside React.js 
Widgets definition
JSX 
What’s inside React.js 
‣ To simplify Virtual DOM definition added html-subset 
language called JSX 
‣ JSX allow to define Widget DOM piece directly 
within your JavaScript file 
‣ JSX convert for production into raw JavaScript with 
preprocessor
What’s inside React.js 
Widgets definition
What’s inside React.js 
Nested widgets & state spread
What’s inside React.js 
Virtual DOM 
‣ Modification within real DOM tree is very slow 
‣ To speed up things created Virtual DOM which 
consist from lightweight JavaScript objects which 
represent Widgets DOM tree 
‣ When state changed Virtual and real DOM trees 
are compared and real DOM modified only where 
it’s required
What’s inside React.js
What’s inside React.js 
‣ Complexity to compare two trees is O(n^3) 
complexity 
‣ React.js managed to turn O(n^3) problem into 
linear O(n) 
‣ So it’s really fast.
What’s inside React.js 
Virtual DOM
React.js basics 
Simply express how your app should 
look at any given point in time, and React 
will automatically manage all UI updates 
when your underlying data changes. 
React.js website
Flux 
FLUX Architecture
FLUX 
React.js is a JavaScript library for building UI 
Wikipedia
FLUX 
FLUX is application architecture for building 
User Interfaces 
Flux website
FLUX
FLUX 
FLUX 
‣ Data flows in a single direction (cycle) 
‣ Dispatcher - hub to manage all data flow 
‣ Stores - contain application state and logic 
‣ Views - representation of state within Stores, listen 
to events from depend stores 
‣ Actions - dispatcher helper methods
FLUX Store and View 
Store and View
FLUX 
Events Dependency
Conclusion
Conclusion 
‣ React.js is not about right thing, React.js is all about 
data flow 
‣ You’ll start from pattern which accurately provide 
abilities to deeply understand flow within your app 
‣ It’s easier to not make mistakes within your app 
architecture 
‣ Immutability helpers help you develop !
Thanks! 
React.js 
@maxmaxmaxmax

More Related Content

PDF
Breaking the Server-Client Divide with Node.js and React
PPTX
A Brief Introduction to React.js
PPT
React js
PDF
Introduction to ReactJS
PDF
React.js in real world apps.
PDF
React JS - Introduction
PDF
Introduction to react
PPTX
React js Online Training
Breaking the Server-Client Divide with Node.js and React
A Brief Introduction to React.js
React js
Introduction to ReactJS
React.js in real world apps.
React JS - Introduction
Introduction to react
React js Online Training

What's hot (20)

PPT
Starting with Reactjs
PPTX
Introduction to ReactJs & fundamentals
PDF
All the reasons for choosing react js that you didn't know about - Avi Marcus...
PPSX
React introduction
PPTX
001. Introduction about React
PDF
An introduction to React.js
PDF
Learning React - I
PPTX
Its time to React.js
PDF
React Fundamentals - Jakarta JS, Apr 2016
PDF
PPTX
Reactjs
PPTX
ReactJS.NET - Fast and Scalable Single Page Applications
PDF
How to Redux
PDF
Introduction to ReactJS
PPTX
React JS: A Secret Preview
PPTX
PPTX
Introduction to react js
PDF
Introduction to React JS
PPTX
Introduction to react_js
PPT
IBM and Node.js - Old Doge, New Tricks
Starting with Reactjs
Introduction to ReactJs & fundamentals
All the reasons for choosing react js that you didn't know about - Avi Marcus...
React introduction
001. Introduction about React
An introduction to React.js
Learning React - I
Its time to React.js
React Fundamentals - Jakarta JS, Apr 2016
Reactjs
ReactJS.NET - Fast and Scalable Single Page Applications
How to Redux
Introduction to ReactJS
React JS: A Secret Preview
Introduction to react js
Introduction to React JS
Introduction to react_js
IBM and Node.js - Old Doge, New Tricks
Ad

Viewers also liked (20)

PDF
React & Redux
PDF
Building React Applications with Redux
PPTX
Unit testing with Jasmine
PPTX
React + Redux + TypeScript === ♥
PDF
React.js: The hottest JS lib for building UIs
PPTX
React, Flux y React native
PDF
React – ¿Qué es React.js?
PDF
Introducción al ecosistema de React.js
PPTX
Modular development with redux
PPTX
The redux saga begins
PDF
The Road To Redux
PDF
Let's Redux!
PPTX
React and Flux life cycle with JSX, React Router and Jest Unit Testing
PPTX
ABR Algorithms Explained (from Streaming Media East 2016)
PDF
Game of Frameworks - GDG Cáceres #CodeCC
PDF
RxJS + Redux + React = Amazing
PDF
Nodejs Explained with Examples
PPTX
Introduction to Node.js
PPTX
React + Redux Introduction
PDF
React JS and why it's awesome
React & Redux
Building React Applications with Redux
Unit testing with Jasmine
React + Redux + TypeScript === ♥
React.js: The hottest JS lib for building UIs
React, Flux y React native
React – ¿Qué es React.js?
Introducción al ecosistema de React.js
Modular development with redux
The redux saga begins
The Road To Redux
Let's Redux!
React and Flux life cycle with JSX, React Router and Jest Unit Testing
ABR Algorithms Explained (from Streaming Media East 2016)
Game of Frameworks - GDG Cáceres #CodeCC
RxJS + Redux + React = Amazing
Nodejs Explained with Examples
Introduction to Node.js
React + Redux Introduction
React JS and why it's awesome
Ad

Similar to Robust web apps with React.js (20)

PDF
FRONTEND DEVELOPMENT WITH REACT.JS
PPTX
React js
PDF
React & Flux Workshop
PPTX
Rethinking Best Practices
PPTX
ReactJS Code Impact
PPTX
React.js at Cortex
PPTX
React JS - A quick introduction tutorial
PPTX
What is ReactJS?
PDF
Learning React js Learn React JS From Scratch with Hands On Projects 2nd Edit...
PPTX
React js for beginners
PDF
Intro to react_v2
PPTX
reactJS
PDF
Tech Talk on ReactJS
PDF
Why is React Development so in demand.pdf
PPTX
theory-slides-for react for beginners.pptx
PPT
Why should you use react js for web app development
PPTX
React_Complete.pptx
PDF
An Intense Overview of the React Ecosystem
PDF
From Back to Front: Rails To React Family
PDF
React + flux
FRONTEND DEVELOPMENT WITH REACT.JS
React js
React & Flux Workshop
Rethinking Best Practices
ReactJS Code Impact
React.js at Cortex
React JS - A quick introduction tutorial
What is ReactJS?
Learning React js Learn React JS From Scratch with Hands On Projects 2nd Edit...
React js for beginners
Intro to react_v2
reactJS
Tech Talk on ReactJS
Why is React Development so in demand.pdf
theory-slides-for react for beginners.pptx
Why should you use react js for web app development
React_Complete.pptx
An Intense Overview of the React Ecosystem
From Back to Front: Rails To React Family
React + flux

More from Max Klymyshyn (20)

PDF
Papers We Love Kyiv, July 2018: A Conflict-Free Replicated JSON Datatype
PDF
KharkivJS 2017: Коллаборативные системы и CRDT
PDF
OdessaJS 2017: Groupware Systems for fun and profit
PDF
PyCon Ukraine 2017: Operational Transformation
PDF
Communicating Sequential Processes (CSP) in JavaScript
PDF
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
PDF
Fighting async JavaScript (CSP)
PDF
React.js: Ускоряем UX/UI
PDF
KharkovPy #12: I/O in Python apps and smart logging (russian)
PDF
5 мифов о производительности баз данных и Python
PDF
Изоформные приложения на React.js
PDF
Изоморфный JavaScript (iForum 2015)
PDF
Трансдюсеры, CSP каналы, неизменяемые структуры данных в JavaScript
PDF
PiterPy 2015 - Трансдюсеры и Python
PDF
LvivJS 2014 - Win-win c React.js
PDF
Инновации и JavaScript
PDF
Odessapy2013 - Graph databases and Python
PDF
Angular.js - JS Camp UKraine 2013
PPT
Зачем читать чужой код?
PPT
AgileBaseCamp 2013 - Start Up and Get Done
Papers We Love Kyiv, July 2018: A Conflict-Free Replicated JSON Datatype
KharkivJS 2017: Коллаборативные системы и CRDT
OdessaJS 2017: Groupware Systems for fun and profit
PyCon Ukraine 2017: Operational Transformation
Communicating Sequential Processes (CSP) in JavaScript
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
Fighting async JavaScript (CSP)
React.js: Ускоряем UX/UI
KharkovPy #12: I/O in Python apps and smart logging (russian)
5 мифов о производительности баз данных и Python
Изоформные приложения на React.js
Изоморфный JavaScript (iForum 2015)
Трансдюсеры, CSP каналы, неизменяемые структуры данных в JavaScript
PiterPy 2015 - Трансдюсеры и Python
LvivJS 2014 - Win-win c React.js
Инновации и JavaScript
Odessapy2013 - Graph databases and Python
Angular.js - JS Camp UKraine 2013
Зачем читать чужой код?
AgileBaseCamp 2013 - Start Up and Get Done

Recently uploaded (20)

PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Digital Strategies for Manufacturing Companies
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
Transform Your Business with a Software ERP System
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Introduction to Artificial Intelligence
PDF
Nekopoi APK 2025 free lastest update
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
How to Choose the Right IT Partner for Your Business in Malaysia
Digital Strategies for Manufacturing Companies
Design an Analysis of Algorithms I-SECS-1021-03
Softaken Excel to vCard Converter Software.pdf
L1 - Introduction to python Backend.pptx
Operating system designcfffgfgggggggvggggggggg
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
Transform Your Business with a Software ERP System
PTS Company Brochure 2025 (1).pdf.......
Adobe Illustrator 28.6 Crack My Vision of Vector Design
ISO 45001 Occupational Health and Safety Management System
VVF-Customer-Presentation2025-Ver1.9.pptx
CHAPTER 2 - PM Management and IT Context
Introduction to Artificial Intelligence
Nekopoi APK 2025 free lastest update
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Wondershare Filmora 15 Crack With Activation Key [2025

Robust web apps with React.js

  • 1. Robust apps with React.js MAKSYM KLYMYSHYN @maxmaxmaxmax CTO GVMachines Inc.
  • 2. TOC TOC ‣ Typical mistakes ‣ Data flow ‣ React.js basics ‣ Flux
  • 4. Typical mistakes It’s not about stack ‣ Most of application have sporadic data flow and tightly coupled components ‣ It’s quite hard to avoid it and meet deadlines simultaneously ‣ Only when you have really well formed team and strong architect ‣ So it’s not about Backbone, Angular or any other frameworks
  • 5. It’s all about tightly coupled application components
  • 6. Typical mistakes Coupled code ‣ Easy to write – you do not need to think a lot about design ‣ Good for quick bootstrap because you care only about domain ‣ Not require any deep knowledge about programming science and apps design
  • 7. Typical mistakes Coupling disadvantages ‣ A change in one module usually forces a ripple effect of changes in other modules. ‣ Assembly of modules might require more effort and/or time due to the increased inter-module dependency. ‣ A particular module might be harder to reuse and/ or test because dependent modules must be included.
  • 8. But… Typical mistakes ‣ some frameworks designed to provide more ways to communicate between components ‣ So it’s easier to make coupled things ‣ And increase coupling between components ‣ Which increase probability to introduce new bugs during change one of them
  • 9. Cohesion Typical mistakes ‣ Reduce module complexity ‣ Increase system maintainability ‣ Increase module reusability
  • 10. I believe, that if framework allow to make coupled things, they will be coupled.
  • 11. Coupling correlates with cohesion and vice versa
  • 13. Data flow What’s the deal? ‣ Read and write from/to database ‣ Call external API ‣ React on external events ‣ Messages exchange/queues
  • 14. Data flow It’s all about data flow
  • 16. Data flow Most of modern applications consist from message queues of different types and forms.
  • 18. React.js basics A JavaScript library for building UI Wikipedia
  • 19. What’s inside React.js Components ‣ Object-oriented widgets definition ‣ Nested widgets support ‣ HTML-Like Widget DOM definition (VirtualDOM) ‣ State spreading to nested components - one way reactive data flow ‣ Optimised rendering to the real DOM tree ‣ Two-way data binding helpers
  • 20. What’s inside React.js Widgets definition
  • 21. JSX What’s inside React.js ‣ To simplify Virtual DOM definition added html-subset language called JSX ‣ JSX allow to define Widget DOM piece directly within your JavaScript file ‣ JSX convert for production into raw JavaScript with preprocessor
  • 22. What’s inside React.js Widgets definition
  • 23. What’s inside React.js Nested widgets & state spread
  • 24. What’s inside React.js Virtual DOM ‣ Modification within real DOM tree is very slow ‣ To speed up things created Virtual DOM which consist from lightweight JavaScript objects which represent Widgets DOM tree ‣ When state changed Virtual and real DOM trees are compared and real DOM modified only where it’s required
  • 26. What’s inside React.js ‣ Complexity to compare two trees is O(n^3) complexity ‣ React.js managed to turn O(n^3) problem into linear O(n) ‣ So it’s really fast.
  • 28. React.js basics Simply express how your app should look at any given point in time, and React will automatically manage all UI updates when your underlying data changes. React.js website
  • 30. FLUX React.js is a JavaScript library for building UI Wikipedia
  • 31. FLUX FLUX is application architecture for building User Interfaces Flux website
  • 32. FLUX
  • 33. FLUX FLUX ‣ Data flows in a single direction (cycle) ‣ Dispatcher - hub to manage all data flow ‣ Stores - contain application state and logic ‣ Views - representation of state within Stores, listen to events from depend stores ‣ Actions - dispatcher helper methods
  • 34. FLUX Store and View Store and View
  • 37. Conclusion ‣ React.js is not about right thing, React.js is all about data flow ‣ You’ll start from pattern which accurately provide abilities to deeply understand flow within your app ‣ It’s easier to not make mistakes within your app architecture ‣ Immutability helpers help you develop !