SlideShare a Scribd company logo
1 of 20
Download to read offline
Immutable
Performance
Randy Lien

@React.JS TW 第五次⼩小聚
About Me
• @randylien
• Front end developer
Agenda
• Immutable
• Performance
• Components Communication
• Conclusion
Functional
Programming
Why Immutable?
• Immutable data has no side effect!
• Shared mutable state is the root of all evil 

- Pete Hunt
• You will not get hurt by yourself or someone
Why Immutable? (cont.)
• Immutable.js is fast enough and memory
optimisation
• Why Om is faster ? Data or Value is immutable in
Clojure/ClojureScript
• Immutable + PureRenderMixin
Simple Made Easy
Performance
Performance
• Pure Component (prop & state)
• shouldComponentUpdate
• Don’t update when its the same
Performance (cont.)
• Container Component Pattern
• Container Component as Data Layer
• Data fetching
• Component is all about its behaviour
• Testing Container or Gallery Container
Components
Communication
How to Communicate
• Parent - Children
• Use Callbacks
• No relationship
• Global event hub
• Flux
• Codecademy
• Adapter, broadcast
• Channel (CSP)
• Cursor (react-cursor)

Conclusion
Conclusion
• Embracing Immutable data for the future (JavaScript)
development
• Componentize your User Interface
• Loose coupling your component
• Container Component
• General Component
• You can pick the suitable solution for your needs
Conclusion(cont.)
• Watch Simple made easy
• Try Clojure/ClojureScript
FAQ

More Related Content

What's hot

An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...
Steve Pember
 
Python simillar image search
Python simillar image searchPython simillar image search
Python simillar image search
Jernej Virag
 

What's hot (20)

An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...
 
ReactJS Code Impact
ReactJS Code ImpactReactJS Code Impact
ReactJS Code Impact
 
Fast end-to-end-tests
Fast end-to-end-testsFast end-to-end-tests
Fast end-to-end-tests
 
THE PLEASURES OF ON-PREM, TOMER GABEL
THE PLEASURES OF ON-PREM, TOMER GABELTHE PLEASURES OF ON-PREM, TOMER GABEL
THE PLEASURES OF ON-PREM, TOMER GABEL
 
C* Summit 2013: Eventual Consistency != Hopeful Consistency by Christos Kalan...
C* Summit 2013: Eventual Consistency != Hopeful Consistency by Christos Kalan...C* Summit 2013: Eventual Consistency != Hopeful Consistency by Christos Kalan...
C* Summit 2013: Eventual Consistency != Hopeful Consistency by Christos Kalan...
 
Sharing the pain using Protractor
Sharing the pain using ProtractorSharing the pain using Protractor
Sharing the pain using Protractor
 
Automated Performance Testing
Automated Performance TestingAutomated Performance Testing
Automated Performance Testing
 
Serverless testing-serverless-sydney-20181018
Serverless testing-serverless-sydney-20181018Serverless testing-serverless-sydney-20181018
Serverless testing-serverless-sydney-20181018
 
Improving Test Team Throughput via Architecture by Dustin Williams
Improving Test Team Throughput via Architecture by Dustin WilliamsImproving Test Team Throughput via Architecture by Dustin Williams
Improving Test Team Throughput via Architecture by Dustin Williams
 
Making a Mock by Kelsey Shannahan
Making a Mock by Kelsey ShannahanMaking a Mock by Kelsey Shannahan
Making a Mock by Kelsey Shannahan
 
Python simillar image search
Python simillar image searchPython simillar image search
Python simillar image search
 
What is this agile thing anyway
What is this agile thing anywayWhat is this agile thing anyway
What is this agile thing anyway
 
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
 
Strong Consistency in Databases. What does it actually guarantee? - Andy Goo...
 Strong Consistency in Databases. What does it actually guarantee? - Andy Goo... Strong Consistency in Databases. What does it actually guarantee? - Andy Goo...
Strong Consistency in Databases. What does it actually guarantee? - Andy Goo...
 
Reason React
Reason ReactReason React
Reason React
 
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
 
Going faster with kanban
Going faster with kanbanGoing faster with kanban
Going faster with kanban
 
Shifting is more than shifting left
Shifting is more than shifting leftShifting is more than shifting left
Shifting is more than shifting left
 
Test automation architecture. Advanced level
Test automation architecture. Advanced levelTest automation architecture. Advanced level
Test automation architecture. Advanced level
 
Actors: Not Just for Movies Anymore
Actors: Not Just for Movies AnymoreActors: Not Just for Movies Anymore
Actors: Not Just for Movies Anymore
 

Viewers also liked

Ellis Island History
Ellis Island HistoryEllis Island History
Ellis Island History
awltech
 
E Learner Platform 2 0
E Learner Platform 2 0E Learner Platform 2 0
E Learner Platform 2 0
Chip Huyen
 
The finanal project
The finanal projectThe finanal project
The finanal project
Peitung Wang
 
Gomezportfolio
GomezportfolioGomezportfolio
Gomezportfolio
bobbi
 
Preventing HIV/AIDS through Microeconomic Development
Preventing HIV/AIDS through Microeconomic DevelopmentPreventing HIV/AIDS through Microeconomic Development
Preventing HIV/AIDS through Microeconomic Development
katejongbloed
 
מניות והטבות
מניות והטבותמניות והטבות
מניות והטבות
asafnovak
 
I Campeonato Inter Universidades de Futsal
I Campeonato Inter Universidades de FutsalI Campeonato Inter Universidades de Futsal
I Campeonato Inter Universidades de Futsal
Carlos Racchumi
 
设计师挖掘用户需求方法浅谈
设计师挖掘用户需求方法浅谈设计师挖掘用户需求方法浅谈
设计师挖掘用户需求方法浅谈
Angelina Hoa
 

Viewers also liked (20)

Ellis Island History
Ellis Island HistoryEllis Island History
Ellis Island History
 
Valentines day-
Valentines day-Valentines day-
Valentines day-
 
A Dynamic Voting Wiki Model Cw 8 3a
A Dynamic Voting Wiki Model Cw 8 3aA Dynamic Voting Wiki Model Cw 8 3a
A Dynamic Voting Wiki Model Cw 8 3a
 
E Learner Platform 2 0
E Learner Platform 2 0E Learner Platform 2 0
E Learner Platform 2 0
 
The finanal project
The finanal projectThe finanal project
The finanal project
 
Tutorial quiró
Tutorial quiróTutorial quiró
Tutorial quiró
 
Gomezportfolio
GomezportfolioGomezportfolio
Gomezportfolio
 
Twitter Final
Twitter FinalTwitter Final
Twitter Final
 
Preventing HIV/AIDS through Microeconomic Development
Preventing HIV/AIDS through Microeconomic DevelopmentPreventing HIV/AIDS through Microeconomic Development
Preventing HIV/AIDS through Microeconomic Development
 
Community Participation in Mobile Entertainment Services
Community Participation in Mobile Entertainment ServicesCommunity Participation in Mobile Entertainment Services
Community Participation in Mobile Entertainment Services
 
מניות והטבות
מניות והטבותמניות והטבות
מניות והטבות
 
Beginners' Guide to Zotero
Beginners' Guide to ZoteroBeginners' Guide to Zotero
Beginners' Guide to Zotero
 
Ochoa marmex
Ochoa marmexOchoa marmex
Ochoa marmex
 
I Campeonato Inter Universidades de Futsal
I Campeonato Inter Universidades de FutsalI Campeonato Inter Universidades de Futsal
I Campeonato Inter Universidades de Futsal
 
设计师挖掘用户需求方法浅谈
设计师挖掘用户需求方法浅谈设计师挖掘用户需求方法浅谈
设计师挖掘用户需求方法浅谈
 
Grassroutes For Manthan
Grassroutes For ManthanGrassroutes For Manthan
Grassroutes For Manthan
 
Pledge Drive Workshop
Pledge Drive WorkshopPledge Drive Workshop
Pledge Drive Workshop
 
Digital Art
Digital ArtDigital Art
Digital Art
 
0867968 Captured In The Eye
0867968 Captured In The Eye0867968 Captured In The Eye
0867968 Captured In The Eye
 
Php security
Php securityPhp security
Php security
 

Similar to Immutable, performance and components communication

Similar to Immutable, performance and components communication (20)

Основы функционального JS
Основы функционального JSОсновы функционального JS
Основы функционального JS
 
Avoiding test hell
Avoiding test hellAvoiding test hell
Avoiding test hell
 
Road Trip To Component
Road Trip To ComponentRoad Trip To Component
Road Trip To Component
 
Supervise your Akka actors
Supervise your Akka actorsSupervise your Akka actors
Supervise your Akka actors
 
Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component Pattern
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
 
CQRS + Event Sourcing
CQRS + Event SourcingCQRS + Event Sourcing
CQRS + Event Sourcing
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive ui
 
Better Page Object Handling with Loadable Component Pattern - SQA Days 20, Be...
Better Page Object Handling with Loadable Component Pattern - SQA Days 20, Be...Better Page Object Handling with Loadable Component Pattern - SQA Days 20, Be...
Better Page Object Handling with Loadable Component Pattern - SQA Days 20, Be...
 
Building React Applications with Redux
Building React Applications with ReduxBuilding React Applications with Redux
Building React Applications with Redux
 
Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component Pattern
 
Declarative Network Configuration
Declarative Network Configuration Declarative Network Configuration
Declarative Network Configuration
 
2020-Feb: Testing: Cables and Chains
2020-Feb: Testing: Cables and Chains2020-Feb: Testing: Cables and Chains
2020-Feb: Testing: Cables and Chains
 
Escaping Test Hell - ACCU 2014
Escaping Test Hell - ACCU 2014Escaping Test Hell - ACCU 2014
Escaping Test Hell - ACCU 2014
 
Do you queue
Do you queueDo you queue
Do you queue
 
Building High-Performance Force.com Applications in React
Building High-Performance Force.com Applications in ReactBuilding High-Performance Force.com Applications in React
Building High-Performance Force.com Applications in React
 
Performance tuning Grails applications
Performance tuning Grails applicationsPerformance tuning Grails applications
Performance tuning Grails applications
 
Python for Data Logistics
Python for Data LogisticsPython for Data Logistics
Python for Data Logistics
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery
 

More from Hsuan Fu Lien (10)

The Ideas of Clojure - Things I learn from Clojure
The Ideas of Clojure - Things I learn from ClojureThe Ideas of Clojure - Things I learn from Clojure
The Ideas of Clojure - Things I learn from Clojure
 
Django Girls 2015 - CSS
Django Girls 2015 - CSSDjango Girls 2015 - CSS
Django Girls 2015 - CSS
 
Django Girls 2015 - HTML
Django Girls 2015 -  HTMLDjango Girls 2015 -  HTML
Django Girls 2015 - HTML
 
React.JS Conf & F8
React.JS Conf & F8React.JS Conf & F8
React.JS Conf & F8
 
Introduce Flux & react in practices (KKBOX)
Introduce Flux & react in practices (KKBOX)Introduce Flux & react in practices (KKBOX)
Introduce Flux & react in practices (KKBOX)
 
What is the next step for a front end beginner
What is the next step for a front end beginnerWhat is the next step for a front end beginner
What is the next step for a front end beginner
 
Understand front end developer
Understand front end developerUnderstand front end developer
Understand front end developer
 
Introduce flux & react in practice
Introduce flux & react in practiceIntroduce flux & react in practice
Introduce flux & react in practice
 
UI Engineering Introduction
UI Engineering IntroductionUI Engineering Introduction
UI Engineering Introduction
 
Using Yeoman to develop Web App
Using Yeoman to develop Web AppUsing Yeoman to develop Web App
Using Yeoman to develop Web App
 

Recently uploaded

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Immutable, performance and components communication