An introduction to React.js presented as part of an internal sharing event inside of IBM Design. This talk tries to cover what React is actually trying to do, versus explaining how to use it.
In this talk I demonstrate and explain how I tackled the problem of importing a huge data set with many repetitive contents. The dataset was provided in JSON format.
Talk given at DevTeach Montreal on RxJS - The Basics & The Future.
Example repo: https://github.com/ladyleet/rxjs-test
Have questions? Find me on twitter http://twitter.com/ladyleet
Explanation of the fundamentals of Redux with additional tips and good practices. Presented in the Munich React Native Meetup, so the sample code is using React Native. Additional code: https://github.com/nacmartin/ReduxIntro
This document discusses procedures, functions, and packages in PL/SQL. It defines that procedures do not return values while functions do. It provides examples of how to create and call procedures and functions that take in arguments and return values. It also explains how to define packages, which can contain groups of procedures and functions, through a package specification and package body.
s React.js a library or a framework? In any case, it is a new way of working that represents a revolution in the way of building web projects. It has very particular characteristics that allow us, for instance, to render React code from the server side, or to include React components from Twig tags. During this talk we will present React.js, we will explore how to take advantage of it from PHP projects and we will give answers to practical problems such as universal (isomorphical) rendering and the generation of React.js forms from Symfony forms without duplication of efforts.
High Performance web apps in Om, React and ClojureScriptLeonardo Borges
The document discusses using Om and React for building high performance web user interfaces. It begins with an overview of React, including how it uses virtual DOM and efficient diff algorithms. It then introduces Om as a ClojureScript interface for React that allows leveraging immutable data structures for even faster rendering. A basic counter component is demonstrated in both React JSX and equivalent Om. Larger examples show building reusable editable components and an app with speakers/sessions data and undo functionality using Om.
Going Beyond LAMP Again - Manchester WordPress User GroupTim Nash
This document appears to be the slides from a presentation titled "COMPANY NAME PRESENTATION TITLE 12 - 12 - 2012" given by Tim Nash. The presentation discusses moving beyond the traditional LAMP stack and explores alternatives for each component of LAMP. It covers using Nginx instead of Apache, MariaDB instead of MySQL, HipHop instead of PHP, and key-value stores like Redis and Memcached. It also discusses using caching, job queues, and caching reverse proxies to improve performance. The goal is to use the best tools for each job rather than just the most popular options.
Refactoring @ Mindvalley: Smells, Techniques and PatternsTristan Gomez
Every week my team commits really good, clean code. I decided to get the best of the commits and showcase what makes them good, what smells they address, and what techniques they used.
In this talk I demonstrate and explain how I tackled the problem of importing a huge data set with many repetitive contents. The dataset was provided in JSON format.
Talk given at DevTeach Montreal on RxJS - The Basics & The Future.
Example repo: https://github.com/ladyleet/rxjs-test
Have questions? Find me on twitter http://twitter.com/ladyleet
Explanation of the fundamentals of Redux with additional tips and good practices. Presented in the Munich React Native Meetup, so the sample code is using React Native. Additional code: https://github.com/nacmartin/ReduxIntro
This document discusses procedures, functions, and packages in PL/SQL. It defines that procedures do not return values while functions do. It provides examples of how to create and call procedures and functions that take in arguments and return values. It also explains how to define packages, which can contain groups of procedures and functions, through a package specification and package body.
s React.js a library or a framework? In any case, it is a new way of working that represents a revolution in the way of building web projects. It has very particular characteristics that allow us, for instance, to render React code from the server side, or to include React components from Twig tags. During this talk we will present React.js, we will explore how to take advantage of it from PHP projects and we will give answers to practical problems such as universal (isomorphical) rendering and the generation of React.js forms from Symfony forms without duplication of efforts.
High Performance web apps in Om, React and ClojureScriptLeonardo Borges
The document discusses using Om and React for building high performance web user interfaces. It begins with an overview of React, including how it uses virtual DOM and efficient diff algorithms. It then introduces Om as a ClojureScript interface for React that allows leveraging immutable data structures for even faster rendering. A basic counter component is demonstrated in both React JSX and equivalent Om. Larger examples show building reusable editable components and an app with speakers/sessions data and undo functionality using Om.
Going Beyond LAMP Again - Manchester WordPress User GroupTim Nash
This document appears to be the slides from a presentation titled "COMPANY NAME PRESENTATION TITLE 12 - 12 - 2012" given by Tim Nash. The presentation discusses moving beyond the traditional LAMP stack and explores alternatives for each component of LAMP. It covers using Nginx instead of Apache, MariaDB instead of MySQL, HipHop instead of PHP, and key-value stores like Redis and Memcached. It also discusses using caching, job queues, and caching reverse proxies to improve performance. The goal is to use the best tools for each job rather than just the most popular options.
Refactoring @ Mindvalley: Smells, Techniques and PatternsTristan Gomez
Every week my team commits really good, clean code. I decided to get the best of the commits and showcase what makes them good, what smells they address, and what techniques they used.
This document provides an introduction to React for beginners. It discusses why React is useful, including its declarative syntax and component-based approach. It covers key React concepts like components, props, state, lifecycles, and the virtual DOM. It also discusses ES6 features supported by React and how to set up tooling with Babel and Webpack. The document concludes with a demonstration of building a basic React app.
All too often front-end JavaScript code has been considered a second class citizen, and when treated without due care and attention it can be buggy and hard to maintain. This attitude is changing though, and thanks to the rapid growth in popularity of JavaScript as a first-class language, there is a large and expanding ecosystem of tools that a developer should know to make their client-side code as “clean” as the rest of their stack.
This talk aims to introduce and discuss how to implement modularisation, functional idioms and testing in JavaScript in an idiomatic way, to allow you to code JavaScript to a higher quality and, ultimately, more sustainably.
Most developers start adopting Docker by integrating it with their development environment. Unfortunately development environments are nuanced. Using Docker to automate and isolate development environments is rewarding, but you'll need to keep a few things in mind when designing that integration.
Redux is an exciting Javascript framework where you get things done by modifying nothing! More seriously, Redux is a flux-like way to manage UI state deterministically, with logical state transitions. This talk will explore how New Relic's APM product is using Redux to build interfaces at the future of software analytics. Here's to code we can understand and reason about!
---
Talk originally from New Relic FutureStack 2015!
A Tale of Two Workflows - ChefConf 2014Pete Cheslock
Watch this talk here: https://www.youtube.com/watch?v=L__8o02od6Q
For an example of the code we used in our CI pipeline to make a Chef Environment from a Berksfile.lock - check out this project:
https://github.com/petecheslock/berks2env
One of the biggest advantages of Chef is it's flexibility, allowing you to customize it at-will to fit your infrastructure needs. While this makes Chef incredibly powerful, it can also be challenging to develop a workflow to manage the day-to-day usage of chef.
Should I use a single repo for all my cookbooks?
One cookbook per repo?
Berkshelf?
Librarian?
Test-Kitchen?
Where does Jenkins(CI) fit it?
What about Testing?
How does this work with my small team? What about my large team? What about my * Distributed Team?
Over the past few years I have been a part of two distinct Chef workflows that take opposite paths about how to solve issues around collaboration, versioning, testing, etc. During the course of this talk I will share:
Details about the requirements that lead us down these 2 paths.
What worked.
What didn't.
How we use many of the tools available to safely test code changes.
How we deploy cookbook changes safely and quickly (and keep uptime our highest priority).
Building React Applications with Redux
with Yuri Takhteyev
OVERVIEW
Since React is just a “view framework”, it leaves you with lots of options for how to architect the deeper parts of your stack. The best way to handle those deeper layers is by using Redux – a state container that allows you to write much of your application in the form of pure functions. Using Redux helps you write applications that are much easier to test and understand and to achieve more thorough separation between your views and your business logic. Redux also unlocks the possibility of using amazing tools.
OBJECTIVE
Introduce the audience to Redux, a state container that can be used together with React to achieve sanity deeper down in your stack.
TARGET AUDIENCE
Developers familiar with core React and looking for a better way to architect their applications.
ASSUMED AUDIENCE KNOWLEDGE
Core React knowledge is assumed. Familiarity with basic Flux concepts would help, but I’ll review those quickly.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Why pure functions make your code easier to maintain.
How unidirectional data flows help you sleep better at night.
How Redux helps you manage state better via reducers.
How to use Redux together with React.
How to test Redux applications.
The document discusses using work queues with Gearman and CodeIgniter. It begins with an introduction to work queues, describing them as sequences of stored data or programs awaiting processing. It then discusses the client worker pattern for processing asynchronous jobs, some limitations of this approach, and how Gearman can help address those limitations by facilitating work distribution across languages and servers. The document provides instructions for installing and configuring Gearman to add work queue functionality.
Save time by applying clean code principlesEdorian
This document discusses applying clean code principles to save time. It motivates clean code by noting that developers spend most of their time reading and understanding code. It recommends techniques like testing, coding standards, dependency injection and small focused classes to make code easier to read and maintain. Examples show how naming conventions, short functions, avoiding comments and value objects can clarify code's intent and purpose.
This presentation includes some thoughts and conclusion of mine after my research for the refactor of the Jexia interface. It will provide you useful tools for your refactor (or your new projects) and some tips.
Video with the speech: https://youtu.be/zbphdRs__DM
The document discusses continuous integration and deployment practices. It begins by describing environments like local, development, test, and production. It then discusses manual deployment processes and the teams involved, including developers, DBAs, sysadmins, and QA. The presentation advocates automating deployments through pipelines that build, run metrics and tests, package, and deploy code. It emphasizes making the code environment-agnostic and managing dependencies. Overall, the document promotes practices for continuous integration and deployment that help software work reliably through faster feedback and deployment.
Let's discover React and Redux with TypeScriptMathieu Savy
1) React is a JavaScript library for building user interfaces using components. Redux is a state management library that uses a single state tree and immutable state changes via actions and reducers.
2) Redux uses a single state tree and immutable state changes via actions and reducers to manage state in a predictable way. State flows in one direction from the store through reducers on state changes.
3) React and Redux work well together using presentational and container components. Presentational components receive data and callbacks via props. Container components connect presentational components to the Redux store.
This document discusses behavior-driven development (BDD) and how the presenters use it. BDD focuses on writing tests in natural language to describe features from the customer's perspective before writing code. The presenters use tools like Behat and Gherkin to write automated tests in plain language, focusing on collaboration and ensuring development matches business needs. They provide tips on using multiple contexts, page objects, and screenshots in BDD. Alternatives like PhpSpec are also mentioned.
Queues can provide parallel processing, cross language scripting and more! The talk was focused on Gearman but the principles apply to any alternative.
Ben Agre - Adding Another Level of Hell to Reverse EngineeringSource Conference
This document provides an overview of a new binary obfuscation technique using opaque predicates and semi-junk code. It begins with introductions and background on reverse engineering, common packers, and ways they are currently defeated. It then describes how the presented technique is different in that it adds non-deterministic randomization and state-aware semi-junk code to functions to make them functionally isomorphic but visually different each time. The objectives are to frustrate IDA and make continued analysis costly rather than just the initial barrier. It explains how opaque predicates, call indirection, register manipulation, and dynamic rewriting of functions achieves this. The tool is slated for release in late May after the author's finals.
Catalyst - refactor large apps with it and have fun!mold
This document discusses refactoring a large Perl application using Catalyst. Some key points:
1) The existing application was built over time by many people and contained inconsistencies, bugs and hacks. Refactoring with Catalyst aimed to make the code more maintainable, easier to work with, and fun to develop.
2) Catalyst provides an MVC framework and conventions that help split code into logical modules and provide common web functionality out of the box.
3) There was an initial steep learning curve to understand Catalyst and choose supporting libraries, but Template Toolkit, DBIx::Class and other CPAN modules helped simplify tasks like templates, object-relational mapping and handling web requests
Kogito: cloud native business automationMario Fusco
The document discusses business automation in the cloud using Kogito. It begins with an introduction to business automation concepts like processes, rules, and workflows. It then provides an overview of Kogito, describing it as a cloud-native development, deployment and execution platform for business automation that uses technologies like Drools, jBPM, and Quarkus under the hood. The document also demonstrates a sample serverless workflow built with Kogito.
We have compiled the most important slides from each speaker's presentation. This year’s compilation, available for free, captures the key insights and contributions shared during the DfMAy 2024 conference.
More Related Content
Similar to An Introduction to React -- FED Date -- IBM Design
This document provides an introduction to React for beginners. It discusses why React is useful, including its declarative syntax and component-based approach. It covers key React concepts like components, props, state, lifecycles, and the virtual DOM. It also discusses ES6 features supported by React and how to set up tooling with Babel and Webpack. The document concludes with a demonstration of building a basic React app.
All too often front-end JavaScript code has been considered a second class citizen, and when treated without due care and attention it can be buggy and hard to maintain. This attitude is changing though, and thanks to the rapid growth in popularity of JavaScript as a first-class language, there is a large and expanding ecosystem of tools that a developer should know to make their client-side code as “clean” as the rest of their stack.
This talk aims to introduce and discuss how to implement modularisation, functional idioms and testing in JavaScript in an idiomatic way, to allow you to code JavaScript to a higher quality and, ultimately, more sustainably.
Most developers start adopting Docker by integrating it with their development environment. Unfortunately development environments are nuanced. Using Docker to automate and isolate development environments is rewarding, but you'll need to keep a few things in mind when designing that integration.
Redux is an exciting Javascript framework where you get things done by modifying nothing! More seriously, Redux is a flux-like way to manage UI state deterministically, with logical state transitions. This talk will explore how New Relic's APM product is using Redux to build interfaces at the future of software analytics. Here's to code we can understand and reason about!
---
Talk originally from New Relic FutureStack 2015!
A Tale of Two Workflows - ChefConf 2014Pete Cheslock
Watch this talk here: https://www.youtube.com/watch?v=L__8o02od6Q
For an example of the code we used in our CI pipeline to make a Chef Environment from a Berksfile.lock - check out this project:
https://github.com/petecheslock/berks2env
One of the biggest advantages of Chef is it's flexibility, allowing you to customize it at-will to fit your infrastructure needs. While this makes Chef incredibly powerful, it can also be challenging to develop a workflow to manage the day-to-day usage of chef.
Should I use a single repo for all my cookbooks?
One cookbook per repo?
Berkshelf?
Librarian?
Test-Kitchen?
Where does Jenkins(CI) fit it?
What about Testing?
How does this work with my small team? What about my large team? What about my * Distributed Team?
Over the past few years I have been a part of two distinct Chef workflows that take opposite paths about how to solve issues around collaboration, versioning, testing, etc. During the course of this talk I will share:
Details about the requirements that lead us down these 2 paths.
What worked.
What didn't.
How we use many of the tools available to safely test code changes.
How we deploy cookbook changes safely and quickly (and keep uptime our highest priority).
Building React Applications with Redux
with Yuri Takhteyev
OVERVIEW
Since React is just a “view framework”, it leaves you with lots of options for how to architect the deeper parts of your stack. The best way to handle those deeper layers is by using Redux – a state container that allows you to write much of your application in the form of pure functions. Using Redux helps you write applications that are much easier to test and understand and to achieve more thorough separation between your views and your business logic. Redux also unlocks the possibility of using amazing tools.
OBJECTIVE
Introduce the audience to Redux, a state container that can be used together with React to achieve sanity deeper down in your stack.
TARGET AUDIENCE
Developers familiar with core React and looking for a better way to architect their applications.
ASSUMED AUDIENCE KNOWLEDGE
Core React knowledge is assumed. Familiarity with basic Flux concepts would help, but I’ll review those quickly.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Why pure functions make your code easier to maintain.
How unidirectional data flows help you sleep better at night.
How Redux helps you manage state better via reducers.
How to use Redux together with React.
How to test Redux applications.
The document discusses using work queues with Gearman and CodeIgniter. It begins with an introduction to work queues, describing them as sequences of stored data or programs awaiting processing. It then discusses the client worker pattern for processing asynchronous jobs, some limitations of this approach, and how Gearman can help address those limitations by facilitating work distribution across languages and servers. The document provides instructions for installing and configuring Gearman to add work queue functionality.
Save time by applying clean code principlesEdorian
This document discusses applying clean code principles to save time. It motivates clean code by noting that developers spend most of their time reading and understanding code. It recommends techniques like testing, coding standards, dependency injection and small focused classes to make code easier to read and maintain. Examples show how naming conventions, short functions, avoiding comments and value objects can clarify code's intent and purpose.
This presentation includes some thoughts and conclusion of mine after my research for the refactor of the Jexia interface. It will provide you useful tools for your refactor (or your new projects) and some tips.
Video with the speech: https://youtu.be/zbphdRs__DM
The document discusses continuous integration and deployment practices. It begins by describing environments like local, development, test, and production. It then discusses manual deployment processes and the teams involved, including developers, DBAs, sysadmins, and QA. The presentation advocates automating deployments through pipelines that build, run metrics and tests, package, and deploy code. It emphasizes making the code environment-agnostic and managing dependencies. Overall, the document promotes practices for continuous integration and deployment that help software work reliably through faster feedback and deployment.
Let's discover React and Redux with TypeScriptMathieu Savy
1) React is a JavaScript library for building user interfaces using components. Redux is a state management library that uses a single state tree and immutable state changes via actions and reducers.
2) Redux uses a single state tree and immutable state changes via actions and reducers to manage state in a predictable way. State flows in one direction from the store through reducers on state changes.
3) React and Redux work well together using presentational and container components. Presentational components receive data and callbacks via props. Container components connect presentational components to the Redux store.
This document discusses behavior-driven development (BDD) and how the presenters use it. BDD focuses on writing tests in natural language to describe features from the customer's perspective before writing code. The presenters use tools like Behat and Gherkin to write automated tests in plain language, focusing on collaboration and ensuring development matches business needs. They provide tips on using multiple contexts, page objects, and screenshots in BDD. Alternatives like PhpSpec are also mentioned.
Queues can provide parallel processing, cross language scripting and more! The talk was focused on Gearman but the principles apply to any alternative.
Ben Agre - Adding Another Level of Hell to Reverse EngineeringSource Conference
This document provides an overview of a new binary obfuscation technique using opaque predicates and semi-junk code. It begins with introductions and background on reverse engineering, common packers, and ways they are currently defeated. It then describes how the presented technique is different in that it adds non-deterministic randomization and state-aware semi-junk code to functions to make them functionally isomorphic but visually different each time. The objectives are to frustrate IDA and make continued analysis costly rather than just the initial barrier. It explains how opaque predicates, call indirection, register manipulation, and dynamic rewriting of functions achieves this. The tool is slated for release in late May after the author's finals.
Catalyst - refactor large apps with it and have fun!mold
This document discusses refactoring a large Perl application using Catalyst. Some key points:
1) The existing application was built over time by many people and contained inconsistencies, bugs and hacks. Refactoring with Catalyst aimed to make the code more maintainable, easier to work with, and fun to develop.
2) Catalyst provides an MVC framework and conventions that help split code into logical modules and provide common web functionality out of the box.
3) There was an initial steep learning curve to understand Catalyst and choose supporting libraries, but Template Toolkit, DBIx::Class and other CPAN modules helped simplify tasks like templates, object-relational mapping and handling web requests
Kogito: cloud native business automationMario Fusco
The document discusses business automation in the cloud using Kogito. It begins with an introduction to business automation concepts like processes, rules, and workflows. It then provides an overview of Kogito, describing it as a cloud-native development, deployment and execution platform for business automation that uses technologies like Drools, jBPM, and Quarkus under the hood. The document also demonstrates a sample serverless workflow built with Kogito.
Similar to An Introduction to React -- FED Date -- IBM Design (20)
We have compiled the most important slides from each speaker's presentation. This year’s compilation, available for free, captures the key insights and contributions shared during the DfMAy 2024 conference.
A review on techniques and modelling methodologies used for checking electrom...nooriasukmaningtyas
The proper function of the integrated circuit (IC) in an inhibiting electromagnetic environment has always been a serious concern throughout the decades of revolution in the world of electronics, from disjunct devices to today’s integrated circuit technology, where billions of transistors are combined on a single chip. The automotive industry and smart vehicles in particular, are confronting design issues such as being prone to electromagnetic interference (EMI). Electronic control devices calculate incorrect outputs because of EMI and sensors give misleading values which can prove fatal in case of automotives. In this paper, the authors have non exhaustively tried to review research work concerned with the investigation of EMI in ICs and prediction of this EMI using various modelling methodologies and measurement setups.
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsVictor Morales
K8sGPT is a tool that analyzes and diagnoses Kubernetes clusters. This presentation was used to share the requirements and dependencies to deploy K8sGPT in a local environment.
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSIJNSA Journal
The smart irrigation system represents an innovative approach to optimize water usage in agricultural and landscaping practices. The integration of cutting-edge technologies, including sensors, actuators, and data analysis, empowers this system to provide accurate monitoring and control of irrigation processes by leveraging real-time environmental conditions. The main objective of a smart irrigation system is to optimize water efficiency, minimize expenses, and foster the adoption of sustainable water management methods. This paper conducts a systematic risk assessment by exploring the key components/assets and their functionalities in the smart irrigation system. The crucial role of sensors in gathering data on soil moisture, weather patterns, and plant well-being is emphasized in this system. These sensors enable intelligent decision-making in irrigation scheduling and water distribution, leading to enhanced water efficiency and sustainable water management practices. Actuators enable automated control of irrigation devices, ensuring precise and targeted water delivery to plants. Additionally, the paper addresses the potential threat and vulnerabilities associated with smart irrigation systems. It discusses limitations of the system, such as power constraints and computational capabilities, and calculates the potential security risks. The paper suggests possible risk treatment methods for effective secure system operation. In conclusion, the paper emphasizes the significant benefits of implementing smart irrigation systems, including improved water conservation, increased crop yield, and reduced environmental impact. Additionally, based on the security analysis conducted, the paper recommends the implementation of countermeasures and security approaches to address vulnerabilities and ensure the integrity and reliability of the system. By incorporating these measures, smart irrigation technology can revolutionize water management practices in agriculture, promoting sustainability, resource efficiency, and safeguarding against potential security threats.
Introduction- e - waste – definition - sources of e-waste– hazardous substances in e-waste - effects of e-waste on environment and human health- need for e-waste management– e-waste handling rules - waste minimization techniques for managing e-waste – recycling of e-waste - disposal treatment methods of e- waste – mechanism of extraction of precious metal from leaching solution-global Scenario of E-waste – E-waste in India- case studies.
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...University of Maribor
Slides from talk presenting:
Aleš Zamuda: Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapter and Networking.
Presentation at IcETRAN 2024 session:
"Inter-Society Networking Panel GRSS/MTT-S/CIS
Panel Session: Promoting Connection and Cooperation"
IEEE Slovenia GRSS
IEEE Serbia and Montenegro MTT-S
IEEE Slovenia CIS
11TH INTERNATIONAL CONFERENCE ON ELECTRICAL, ELECTRONIC AND COMPUTING ENGINEERING
3-6 June 2024, Niš, Serbia
6th International Conference on Machine Learning & Applications (CMLA 2024)ClaraZara1
6th International Conference on Machine Learning & Applications (CMLA 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications.
Understanding Inductive Bias in Machine LearningSUTEJAS
This presentation explores the concept of inductive bias in machine learning. It explains how algorithms come with built-in assumptions and preferences that guide the learning process. You'll learn about the different types of inductive bias and how they can impact the performance and generalizability of machine learning models.
The presentation also covers the positive and negative aspects of inductive bias, along with strategies for mitigating potential drawbacks. We'll explore examples of how bias manifests in algorithms like neural networks and decision trees.
By understanding inductive bias, you can gain valuable insights into how machine learning models work and make informed decisions when building and deploying them.
8. Imperative
Specify how to do something
var nums = [1, 2, 3, 4, 5];
// Double an array of values
for (var i = 0; i < nums.length; i++) {
nums[i] = nums[i] * 2;
}
9. Declarative
Specify the desired result
var nums = [1, 2, 3, 4, 5];
var doubled = nums.map(function (num) {
return num * 2;
});
21. – J I M S P R O C H
“React is a translation layer that takes in a description
of how things should be and executes the minimal
DOM operations to make it happen.”
24. – S E B A S T I A N M A R K B Å G E
“React is not a virtual DOM library for you to render
to the DOM. It’s a tool for building out your toolbox
of components.”
33. • We can think about components in isolation, rather than about a
system as a whole
• We basically write a function that describes what should happen, and
React handles the transitions for you
function render(state) → DOM
34. – J O S E P H S AV O N A
“React makes it a lot easier to do client side
development because it’s a simpler mental model.”
35. AV O I D I N G D ATA M U TAT I O N
• Complexity is often strongly correlated with data mutation
• If you rewrite the complex code to avoid mutation, it is usually much
easier to reason about
36. W R I T E S I M P L E R C O D E
• Makes it difficult to do data mutation
• Makes it difficult to use an Imperative API
• As a result, your application is more manageable
37. W H AT D O E S A C O M P O N E N T
L O O K L I K E ?
56. – J O S E P H S AV O N A
“For new developers, it’s really hard to jump into the
system and begin making changes and making
decisions while still being confident that the overall
system will work.”
83. – J O S E P H S AV O N A
“Our simple change has turned into this. One change
requires a cascade of change throughout our
application. If you’re a new developer and you get a
task like add a photo, you might think it is easy but
then you have to understand the entire system in
order to make the change. This doesn’t scale.”
92. • We build up the primitive components of our application
• We compose them together to create abstractions for higher order
components
• React is the tool that allows us to build out our toolbox of
components specific to our application
97. – S E B A S T I A N M A R K B Å G E
“Your job is not to create clever hacks to compose
two wrong abstractions together. Your job is to
compose the right abstractions for the right job.”
98. R E A C T TA R G E T S
• DOM
• SVG
• WebGL
• iOS
• Android
• Canvas