SlideShare une entreprise Scribd logo
1  sur  114
@AndrewRota
Component-Based UI
Architectures for the Web
Andrew Rota | @andrewrota
ROME 24-25 MARCH 2017
@AndrewRota
bit.ly/components_codemotion
Slides online at:
@AndrewRota
UI frameworks today talk a lot
about “components.”
@AndrewRota
@AndrewRota
@AndrewRota
@AndrewRota
What does “component” even mean?
@AndrewRota
What does it mean to think about our user
interfaces in terms of components?
@AndrewRota
Andrew Rota
Boston, MA, USA
Software Architect at Wayfair
wayfair.com | wayfair.co.uk | wayfair.de
@AndrewRota
@AndrewRota
This is a talk about
architectural models.
@AndrewRota
“ All models are wrong, but
some are useful ”
George Box, statistician, Empirical Model-Building and Response Surfaces (1987)
@AndrewRota
New models present
new perspectives.
@AndrewRota
How do you model your web
application UI architecture?
@AndrewRota
Frontend UI
Server MVC
@AndrewRota
Server MVC
View Model Controller
@AndrewRota
Server MVC
Templates
Model Controller
@AndrewRota
Server MVC
Templates
Model Controller
Components
@AndrewRota
Let’s rethink this model.
@AndrewRota
What if UI components were first
class citizens?
@AndrewRota
Data Model
UI
Component
UI
Component
UI
Component
@AndrewRota
Data Model
UI
Component
UI
Component
UI
Component
Server
@AndrewRota
Data Model
UI
Component
UI
Component
UI
Component
Server
@AndrewRota
Data Model
UI
Component
UI
Component
UI
Component
Server
@AndrewRota
Let’s put aside the client/server split as an
implementation detail.
@AndrewRota
Let’s put aside the client/server split as an
implementation detail.*
* A very very important detail, just not one addressed in this model
@AndrewRota
Components are the defining
feature of user interfaces.
@AndrewRota
Data Model
UI
Component
UI
Component
UI
Component
@AndrewRota
UI
Component
UI
Component
UI
Component
@AndrewRota
Let’s put the focus on
components.
@AndrewRota
How do today’s web UI libraries
define components?
@AndrewRota
“A component is a custom HTML tag whose
behavior you implement using JavaScript and
whose appearance you describe using Handlebars
templates. They allow you to create reusable
controls…”
https://guides.emberjs.com/v1.10.0/concepts/core-concepts/#toc_components
This presentation is unaffiliated with the Ember project.
Ember is a trademark of Tilde Inc.
@AndrewRota
“A component controls a patch of screen
called a view.”
https://angular.io/docs/ts/latest/guide/architecture.html#!#components
@AndrewRota
“With Web Components, you can create
reusable custom elements that...break your
app up into right-sized components.”
https://www.polymer-project.org/1.0/
@AndrewRota
“Components let you split the UI into
independent, reusable pieces, and think
about each piece in isolation.”
https://facebook.github.io/react/
@AndrewRota
Let’s look at some <code>
@AndrewRota
Let’s look at some <code>
@AndrewRota
<music-playlist>
<music-playlist-item>
<h1>Symphony No. 40</h1>
<h2>Wolfgang Amadeus Mozart</h2>
</music-playlist-item>
</music-playlist>
<music-player track="1" playing />
@AndrewRota
<MusicPlaylist>
<MusicPlaylistItem>
<h1>Symphony No. 40</h1>
<h2>Wolfgang Amadeus Mozart</h2>
</MusicPlaylistItem>
</MusicPlaylist>
<MusicPlayer track={1} playing />
@AndrewRota
Defining components
@AndrewRota
const List = (props) => {
return (
<ul>
{props.items.map(item => (
<li key={item.id}>{item.text}</li>
))}
</ul>
);
}
@AndrewRota
const List = (props) => {
return (
<ul>
{props.items.map(item => (
<li key={item.id}>{item.text}</li>
))}
</ul>
);
}
Input
@AndrewRota
const List = (props) => {
return (
<ul>
{props.items.map(item => (
<li key={item.id}>{item.text}</li>
))}
</ul>
);
}
Output
@AndrewRota
Beyond the code, what are the
qualities of a component?
@AndrewRota
Composable Cohesive
Context
Independent
Colocated
@AndrewRota
Composable
Composable components can be nested within
other components.
@AndrewRota
<app-wrapper>
<app-header>
<app-navigation />
</app-header>
<app-body>
<app-content />
</app-body>
</app-wrapper>
@AndrewRota
Components are composed in a tree structure.
@AndrewRota
<my-nametag><strong>world</strong></my-nametag>
<div>
<h1>Hello, <slot></slot>.</h1>
</div>
<div>
<h1>Hello, <strong>world</strong>.</h1>
</div>
@AndrewRota
How composable are your components?
✅ - Can a component have children?
✅ - Do components define their interfaces?
✅ - ...with types?
✅ - Can you extend by composition?
@AndrewRota
Cohesive
Cohesive components contain the elements
necessary for its purpose.
@AndrewRota
“Cohesion within a module is the degree to
which the module's elements belong together.
In other words, it is a measure of how focused a
module is. The idea is not just to divide software
into arbitrary parts (i.e., modularity), but to keep
related issues in the same part.”
Software Engineering: Modern Approaches, 2nd ed. (pg. 352), Eric J. Braude, Michael E. Bernstein
@AndrewRota
How cohesive are your components?
✅ - Is there little “wiring-up” necessary?
✅ - Does a component have everything it needs?
✅ - If you change a property, how many places
does that change need to be made in?
@AndrewRota
Context-Independent
A context-independent component can be used
in different environments without modification.
@AndrewRota
How context independent are your components?
✅ - Can you “copy/paste” a component?
✅ - Can components define style boundaries?
✅ - ...error boundaries?
✅ - Do components require global state?
@AndrewRota
Colocated
A colocated component places related code in
the same place, regardless of technology.
@AndrewRota
Colocated
https://github.com/ant-design/ant-design/
@AndrewRota
Colocated
https://github.com/ant-design/ant-design/
Unit Tests
@AndrewRota
Colocated
https://github.com/ant-design/ant-design/
CSS Styles
(LESS)
@AndrewRota
Colocated
https://github.com/ant-design/ant-design/
Localization
@AndrewRota
Colocated
https://github.com/ant-design/ant-design/
Markdown files
with examples
@AndrewRota
How colocated are your components?
✅ - How many files does a component need?
✅ - What does the directory structure look like?
✅ - Can you review a component in once place?
@AndrewRota
So why component architectures?
@AndrewRota
What is software architecture?
@AndrewRota
“...an abstract system specification consisting
primarily of functional components described in
terms of their behaviors and interfaces and
component-component interconnections.”
Hayes-Roth, 1994, written for the ARPA Domain-Specific Software Architecture (DSSA) program
@AndrewRota
“...the organizational structure of a software system
including components, connections, constraints,
and rationale”
Clements, Kogut, 1994, The Software Architecture Renaissance
@AndrewRota
Software architecture ==
components + their connections
@AndrewRota
In a component-based UI architecture we treat UI
components and their connections as part of our
overall software architecture.
@AndrewRota
Components in the UI are no longer implementation
details, they’re a core unit of the overall system.
@AndrewRota
UI
Component
UI
Component
UI
Component
UI
Component
UI
Component
@AndrewRota
@AndrewRota
UI
Component
UI
Component
UI
Component
UI
Component
UI
Component
@AndrewRota
UI
Component
UI
Component
UI
Component
UI
Component
UI
Component
+ Client / Server Constraints
+ Platform Differences
+ Performance Considerations
+ Design / UX Concerns
@AndrewRota
Leverage components as the fundamental unit
when reasoning about UI architecture.
@AndrewRota
So why does this make sense for
user interfaces?
@AndrewRota
1. Components are familiar
2. Interfaces benefit from reusability
3. Abstraction can be shared across disciplines
@AndrewRota
Familiarity
<div>
<h1>Hello world</h1>
<img src="foo.jpg" />
</div>
HTML works a lot like components.
@AndrewRota
Familiarity
<div>
<h1>Hello world</h1>
<img src="foo.jpg" />
</div>
HTML works a lot like components.*
*see web components
@AndrewRota
<MusicPlaylist>
<MusicPlaylistItem>
<h1>Symphony No. 40</h1>
<h2>Wolfgang Amadeus Mozart</h2>
</MusicPlaylistItem>
</MusicPlaylist>
<MusicPlayer track={1} playing />
Familiarity
@AndrewRota
React.createElement(
MusicPlaylist, null, React.createElement(
MusicPlaylistItem, null, React.createElement(
"H1", null, "Symphony No. 40"
), React.createElement(
"H2", null, "Wolfgang Amadeus Mozart"
)
)
),
React.createElement(MusicPlayer,
{ track: 1, playing: true }
);
Familiarity
(there’s a reason JSX is so popular)
@AndrewRota
Reusability
The more components are composable, context-independent,
cohesive, and colocated, the more easily they can be shared.
@AndrewRota
Reusability
https://www.webcomponents.org
@AndrewRota
Reusability
https://react.rocks/?q=calendar
@AndrewRota
Shared Abstraction
UI work touches a lot of teams: design, product, and (often
multiple) engineering teams.
@AndrewRota
Shared Abstraction
Components as a UI concept can be useful across many different
types of teams and disciplines.
@AndrewRota
Shared Abstraction
https://material.io/guidelines/components/buttons.html#buttons-style
@AndrewRota
Shared Abstraction
https://material.io/guidelines/components/buttons.html#buttons-style
@AndrewRota
What are the challenges with a
component-based architecture?
@AndrewRota
1. State
2. Universality
@AndrewRota
State
Components define UI, not necessarily the state associated with
that UI.
@AndrewRota
State
But state is a core feature of software.
Especially UIs where state changes based on user input.
@AndrewRota
Managing state is hard
https://youtu.be/x7cQ3mrcKaY?t=15m55s
@AndrewRota
Start by separating state container components
from presentational components
@AndrewRota
Patterns for dealing with state
Manage state independently, and link up to components.
@AndrewRota
Patterns for dealing with state
Manage state independently, and link up to components.
@AndrewRota
Patterns for dealing with state
Colocate state queries/mutations within components.
@AndrewRota
Patterns for dealing with state
Colocate state queries/mutations within components.
@AndrewRota
Universality
@AndrewRota
Universality - across platforms?
Components for…
the web?
iOS apps?
Android apps?
desktop apps?
virtual reality?
@AndrewRota
Universality - across libraries?
Components for…
react?
angular?
ember?
polymer?
plain JavaScript?
@AndrewRota
What if there were a standard? What if all
components were interoperable?
@AndrewRota
I don’t think there’s a simple answer here.
@AndrewRota
Different frameworks have
different strengths and weaknesses.
@AndrewRota
Different platforms have different challenges.
@AndrewRota
I don’t think there’s a simple answer here.
@AndrewRota
I don’t think there’s a simple answer here.
Yet.
@AndrewRota
But maybe that’s ok.
@AndrewRota
Component-based architecture
is useful, independent of the implementation.
@AndrewRota
“ All models are wrong, but
some are useful ”
George Box, statistician, Empirical Model-Building and Response Surfaces (1987)
@AndrewRota
Is the component model useful
for describing web UIs?
@AndrewRota
Does a component-based UI model impact how
you think about your overall application
architecture?
@AndrewRota
Let’s elevate components to first class citizens
in our application architecture.
@AndrewRota
I think this is only the beginning...
@AndrewRota
User interface architecture is hard,
but components make it easier.
@AndrewRota
Grazie!
@AndrewRota
bit.ly/components_codemotion
Slides online at:

Contenu connexe

Similaire à Component Based UI Architectures for the Web

He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!François-Guillaume Ribreau
 
Azure Media Services & Azure Search
Azure Media Services & Azure SearchAzure Media Services & Azure Search
Azure Media Services & Azure SearchEmanuele Bartolesi
 
Semantic Web, an introduction for bioscientists
Semantic Web, an introduction for bioscientistsSemantic Web, an introduction for bioscientists
Semantic Web, an introduction for bioscientistsEmanuele Della Valle
 
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufried...
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufried...DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufried...
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufried...DevDay Dresden
 
ljug-meetup-2023-03-hexagonal-architecture.pdf
ljug-meetup-2023-03-hexagonal-architecture.pdfljug-meetup-2023-03-hexagonal-architecture.pdf
ljug-meetup-2023-03-hexagonal-architecture.pdfComsysto Reply GmbH
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsNathan Smith
 
Play framework: lessons learned
Play framework: lessons learnedPlay framework: lessons learned
Play framework: lessons learnedPeter Hilton
 
Talk EclipseSirius Con - EIP Designer - 20151203
Talk EclipseSirius Con - EIP Designer - 20151203Talk EclipseSirius Con - EIP Designer - 20151203
Talk EclipseSirius Con - EIP Designer - 20151203Laurent Broudoux
 
Design Growth, Максим Ткачук
Design Growth, Максим ТкачукDesign Growth, Максим Ткачук
Design Growth, Максим ТкачукSigma Software
 
Client Building Functional webapps.
Client   Building Functional webapps.Client   Building Functional webapps.
Client Building Functional webapps.Arun Kumar
 
Web2 0-SOA InterAct2008
Web2 0-SOA InterAct2008Web2 0-SOA InterAct2008
Web2 0-SOA InterAct2008guest1fb6e4
 
2016 SUTOL: React.js – High-Performance Client for Domino
2016 SUTOL: React.js – High-Performance Client for Domino2016 SUTOL: React.js – High-Performance Client for Domino
2016 SUTOL: React.js – High-Performance Client for DominoKnut Herrmann
 
Resources (Links) for 2016
Resources (Links) for 2016Resources (Links) for 2016
Resources (Links) for 2016Andrew Newman
 
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpMatthew Davis
 
Twitter analysis by Kaify Rais
Twitter analysis by Kaify RaisTwitter analysis by Kaify Rais
Twitter analysis by Kaify RaisAjay Ohri
 
Can you afford this? - Tailoring Technology for Individuals - Amy Dickens - C...
Can you afford this? - Tailoring Technology for Individuals - Amy Dickens - C...Can you afford this? - Tailoring Technology for Individuals - Amy Dickens - C...
Can you afford this? - Tailoring Technology for Individuals - Amy Dickens - C...Codemotion
 
Angular Best Practices v2
Angular Best Practices v2Angular Best Practices v2
Angular Best Practices v2Henry Tao
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKDavid Wesst
 
Busy Architects Guide to Modern Web Architecture in 2014
Busy Architects Guide to  Modern Web Architecture in 2014Busy Architects Guide to  Modern Web Architecture in 2014
Busy Architects Guide to Modern Web Architecture in 2014Particular Software
 

Similaire à Component Based UI Architectures for the Web (20)

He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!
 
Azure Media Services & Azure Search
Azure Media Services & Azure SearchAzure Media Services & Azure Search
Azure Media Services & Azure Search
 
Semantic Web, an introduction for bioscientists
Semantic Web, an introduction for bioscientistsSemantic Web, an introduction for bioscientists
Semantic Web, an introduction for bioscientists
 
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufried...
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufried...DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufried...
DevDay 2018: Ulrich Deiters - Offline First - kein Netz, kein Fehler, zufried...
 
ljug-meetup-2023-03-hexagonal-architecture.pdf
ljug-meetup-2023-03-hexagonal-architecture.pdfljug-meetup-2023-03-hexagonal-architecture.pdf
ljug-meetup-2023-03-hexagonal-architecture.pdf
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile Apps
 
Atomic design
Atomic designAtomic design
Atomic design
 
Play framework: lessons learned
Play framework: lessons learnedPlay framework: lessons learned
Play framework: lessons learned
 
Talk EclipseSirius Con - EIP Designer - 20151203
Talk EclipseSirius Con - EIP Designer - 20151203Talk EclipseSirius Con - EIP Designer - 20151203
Talk EclipseSirius Con - EIP Designer - 20151203
 
Design Growth, Максим Ткачук
Design Growth, Максим ТкачукDesign Growth, Максим Ткачук
Design Growth, Максим Ткачук
 
Client Building Functional webapps.
Client   Building Functional webapps.Client   Building Functional webapps.
Client Building Functional webapps.
 
Web2 0-SOA InterAct2008
Web2 0-SOA InterAct2008Web2 0-SOA InterAct2008
Web2 0-SOA InterAct2008
 
2016 SUTOL: React.js – High-Performance Client for Domino
2016 SUTOL: React.js – High-Performance Client for Domino2016 SUTOL: React.js – High-Performance Client for Domino
2016 SUTOL: React.js – High-Performance Client for Domino
 
Resources (Links) for 2016
Resources (Links) for 2016Resources (Links) for 2016
Resources (Links) for 2016
 
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
 
Twitter analysis by Kaify Rais
Twitter analysis by Kaify RaisTwitter analysis by Kaify Rais
Twitter analysis by Kaify Rais
 
Can you afford this? - Tailoring Technology for Individuals - Amy Dickens - C...
Can you afford this? - Tailoring Technology for Individuals - Amy Dickens - C...Can you afford this? - Tailoring Technology for Individuals - Amy Dickens - C...
Can you afford this? - Tailoring Technology for Individuals - Amy Dickens - C...
 
Angular Best Practices v2
Angular Best Practices v2Angular Best Practices v2
Angular Best Practices v2
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
 
Busy Architects Guide to Modern Web Architecture in 2014
Busy Architects Guide to  Modern Web Architecture in 2014Busy Architects Guide to  Modern Web Architecture in 2014
Busy Architects Guide to Modern Web Architecture in 2014
 

Plus de Andrew Rota

Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019Andrew Rota
 
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)Andrew Rota
 
Getting Started with GraphQL && PHP
Getting Started with GraphQL && PHPGetting Started with GraphQL && PHP
Getting Started with GraphQL && PHPAndrew Rota
 
Tutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPTutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPAndrew Rota
 
Building a GraphQL API in PHP
Building a GraphQL API in PHPBuilding a GraphQL API in PHP
Building a GraphQL API in PHPAndrew Rota
 
Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)Andrew Rota
 
Integrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationIntegrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationAndrew Rota
 
Effectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side PerformanceEffectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side PerformanceAndrew Rota
 
UI Rendering at Wayfair
UI Rendering at WayfairUI Rendering at Wayfair
UI Rendering at WayfairAndrew Rota
 
Better PHP-Frontend Integration with Tungsten.js
Better PHP-Frontend Integration with Tungsten.jsBetter PHP-Frontend Integration with Tungsten.js
Better PHP-Frontend Integration with Tungsten.jsAndrew Rota
 
Tungsten.js: Building a Modular Framework
Tungsten.js: Building a Modular FrameworkTungsten.js: Building a Modular Framework
Tungsten.js: Building a Modular FrameworkAndrew Rota
 
Why Static Type Checking is Better
Why Static Type Checking is BetterWhy Static Type Checking is Better
Why Static Type Checking is BetterAndrew Rota
 
An Exploration of Frameworks – and Why We Built Our Own
An Exploration of Frameworks – and Why We Built Our OwnAn Exploration of Frameworks – and Why We Built Our Own
An Exploration of Frameworks – and Why We Built Our OwnAndrew Rota
 
The Complementarity of React and Web Components
The Complementarity of React and Web ComponentsThe Complementarity of React and Web Components
The Complementarity of React and Web ComponentsAndrew Rota
 
Web Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationWeb Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationAndrew Rota
 
Web Components and Modular CSS
Web Components and Modular CSSWeb Components and Modular CSS
Web Components and Modular CSSAndrew Rota
 

Plus de Andrew Rota (17)

Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019
 
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
 
Getting Started with GraphQL && PHP
Getting Started with GraphQL && PHPGetting Started with GraphQL && PHP
Getting Started with GraphQL && PHP
 
Tutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPTutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHP
 
Building a GraphQL API in PHP
Building a GraphQL API in PHPBuilding a GraphQL API in PHP
Building a GraphQL API in PHP
 
Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)
 
Integrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationIntegrating React.js Into a PHP Application
Integrating React.js Into a PHP Application
 
Effectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side PerformanceEffectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side Performance
 
UI Rendering at Wayfair
UI Rendering at WayfairUI Rendering at Wayfair
UI Rendering at Wayfair
 
Better PHP-Frontend Integration with Tungsten.js
Better PHP-Frontend Integration with Tungsten.jsBetter PHP-Frontend Integration with Tungsten.js
Better PHP-Frontend Integration with Tungsten.js
 
Tungsten.js: Building a Modular Framework
Tungsten.js: Building a Modular FrameworkTungsten.js: Building a Modular Framework
Tungsten.js: Building a Modular Framework
 
Why Static Type Checking is Better
Why Static Type Checking is BetterWhy Static Type Checking is Better
Why Static Type Checking is Better
 
An Exploration of Frameworks – and Why We Built Our Own
An Exploration of Frameworks – and Why We Built Our OwnAn Exploration of Frameworks – and Why We Built Our Own
An Exploration of Frameworks – and Why We Built Our Own
 
The Complementarity of React and Web Components
The Complementarity of React and Web ComponentsThe Complementarity of React and Web Components
The Complementarity of React and Web Components
 
Web Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationWeb Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing Combination
 
Bem methodology
Bem methodologyBem methodology
Bem methodology
 
Web Components and Modular CSS
Web Components and Modular CSSWeb Components and Modular CSS
Web Components and Modular CSS
 

Dernier

%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 

Dernier (20)

%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 

Component Based UI Architectures for the Web