SlideShare a Scribd company logo
BEYOND CONTAINERS &
PRESENTATIONAL COMPONENTS
Advanced
Patterns
Advanced React Component Patterns - ReactNext 2018
ROBERT HERBST
Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018
Johannesburg,
South Africa
Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018
JOURNEY
Advanced React Component Patterns - ReactNext 2018
Data Down Actions Up
Unidirectional Data Flow
vs
Model Binding
Flux
Advanced React Component Patterns - ReactNext 2018
Presentational
and Container
Components
“React bindings for Redux separate
presentational components from
container components. This
approach can make your app easier to
understand and allow you to more
easily reuse components.”
— Redux Documentation
Presentational
Components
Container Components
Purpose
How things look (markup,
styles)
How things work (data fetching, state
updates)
Aware of
Redux
No Yes
To read data Read data from props Subscribe to Redux state
To change
data
Invoke callbacks from props Dispatch Redux actions
Are written By hand Usually generated by React Redux
const MyGreeting = ({ name }) !=>
<h1>Hello {name}!</h1>;
const mapStateToProps = state !=> ({
name: state.name
});
export default connect(mapStateToProps)
(MyGreeting);
Container
Know things about outside (context)
Presentational
Have everything passed in (pure)
Class Component
Know things about outside (context)
Function Component
Have everything passed in (pure)
Hold on…
Class Components also store state.
That’s not “outside”?
Is state really inside the component?
How does the React lifecycle work?
class MyComponent extends
React.Component
Where is the class component
in Redux containers?
connect()
Higher Order Component
const hoc = WrappedComponent !=>
class HOC extends React.Component {
render() {
return <WrappedComponent !/>;
}
};
container
presentation
pure class
functionhigher order
component
noise
Pure Component
Side Effect Component
Advanced React Component Patterns - ReactNext 2018
Pure Side Effect
Component
How did that component do that….
Victory Charts
Victory Charts
const data = […];
return (
<VictoryChart height={390}>
<VictoryLine data={data} !/>
<VictoryScatter
data={data}
size={5}
!/>
!</VictoryChart>
);
Victory Charts
const data = […];
return (
<VictoryChart height={390}>
<VictoryLine data={data} !/>
<VictoryScatter
data={data}
size={5}
!/>
!</VictoryChart>
);
Victory Charts
Victory Charts
This looks like
bi-directional communication
Data Down Actions Up
Unidirectional Data Flow
vs
Model Binding
<VictoryChart !/>
interrogates its children
<VictoryChart>
<VictoryLine … !/>
!</VictoryChart>
<VictoryChart
children={<VictoryLine … !/>}
!/>
Children Aware Component
Pure Side Effect
Component
Child Aware
Best Code Comment Award
Nominee
Wizard
<Wizard>
<Step>This is step one. Click next to continue!</Step>
<Step>This is the last step. Well done.!</Step>
!</Wizard>
Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018
export default class Wizard extends React.Component {
state = {
furthestStep: 0
};
completeStep = furthestStep !=> {
this.setState({ furthestStep });
};
render() {
const { children } = this.props;
return (
<React.Fragment>
{React.Children.toArray(children).reduce(
(acc, child, index) !=>
index > this.state.furthestStep
? acc
: [
!!...acc,
React.cloneElement(child, {
onComplete: () !=> this.completeStep(index + 1)
})
]
, [])}
!</React.Fragment>
);
}
}
export default class Wizard extends React.Component {
state = {
furthestStep: 0
};
completeStep = furthestStep !=> {
this.setState({ furthestStep });
};
render() {
const { children } = this.props;
return (
<React.Fragment>
{React.Children.toArray(children).reduce(
(acc, child, index) !=>
index > this.state.furthestStep
? acc
: [
!!...acc,
React.cloneElement(child, {
onComplete: () !=> this.completeStep(index + 1)
})
]
, [])}
!</React.Fragment>
);
}
}
state = {
furthestStep: 0
};
completeStep = furthestStep !=> {
this.setState({ furthestStep });
};
export default class Wizard extends React.Component {
state = {
furthestStep: 0
};
completeStep = furthestStep !=> {
this.setState({ furthestStep });
};
render() {
const { children } = this.props;
return (
<React.Fragment>
{React.Children.toArray(children).reduce(
(acc, child, index) !=>
index > this.state.furthestStep
? acc
: [
!!...acc,
React.cloneElement(child, {
onComplete: () !=> this.completeStep(index + 1)
})
]
, [])}
!</React.Fragment>
);
}
}
{React.Children.toArray(children).reduce(
(acc, child, index) !=>
index > this.state.furthestStep
? acc
: [
!!...acc,
React.cloneElement(child, {
onComplete: () !=> this.completeStep(index + 1)
})
],
[]
)}
{React.Children.toArray(children).reduce(
(acc, child, index) !=>
index > this.state.furthestStep
? acc
: [
!!...acc,
React.cloneElement(child, {
onComplete: () !=> this.completeStep(index + 1)
})
],
[]
)}
{React.Children.toArray(children).reduce(
(acc, child, index) !=>
index > this.state.furthestStep
? acc
: [
!!...acc,
React.cloneElement(child, {
onComplete: () !=> this.completeStep(index + 1)
})
],
[]
)}
{React.Children.toArray(children).reduce(
(acc, child, index) !=>
index > this.state.furthestStep
? acc
: [
!!...acc,
React.cloneElement(child, {
onComplete: () !=> this.completeStep(index + 1)
})
],
[]
)}
Children Enhancing Component
Pure Side Effect
Component
Child Aware
Child Enhancing
Framework Code,
Not Application Code!
Wizard
<Wizard>
<Step>This is step one. Click next to continue!</Step>
<Step>This is the last step. Well done.!</Step>
!</Wizard>
but not presentational
All Pure Components
Data In, HTML (UI) Out
How things look (markup, styles)
Presentational Components
Pure Side Effect
Component
Child Aware
Child Enhancing
Presentation
import Desktop from './MyComponent.desktop';
import Mobile from './MyComponent.mobile';
let MyComponent = Responsive({ Mobile, Desktop });
export default MyComponent;
export const MOBILE_QUERY = '(max-width: 767px)';
export const isMobile = () !=>
(window.matchMedia ? window.matchMedia(MOBILE_QUERY).matches : false);
!/* This assumes only two breakpoints. It can become more sophisticated !*/
export default ({ Mobile, Desktop }) !=>
class Responsive extends Component {
render() {
return (
<MediaQuery query={MOBILE_QUERY}>
{matches !=> (
matches ?
<Mobile {!!...this.props} !/> :
<Desktop {!!...this.props} !/>)}
!</MediaQuery>
);
}
};
Decision Component
Simplifies each case
Trade off:
Simplicity vs Dryness
Pure Side Effect
Component
Child Aware
Child Enhancing
Presentation Decision
Side Effect Components
React Context
const MyContext = React.createContext(defaultValue);
<MyContext.Provider value={!/* some value !*/}>
…
!</MyContext.Provider>
class MyComponent extends React.Component {
static contextType = MyContext;
}
<MyContext.Consumer>
{value !=> !/* render something based on the context value !*/}
!</MyContext.Consumer>
const Analytics = React.createContext();
const tracker = new AnalyticsService(config);
const el = document.querySelector(‘#mount-target');
ReactDOM.render(
<Analytics.Provider tracker={tracker}>
<App !/>
!</Analytics.Provider>,
el
);
class ExampleDownloadButton extends React.Component {
onClick = () !=> {
const { tracker } = this.props;
tracker.track('download.button.clicked');
};
render() {
return (
<Button onClick={this.onClick}>
<Icon name="cloud-download" size={16} !/>
Download
!</Button>
);
}
}
export default withTracker(ExampleDownloadButton);
Service Injection Component
Pure Side Effect
Component
Child Aware
Child Enhancing
Presentation Decision Service
Feature Toggle Component or
Authentication Component
Decision + Service Component
const NewComponent = () !=> (
<p>This is only for beta users!</p>
);
const OldComponent = () !=> (
<p>This is for normal users!</p>
);
export default withFeature('betaFeature')({
new: NewComponent,
old: OldComponent
});
import TheComponent from './the-component';
const Page = () !=> (
<div>
<TheComponent !/>
!</div>
);
const features = new FeatureService(config);
const el = document.querySelector(‘#mount-target');
ReactDOM.render(
<FeatureProvider features={features}>
<App !/>
!</FeatureProvider>,
el
);
Event Listener Component
Observables, high performance etc
redux
connect()
Pure Side Effect
Component
Child Aware
Child Enhancing
Presentation Decision Service Event Listener
💅 styled-components
const Card = styled.div`
max-width: 600px;
`;
<styled.div id=“my-component">
!</styled.div>
<style type="text/css" data-styled-components="gHctJy">
.gHctJy {
max-width: 600px;
}
!</style>
<div class="gHctJy">
My Card
!</div>
Pure Side Effect
Component
Child Aware
Child Enhancing
Presentation Decision Service Event Listener Styled
Why do developers care about patterns?
The Magical Number Seven,
Plus or Minus Two:
Some Limits on Our Capacity for
Processing Information
—one of the most highly cited
papers in psychology
Advanced React Component Patterns - ReactNext 2018
How did that component do that….
reduce the number of times you ask
Pure Side Effect
Component
Child Aware
Child Enhancing
Presentation Decision Service Event Listener Styled
Why separate pure vs side effects?
Pure components are:
•Easier to reason about
•Easier to test
•Easier to compose
•Generally simpler
Functional Core,
Imperative Shell
— Gary Bernhardt
🔥

How do Hooks affect this?
import { useState } from 'react';
function Example() {
!// Declare a new state variable, which we'll call "count"
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times!</p>
<button onClick={() !=> setCount(count + 1)}>
Click me
!</button>
!</div>
);
}
Class Component
Know things about outside (context)
Pure Component
Have everything passed in (pure)
class component = side effects
Hooks = side effects
In real code bases the split is
almost never perfectly clear.



Hooks make side effects easier.
No reason to stop separating concerns.
Questions?
Ad

Recommended

AngularJs-training
AngularJs-training
Pratchaya Suputsopon
 
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January
Evan Schultz
 
Creating 'Vuetiful' Data-Driven User Interfaces
Creating 'Vuetiful' Data-Driven User Interfaces
Evan Schultz
 
Get AngularJS Started!
Get AngularJS Started!
Dzmitry Ivashutsin
 
Change password for weblogic users in obiee 11g
Change password for weblogic users in obiee 11g
Ravi Kumar Lanke
 
Developing New Widgets for your Views in Owl
Developing New Widgets for your Views in Owl
Odoo
 
Fixing Magento Core for Better Performance - Ivan Chepurnyi
Fixing Magento Core for Better Performance - Ivan Chepurnyi
Meet Magento Spain
 
Best Practices for Magento Debugging
Best Practices for Magento Debugging
varien
 
React + Redux. Best practices
React + Redux. Best practices
Clickky
 
Magento Indexes
Magento Indexes
Ivan Chepurnyi
 
React/Redux
React/Redux
Durgesh Vaishnav
 
Introduction to Redux
Introduction to Redux
Ignacio Martín
 
AtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using now
Atlassian
 
Making Magento flying like a rocket! (A set of valuable tips for developers)
Making Magento flying like a rocket! (A set of valuable tips for developers)
Ivan Chepurnyi
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and Server
Atlassian
 
Vue fundamentasl with Testing and Vuex
Vue fundamentasl with Testing and Vuex
Christoffer Noring
 
Testing C# and ASP.net using Ruby
Testing C# and ASP.net using Ruby
Ben Hall
 
Workshop 19: ReactJS Introduction
Workshop 19: ReactJS Introduction
Visual Engineering
 
Apex 5 plugins for everyone version 2018
Apex 5 plugins for everyone version 2018
Alan Arentsen
 
Angular 2 Component Communication - Talk by Rob McDiarmid
Angular 2 Component Communication - Talk by Rob McDiarmid
Amrita Chopra
 
JSLab. Алексей Волков. "React на практике"
JSLab. Алексей Волков. "React на практике"
GeeksLab Odessa
 
Introduction to react and redux
Introduction to react and redux
Cuong Ho
 
Dive into React Performance
Dive into React Performance
Ching Ting Wu
 
Redux training
Redux training
dasersoft
 
React и redux
React и redux
Дмитрий Радыно
 
JavaFX in Action (devoxx'16)
JavaFX in Action (devoxx'16)
Alexander Casall
 
RSpec User Stories
RSpec User Stories
rahoulb
 
Day 5
Day 5
Vivek Bhusal
 
React & Redux for noobs
React & Redux for noobs
[T]echdencias
 
[FEConf Korea 2017]Angular 컴포넌트 대화법
[FEConf Korea 2017]Angular 컴포넌트 대화법
Jeado Ko
 

More Related Content

What's hot (20)

React + Redux. Best practices
React + Redux. Best practices
Clickky
 
Magento Indexes
Magento Indexes
Ivan Chepurnyi
 
React/Redux
React/Redux
Durgesh Vaishnav
 
Introduction to Redux
Introduction to Redux
Ignacio Martín
 
AtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using now
Atlassian
 
Making Magento flying like a rocket! (A set of valuable tips for developers)
Making Magento flying like a rocket! (A set of valuable tips for developers)
Ivan Chepurnyi
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and Server
Atlassian
 
Vue fundamentasl with Testing and Vuex
Vue fundamentasl with Testing and Vuex
Christoffer Noring
 
Testing C# and ASP.net using Ruby
Testing C# and ASP.net using Ruby
Ben Hall
 
Workshop 19: ReactJS Introduction
Workshop 19: ReactJS Introduction
Visual Engineering
 
Apex 5 plugins for everyone version 2018
Apex 5 plugins for everyone version 2018
Alan Arentsen
 
Angular 2 Component Communication - Talk by Rob McDiarmid
Angular 2 Component Communication - Talk by Rob McDiarmid
Amrita Chopra
 
JSLab. Алексей Волков. "React на практике"
JSLab. Алексей Волков. "React на практике"
GeeksLab Odessa
 
Introduction to react and redux
Introduction to react and redux
Cuong Ho
 
Dive into React Performance
Dive into React Performance
Ching Ting Wu
 
Redux training
Redux training
dasersoft
 
React и redux
React и redux
Дмитрий Радыно
 
JavaFX in Action (devoxx'16)
JavaFX in Action (devoxx'16)
Alexander Casall
 
RSpec User Stories
RSpec User Stories
rahoulb
 
Day 5
Day 5
Vivek Bhusal
 
React + Redux. Best practices
React + Redux. Best practices
Clickky
 
AtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using now
Atlassian
 
Making Magento flying like a rocket! (A set of valuable tips for developers)
Making Magento flying like a rocket! (A set of valuable tips for developers)
Ivan Chepurnyi
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and Server
Atlassian
 
Vue fundamentasl with Testing and Vuex
Vue fundamentasl with Testing and Vuex
Christoffer Noring
 
Testing C# and ASP.net using Ruby
Testing C# and ASP.net using Ruby
Ben Hall
 
Workshop 19: ReactJS Introduction
Workshop 19: ReactJS Introduction
Visual Engineering
 
Apex 5 plugins for everyone version 2018
Apex 5 plugins for everyone version 2018
Alan Arentsen
 
Angular 2 Component Communication - Talk by Rob McDiarmid
Angular 2 Component Communication - Talk by Rob McDiarmid
Amrita Chopra
 
JSLab. Алексей Волков. "React на практике"
JSLab. Алексей Волков. "React на практике"
GeeksLab Odessa
 
Introduction to react and redux
Introduction to react and redux
Cuong Ho
 
Dive into React Performance
Dive into React Performance
Ching Ting Wu
 
Redux training
Redux training
dasersoft
 
JavaFX in Action (devoxx'16)
JavaFX in Action (devoxx'16)
Alexander Casall
 
RSpec User Stories
RSpec User Stories
rahoulb
 

Similar to Advanced React Component Patterns - ReactNext 2018 (20)

React & Redux for noobs
React & Redux for noobs
[T]echdencias
 
[FEConf Korea 2017]Angular 컴포넌트 대화법
[FEConf Korea 2017]Angular 컴포넌트 대화법
Jeado Ko
 
Academy PRO: React native - building first scenes
Academy PRO: React native - building first scenes
Binary Studio
 
A Blog About Using State in Next.js: Valuable Insights
A Blog About Using State in Next.js: Valuable Insights
Shiv Technolabs Pvt. Ltd.
 
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
Luciano Mammino
 
Introduction to React for Frontend Developers
Introduction to React for Frontend Developers
Sergio Nakamura
 
React render props
React render props
Saikat Samanta
 
React 16: new features and beyond
React 16: new features and beyond
Artjoker
 
React.js: You deserve to know about it
React.js: You deserve to know about it
Anderson Aguiar
 
React redux
React redux
Michel Perez
 
Integrating React.js with PHP projects
Integrating React.js with PHP projects
Ignacio Martín
 
Enhance react app with patterns - part 1: higher order component
Enhance react app with patterns - part 1: higher order component
Yao Nien Chung
 
N Things You Don't Want to Repeat in React Native
N Things You Don't Want to Repeat in React Native
Anton Kulyk
 
React hooks
React hooks
Assaf Gannon
 
React 101 by Anatoliy Sieryi
React 101 by Anatoliy Sieryi
Binary Studio
 
Let's react - Meetup
Let's react - Meetup
RAJNISH KATHAROTIYA
 
React lecture
React lecture
Christoffer Noring
 
A full introductory guide to React
A full introductory guide to React
Jean Carlo Emer
 
React outbox
React outbox
Angela Lehru
 
Introducing Vuex in your project
Introducing Vuex in your project
Denny Biasiolli
 
React & Redux for noobs
React & Redux for noobs
[T]echdencias
 
[FEConf Korea 2017]Angular 컴포넌트 대화법
[FEConf Korea 2017]Angular 컴포넌트 대화법
Jeado Ko
 
Academy PRO: React native - building first scenes
Academy PRO: React native - building first scenes
Binary Studio
 
A Blog About Using State in Next.js: Valuable Insights
A Blog About Using State in Next.js: Valuable Insights
Shiv Technolabs Pvt. Ltd.
 
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
Luciano Mammino
 
Introduction to React for Frontend Developers
Introduction to React for Frontend Developers
Sergio Nakamura
 
React 16: new features and beyond
React 16: new features and beyond
Artjoker
 
React.js: You deserve to know about it
React.js: You deserve to know about it
Anderson Aguiar
 
Integrating React.js with PHP projects
Integrating React.js with PHP projects
Ignacio Martín
 
Enhance react app with patterns - part 1: higher order component
Enhance react app with patterns - part 1: higher order component
Yao Nien Chung
 
N Things You Don't Want to Repeat in React Native
N Things You Don't Want to Repeat in React Native
Anton Kulyk
 
React 101 by Anatoliy Sieryi
React 101 by Anatoliy Sieryi
Binary Studio
 
A full introductory guide to React
A full introductory guide to React
Jean Carlo Emer
 
Introducing Vuex in your project
Introducing Vuex in your project
Denny Biasiolli
 
Ad

Recently uploaded (20)

CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Ad

Advanced React Component Patterns - ReactNext 2018