SlideShare uma empresa Scribd logo
Escalando aplicações no front-end com
ReactJS
Mateus Martinelli Paegle
mateus.paegle@hotmail.com
11 anos em desenvolvimento de software
6 anos em desenvolvimento web
3 anos no desenvolvimento front-end
1
O que é o
ReactJS?
2
O que é
escalabilidade?
3
Arquitetura
4
Desempenho
front-end Ema Software
1
O que é o ReactJS?
1 O que é o ReactJS?
● Não é um framework, o React só resolve 1 problema, que é
renderizar componentes
● É uma biblioteca desenvolvida pelo Facebook/Instagram
● Funciona como o V do MV*/MVC/MVVC
● VirtualDOM
● CDD - Component Driven Development
1 O que é o ReactJS?
2
O que é escalabilidade?
2 O que é escalabilidade?
"Escalabilidade é uma característica desejável em todo o sistema,
em uma rede ou em um processo, que indica sua capacidade de
manipular uma porção crescente de trabalho de forma uniforme, ou
estar preparado para crescer." - Wikipédia
2 O que é escalabilidade?
O que escalabilidade no front-end?
Escalabilidade no front-end é a habilidade da sua aplicação ter ‘mais’
mais usuários
mais funcionalidade
mais desenvolvedores
3
Arquitetura
3 Arquitetura
Gerenciamento de estados
É a condição de um componente, em um dado momento no tempo.
3 Arquitetura - Gerenciamento de estado
3 Arquitetura - Gerenciamento de estado
3 Arquitetura - Gerenciamento de estado
3 Arquitetura - Gerenciamento de estado
Fluxo unidirecional de dados
(Unidirectional data flow)
3 Arquitetura - Gerenciamento de estado
Store
3 Arquitetura - Gerenciamento de estado
Store
3 Arquitetura - Gerenciamento de estado
Flux Redux/
3 Arquitetura
Containers e Componentes
O container é
responsável pelas ações
O componente é responsável pela
renderização
3 Arquitetura - Containers e Componentes
ComentarioList.js
3 Arquitetura - Containers e Componentes
ComentarioListContainer.js
ComentarioList2ComentarioList2.js
3 Arquitetura
Estrutura
- App1
--- css
----- comentario.css
--- js
----- actions
------- ComentarioActions.js
----- containers
------- ComentarioListContainer.js
----- components
------- ComentarioList.js
----- constants
------- ComentarioConstants.js
----- stores
------- ComentarioStore.js
Tradicionalmente
agrupamos por
funções
- App2
--- css
----- comentario.css
--- js
----- actions
------- ComentarioActions.js
----- containers
------- ComentarioListContainer.js
----- components
------- ComentarioList.js
----- constants
------- ComentarioConstants.js
----- stores
------- ComentarioStore.js
3 Arquitetura
- App1
--- src
----- containers
------- comentario
--------- style.css
--------- actions.js
--------- store.js
--------- constants.js
--------- ComentarioContainer.js
----- components
------- ComentarioList.js
------- ComentarioListStyle.css
Agrupar por
features
- App2
--- src
----- containers
------- comentario
--------- style.css
--------- actions.js
--------- store.js
--------- constants.js
--------- ComentarioContainer.js
----- components
------- ComentarioList.js
------- ComentarioListStyle.css
Estrutura
3 Arquitetura
Estrutura
NPM NPM LOCAL
APP1
APP2
- react
- react-dom
- lodash
- moment
- jquery
- TextInput
- NumberInput
- Checkbox
- RadioGroup
- Select
- Search
- ComentarioList
3 Arquitetura
Estrutura
● Fácil de renomear arquivos e estruturas
● Fácil de mover estruturas de lugar
● Você vai trabalhar em uma única pasta
● Fácil reutilização de componentes
● Criação de componentes isolados
4
Desempenho
4 Desempenho
4 Desempenho
4 Desempenho
4 Desempenho
4 Desempenho
shouldComponentUpdate
4 Desempenho
Use this as an opportunity to return false when you're certain that the transition to
the new props and state will not require a component update.
4 Desempenho
4 Desempenho
shouldComponentUpdate(nextProps) {
return nextProps !== this.props;
}
4 Desempenho
Facebook again!
4 Desempenho
shouldComponentUpdate(nextProps) {
return !nextProps.equals(this.props);
}
4 Desempenho
Escalando aplicações no front-end com ReactJS
Anúncio

Mais conteúdo relacionado

Mais procurados (20)

テスト自動化 はじめの一歩 (Test Automation -First Step-) in アジャイルひよこクラブ #agile_hiyoko
テスト自動化 はじめの一歩 (Test Automation -First Step-) in アジャイルひよこクラブ #agile_hiyokoテスト自動化 はじめの一歩 (Test Automation -First Step-) in アジャイルひよこクラブ #agile_hiyoko
テスト自動化 はじめの一歩 (Test Automation -First Step-) in アジャイルひよこクラブ #agile_hiyoko
teyamagu
 
ARMアーキテクチャにおけるセキュリティ機構の紹介
ARMアーキテクチャにおけるセキュリティ機構の紹介ARMアーキテクチャにおけるセキュリティ機構の紹介
ARMアーキテクチャにおけるセキュリティ機構の紹介
sounakano
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
tyrantbrian
 
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャシステム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
Recruit Technologies
 
시스템 프로그램 설계1 최종발표
시스템 프로그램 설계1 최종발표시스템 프로그램 설계1 최종발표
시스템 프로그램 설계1 최종발표
Jeongmin Cha
 
CrowdStrike Falconと効果的に楽に付き合っていくために
CrowdStrike Falconと効果的に楽に付き合っていくためにCrowdStrike Falconと効果的に楽に付き合っていくために
CrowdStrike Falconと効果的に楽に付き合っていくために
Eiji Hoshimoto
 
現場の声から生まれた障害対応ツール「Barry」
現場の声から生まれた障害対応ツール「Barry」現場の声から生まれた障害対応ツール「Barry」
現場の声から生まれた障害対応ツール「Barry」
IIJ
 
ソフトウェア構成管理入門
ソフトウェア構成管理入門ソフトウェア構成管理入門
ソフトウェア構成管理入門
智治 長沢
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Paulo Gandra de Sousa
 
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
Satoshi Masuda
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
Gabriel Eisbruch
 
Git超入門(ハンズオン).pdf
Git超入門(ハンズオン).pdfGit超入門(ハンズオン).pdf
Git超入門(ハンズオン).pdf
憲昭 村田
 
チケット管理システム大決戦 JIRA vs Redmine vs Trac ユーザーが語る、なぜ私はこのツールを使うのか
チケット管理システム大決戦 JIRA vs Redmine vs Trac ユーザーが語る、なぜ私はこのツールを使うのかチケット管理システム大決戦 JIRA vs Redmine vs Trac ユーザーが語る、なぜ私はこのツールを使うのか
チケット管理システム大決戦 JIRA vs Redmine vs Trac ユーザーが語る、なぜ私はこのツールを使うのか
Shunsuke (Sean) Osawa
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
Suman Chakraborty
 
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
CIが分からないPE(SETエンジニア)の1年生がWebAPIの負荷テストを背伸びしてCI運用したCIが分からないPE(SETエンジニア)の1年生がWebAPIの負荷テストを背伸びしてCI運用した
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
ssuser0be501
 
Microservices with Spring Boot Tutorial | Edureka
Microservices with Spring Boot Tutorial | EdurekaMicroservices with Spring Boot Tutorial | Edureka
Microservices with Spring Boot Tutorial | Edureka
Edureka!
 
Ant, Maven and Jenkins
Ant, Maven and JenkinsAnt, Maven and Jenkins
Ant, Maven and Jenkins
Kenu, GwangNam Heo
 
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へチケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
 
聊聊測試左移
聊聊測試左移聊聊測試左移
聊聊測試左移
Jersey (CHE-PING) Su
 
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
Satoshi Shimazaki
 
テスト自動化 はじめの一歩 (Test Automation -First Step-) in アジャイルひよこクラブ #agile_hiyoko
テスト自動化 はじめの一歩 (Test Automation -First Step-) in アジャイルひよこクラブ #agile_hiyokoテスト自動化 はじめの一歩 (Test Automation -First Step-) in アジャイルひよこクラブ #agile_hiyoko
テスト自動化 はじめの一歩 (Test Automation -First Step-) in アジャイルひよこクラブ #agile_hiyoko
teyamagu
 
ARMアーキテクチャにおけるセキュリティ機構の紹介
ARMアーキテクチャにおけるセキュリティ機構の紹介ARMアーキテクチャにおけるセキュリティ機構の紹介
ARMアーキテクチャにおけるセキュリティ機構の紹介
sounakano
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
tyrantbrian
 
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャシステム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
Recruit Technologies
 
시스템 프로그램 설계1 최종발표
시스템 프로그램 설계1 최종발표시스템 프로그램 설계1 최종발표
시스템 프로그램 설계1 최종발표
Jeongmin Cha
 
CrowdStrike Falconと効果的に楽に付き合っていくために
CrowdStrike Falconと効果的に楽に付き合っていくためにCrowdStrike Falconと効果的に楽に付き合っていくために
CrowdStrike Falconと効果的に楽に付き合っていくために
Eiji Hoshimoto
 
現場の声から生まれた障害対応ツール「Barry」
現場の声から生まれた障害対応ツール「Barry」現場の声から生まれた障害対応ツール「Barry」
現場の声から生まれた障害対応ツール「Barry」
IIJ
 
ソフトウェア構成管理入門
ソフトウェア構成管理入門ソフトウェア構成管理入門
ソフトウェア構成管理入門
智治 長沢
 
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
Satoshi Masuda
 
Git超入門(ハンズオン).pdf
Git超入門(ハンズオン).pdfGit超入門(ハンズオン).pdf
Git超入門(ハンズオン).pdf
憲昭 村田
 
チケット管理システム大決戦 JIRA vs Redmine vs Trac ユーザーが語る、なぜ私はこのツールを使うのか
チケット管理システム大決戦 JIRA vs Redmine vs Trac ユーザーが語る、なぜ私はこのツールを使うのかチケット管理システム大決戦 JIRA vs Redmine vs Trac ユーザーが語る、なぜ私はこのツールを使うのか
チケット管理システム大決戦 JIRA vs Redmine vs Trac ユーザーが語る、なぜ私はこのツールを使うのか
Shunsuke (Sean) Osawa
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
Suman Chakraborty
 
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
CIが分からないPE(SETエンジニア)の1年生がWebAPIの負荷テストを背伸びしてCI運用したCIが分からないPE(SETエンジニア)の1年生がWebAPIの負荷テストを背伸びしてCI運用した
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
ssuser0be501
 
Microservices with Spring Boot Tutorial | Edureka
Microservices with Spring Boot Tutorial | EdurekaMicroservices with Spring Boot Tutorial | Edureka
Microservices with Spring Boot Tutorial | Edureka
Edureka!
 
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へチケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
 
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
Satoshi Shimazaki
 

Semelhante a Escalando aplicações no front-end com ReactJS (20)

React - Compartilhando estado entre componentes
React - Compartilhando estado entre componentesReact - Compartilhando estado entre componentes
React - Compartilhando estado entre componentes
Jefferson Mariano de Souza
 
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
iMasters
 
435142330-Guia-Completo-React-Js.pdf
435142330-Guia-Completo-React-Js.pdf435142330-Guia-Completo-React-Js.pdf
435142330-Guia-Completo-React-Js.pdf
Julia469065
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1
Bruno Catão
 
Utilizando react js em aplicações escaláveis
Utilizando react js em aplicações escaláveisUtilizando react js em aplicações escaláveis
Utilizando react js em aplicações escaláveis
Gustavo Felizola
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
Ruben Marcus Luz Paschoarelli
 
arquivopdfdenextparatestedaresolucao.pdf
arquivopdfdenextparatestedaresolucao.pdfarquivopdfdenextparatestedaresolucao.pdf
arquivopdfdenextparatestedaresolucao.pdf
nayalla1
 
Arquitetura JavaScript Escalável da Netflix
Arquitetura JavaScript Escalável da NetflixArquitetura JavaScript Escalável da Netflix
Arquitetura JavaScript Escalável da Netflix
Bruno Tavares
 
Começando com React.js
Começando com React.jsComeçando com React.js
Começando com React.js
João Pedro Benedetti Misturini
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
Denis Velrino
 
React - Front In Maceió Framework Edition - 2017
React - Front In Maceió Framework Edition - 2017React - Front In Maceió Framework Edition - 2017
React - Front In Maceió Framework Edition - 2017
Djanilson Alves
 
SHIPTO MEE - Software de controle de rotas
SHIPTO MEE - Software de controle de rotasSHIPTO MEE - Software de controle de rotas
SHIPTO MEE - Software de controle de rotas
loncleanime
 
Vacinando mais de 200 mil pessoas com ReactJS e GraphQL
Vacinando mais de 200 mil pessoas com ReactJS e GraphQLVacinando mais de 200 mil pessoas com ReactJS e GraphQL
Vacinando mais de 200 mil pessoas com ReactJS e GraphQL
Taller Negócio Digitais
 
Node JS - Parte 2
Node JS - Parte 2Node JS - Parte 2
Node JS - Parte 2
Bruno Catão
 
Vue.js - o framework progressivo
Vue.js - o framework progressivoVue.js - o framework progressivo
Vue.js - o framework progressivo
Vinicius Reis
 
Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)
Huge
 
React + Flux (Alt)
React + Flux (Alt)React + Flux (Alt)
React + Flux (Alt)
Cezar Luiz
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativo
GDGFoz
 
Independência no Front-End com GraphQL e Redux
Independência no Front-End com GraphQL e ReduxIndependência no Front-End com GraphQL e Redux
Independência no Front-End com GraphQL e Redux
Yuri Adams
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
Andre Baltieri
 
React - Compartilhando estado entre componentes
React - Compartilhando estado entre componentesReact - Compartilhando estado entre componentes
React - Compartilhando estado entre componentes
Jefferson Mariano de Souza
 
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
iMasters
 
435142330-Guia-Completo-React-Js.pdf
435142330-Guia-Completo-React-Js.pdf435142330-Guia-Completo-React-Js.pdf
435142330-Guia-Completo-React-Js.pdf
Julia469065
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1
Bruno Catão
 
Utilizando react js em aplicações escaláveis
Utilizando react js em aplicações escaláveisUtilizando react js em aplicações escaláveis
Utilizando react js em aplicações escaláveis
Gustavo Felizola
 
arquivopdfdenextparatestedaresolucao.pdf
arquivopdfdenextparatestedaresolucao.pdfarquivopdfdenextparatestedaresolucao.pdf
arquivopdfdenextparatestedaresolucao.pdf
nayalla1
 
Arquitetura JavaScript Escalável da Netflix
Arquitetura JavaScript Escalável da NetflixArquitetura JavaScript Escalável da Netflix
Arquitetura JavaScript Escalável da Netflix
Bruno Tavares
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
Denis Velrino
 
React - Front In Maceió Framework Edition - 2017
React - Front In Maceió Framework Edition - 2017React - Front In Maceió Framework Edition - 2017
React - Front In Maceió Framework Edition - 2017
Djanilson Alves
 
SHIPTO MEE - Software de controle de rotas
SHIPTO MEE - Software de controle de rotasSHIPTO MEE - Software de controle de rotas
SHIPTO MEE - Software de controle de rotas
loncleanime
 
Vacinando mais de 200 mil pessoas com ReactJS e GraphQL
Vacinando mais de 200 mil pessoas com ReactJS e GraphQLVacinando mais de 200 mil pessoas com ReactJS e GraphQL
Vacinando mais de 200 mil pessoas com ReactJS e GraphQL
Taller Negócio Digitais
 
Vue.js - o framework progressivo
Vue.js - o framework progressivoVue.js - o framework progressivo
Vue.js - o framework progressivo
Vinicius Reis
 
Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)Desenvolvimento Client-Side 2016 (BrazilJS)
Desenvolvimento Client-Side 2016 (BrazilJS)
Huge
 
React + Flux (Alt)
React + Flux (Alt)React + Flux (Alt)
React + Flux (Alt)
Cezar Luiz
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativo
GDGFoz
 
Independência no Front-End com GraphQL e Redux
Independência no Front-End com GraphQL e ReduxIndependência no Front-End com GraphQL e Redux
Independência no Front-End com GraphQL e Redux
Yuri Adams
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
Andre Baltieri
 
Anúncio

Mais de Criciúma Dev (15)

Gustavo Pantuza / Automatizando deploys de ACLs no datacenter da Globo.com - ...
Gustavo Pantuza / Automatizando deploys de ACLs no datacenter da Globo.com - ...Gustavo Pantuza / Automatizando deploys de ACLs no datacenter da Globo.com - ...
Gustavo Pantuza / Automatizando deploys de ACLs no datacenter da Globo.com - ...
Criciúma Dev
 
Como ser um bom dev FrontEnd em 2017
Como ser um bom dev FrontEnd em 2017Como ser um bom dev FrontEnd em 2017
Como ser um bom dev FrontEnd em 2017
Criciúma Dev
 
UX Design para desenvolvedores
UX Design para desenvolvedoresUX Design para desenvolvedores
UX Design para desenvolvedores
Criciúma Dev
 
Reduzindo complexidade
Reduzindo complexidadeReduzindo complexidade
Reduzindo complexidade
Criciúma Dev
 
Javascript, porque?
Javascript, porque?Javascript, porque?
Javascript, porque?
Criciúma Dev
 
Aspectos de segurança em bancos de dados para web
Aspectos de segurança em bancos de dados para webAspectos de segurança em bancos de dados para web
Aspectos de segurança em bancos de dados para web
Criciúma Dev
 
Webpack packing it all
Webpack packing it allWebpack packing it all
Webpack packing it all
Criciúma Dev
 
Microserviços na vida real
Microserviços na vida realMicroserviços na vida real
Microserviços na vida real
Criciúma Dev
 
DevOps Culture: Como implementar métodos ágeis em infraestrutura como código
DevOps Culture: Como implementar métodos ágeis em infraestrutura como códigoDevOps Culture: Como implementar métodos ágeis em infraestrutura como código
DevOps Culture: Como implementar métodos ágeis em infraestrutura como código
Criciúma Dev
 
CSS {Grid} Layout: It's evolution baby
CSS {Grid} Layout: It's evolution babyCSS {Grid} Layout: It's evolution baby
CSS {Grid} Layout: It's evolution baby
Criciúma Dev
 
Simplificando UX e Códigos para Conteúdos Complexos
Simplificando UX e Códigos para Conteúdos ComplexosSimplificando UX e Códigos para Conteúdos Complexos
Simplificando UX e Códigos para Conteúdos Complexos
Criciúma Dev
 
Metodologias interativas
Metodologias interativasMetodologias interativas
Metodologias interativas
Criciúma Dev
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Criciúma Dev
 
Venha para o lado livre da força. O que você pode fazer pelo software livre e...
Venha para o lado livre da força. O que você pode fazer pelo software livre e...Venha para o lado livre da força. O que você pode fazer pelo software livre e...
Venha para o lado livre da força. O que você pode fazer pelo software livre e...
Criciúma Dev
 
Começando na área de desenvolvimento mobile. O que preciso saber?
Começando na área de desenvolvimento mobile. O que preciso saber?Começando na área de desenvolvimento mobile. O que preciso saber?
Começando na área de desenvolvimento mobile. O que preciso saber?
Criciúma Dev
 
Gustavo Pantuza / Automatizando deploys de ACLs no datacenter da Globo.com - ...
Gustavo Pantuza / Automatizando deploys de ACLs no datacenter da Globo.com - ...Gustavo Pantuza / Automatizando deploys de ACLs no datacenter da Globo.com - ...
Gustavo Pantuza / Automatizando deploys de ACLs no datacenter da Globo.com - ...
Criciúma Dev
 
Como ser um bom dev FrontEnd em 2017
Como ser um bom dev FrontEnd em 2017Como ser um bom dev FrontEnd em 2017
Como ser um bom dev FrontEnd em 2017
Criciúma Dev
 
UX Design para desenvolvedores
UX Design para desenvolvedoresUX Design para desenvolvedores
UX Design para desenvolvedores
Criciúma Dev
 
Reduzindo complexidade
Reduzindo complexidadeReduzindo complexidade
Reduzindo complexidade
Criciúma Dev
 
Aspectos de segurança em bancos de dados para web
Aspectos de segurança em bancos de dados para webAspectos de segurança em bancos de dados para web
Aspectos de segurança em bancos de dados para web
Criciúma Dev
 
Webpack packing it all
Webpack packing it allWebpack packing it all
Webpack packing it all
Criciúma Dev
 
Microserviços na vida real
Microserviços na vida realMicroserviços na vida real
Microserviços na vida real
Criciúma Dev
 
DevOps Culture: Como implementar métodos ágeis em infraestrutura como código
DevOps Culture: Como implementar métodos ágeis em infraestrutura como códigoDevOps Culture: Como implementar métodos ágeis em infraestrutura como código
DevOps Culture: Como implementar métodos ágeis em infraestrutura como código
Criciúma Dev
 
CSS {Grid} Layout: It's evolution baby
CSS {Grid} Layout: It's evolution babyCSS {Grid} Layout: It's evolution baby
CSS {Grid} Layout: It's evolution baby
Criciúma Dev
 
Simplificando UX e Códigos para Conteúdos Complexos
Simplificando UX e Códigos para Conteúdos ComplexosSimplificando UX e Códigos para Conteúdos Complexos
Simplificando UX e Códigos para Conteúdos Complexos
Criciúma Dev
 
Metodologias interativas
Metodologias interativasMetodologias interativas
Metodologias interativas
Criciúma Dev
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Criciúma Dev
 
Venha para o lado livre da força. O que você pode fazer pelo software livre e...
Venha para o lado livre da força. O que você pode fazer pelo software livre e...Venha para o lado livre da força. O que você pode fazer pelo software livre e...
Venha para o lado livre da força. O que você pode fazer pelo software livre e...
Criciúma Dev
 
Começando na área de desenvolvimento mobile. O que preciso saber?
Começando na área de desenvolvimento mobile. O que preciso saber?Começando na área de desenvolvimento mobile. O que preciso saber?
Começando na área de desenvolvimento mobile. O que preciso saber?
Criciúma Dev
 
Anúncio

Último (7)

DRUCOS - MANUAL REPETIDORES LINHA 94X.pdf
DRUCOS - MANUAL REPETIDORES LINHA 94X.pdfDRUCOS - MANUAL REPETIDORES LINHA 94X.pdf
DRUCOS - MANUAL REPETIDORES LINHA 94X.pdf
AlvaroDrummondCoelho
 
Camunda Chapter SP - Orquestrando Agentes de IA com Camunda.pptx
Camunda Chapter SP - Orquestrando Agentes de IA com Camunda.pptxCamunda Chapter SP - Orquestrando Agentes de IA com Camunda.pptx
Camunda Chapter SP - Orquestrando Agentes de IA com Camunda.pptx
guilherme570019
 
Facilitar a gestão, a visibilidade e a reutilização dos dados de investigação...
Facilitar a gestão, a visibilidade e a reutilização dos dados de investigação...Facilitar a gestão, a visibilidade e a reutilização dos dados de investigação...
Facilitar a gestão, a visibilidade e a reutilização dos dados de investigação...
CSUC - Consorci de Serveis Universitaris de Catalunya
 
MicroCT_Algorítmos_de_Reconstrução_P1_Física_Nuclear
MicroCT_Algorítmos_de_Reconstrução_P1_Física_NuclearMicroCT_Algorítmos_de_Reconstrução_P1_Física_Nuclear
MicroCT_Algorítmos_de_Reconstrução_P1_Física_Nuclear
Cristian Souza
 
Case Evino: Como superamos os problemas e realizamos uma virada de sucesso - ...
Case Evino: Como superamos os problemas e realizamos uma virada de sucesso - ...Case Evino: Como superamos os problemas e realizamos uma virada de sucesso - ...
Case Evino: Como superamos os problemas e realizamos uma virada de sucesso - ...
Rafael Bartalotti Pinto
 
IOT - Introdução à IOT - SENAI - Historia e componentes
IOT - Introdução à IOT  - SENAI - Historia e componentesIOT - Introdução à IOT  - SENAI - Historia e componentes
IOT - Introdução à IOT - SENAI - Historia e componentes
ClaudirJosRubenich
 
FinOps na Prática: Como reduzimos mais de 50% dos custos cloud na Víssimo - M...
FinOps na Prática: Como reduzimos mais de 50% dos custos cloud na Víssimo - M...FinOps na Prática: Como reduzimos mais de 50% dos custos cloud na Víssimo - M...
FinOps na Prática: Como reduzimos mais de 50% dos custos cloud na Víssimo - M...
Rafael Bartalotti Pinto
 
DRUCOS - MANUAL REPETIDORES LINHA 94X.pdf
DRUCOS - MANUAL REPETIDORES LINHA 94X.pdfDRUCOS - MANUAL REPETIDORES LINHA 94X.pdf
DRUCOS - MANUAL REPETIDORES LINHA 94X.pdf
AlvaroDrummondCoelho
 
Camunda Chapter SP - Orquestrando Agentes de IA com Camunda.pptx
Camunda Chapter SP - Orquestrando Agentes de IA com Camunda.pptxCamunda Chapter SP - Orquestrando Agentes de IA com Camunda.pptx
Camunda Chapter SP - Orquestrando Agentes de IA com Camunda.pptx
guilherme570019
 
MicroCT_Algorítmos_de_Reconstrução_P1_Física_Nuclear
MicroCT_Algorítmos_de_Reconstrução_P1_Física_NuclearMicroCT_Algorítmos_de_Reconstrução_P1_Física_Nuclear
MicroCT_Algorítmos_de_Reconstrução_P1_Física_Nuclear
Cristian Souza
 
Case Evino: Como superamos os problemas e realizamos uma virada de sucesso - ...
Case Evino: Como superamos os problemas e realizamos uma virada de sucesso - ...Case Evino: Como superamos os problemas e realizamos uma virada de sucesso - ...
Case Evino: Como superamos os problemas e realizamos uma virada de sucesso - ...
Rafael Bartalotti Pinto
 
IOT - Introdução à IOT - SENAI - Historia e componentes
IOT - Introdução à IOT  - SENAI - Historia e componentesIOT - Introdução à IOT  - SENAI - Historia e componentes
IOT - Introdução à IOT - SENAI - Historia e componentes
ClaudirJosRubenich
 
FinOps na Prática: Como reduzimos mais de 50% dos custos cloud na Víssimo - M...
FinOps na Prática: Como reduzimos mais de 50% dos custos cloud na Víssimo - M...FinOps na Prática: Como reduzimos mais de 50% dos custos cloud na Víssimo - M...
FinOps na Prática: Como reduzimos mais de 50% dos custos cloud na Víssimo - M...
Rafael Bartalotti Pinto
 

Escalando aplicações no front-end com ReactJS

  • 1. Escalando aplicações no front-end com ReactJS
  • 2. Mateus Martinelli Paegle mateus.paegle@hotmail.com 11 anos em desenvolvimento de software 6 anos em desenvolvimento web 3 anos no desenvolvimento front-end 1 O que é o ReactJS? 2 O que é escalabilidade? 3 Arquitetura 4 Desempenho front-end Ema Software
  • 3. 1 O que é o ReactJS?
  • 4. 1 O que é o ReactJS? ● Não é um framework, o React só resolve 1 problema, que é renderizar componentes ● É uma biblioteca desenvolvida pelo Facebook/Instagram ● Funciona como o V do MV*/MVC/MVVC ● VirtualDOM ● CDD - Component Driven Development
  • 5. 1 O que é o ReactJS?
  • 6. 2 O que é escalabilidade?
  • 7. 2 O que é escalabilidade? "Escalabilidade é uma característica desejável em todo o sistema, em uma rede ou em um processo, que indica sua capacidade de manipular uma porção crescente de trabalho de forma uniforme, ou estar preparado para crescer." - Wikipédia
  • 8. 2 O que é escalabilidade? O que escalabilidade no front-end? Escalabilidade no front-end é a habilidade da sua aplicação ter ‘mais’ mais usuários mais funcionalidade mais desenvolvedores
  • 10. 3 Arquitetura Gerenciamento de estados É a condição de um componente, em um dado momento no tempo.
  • 11. 3 Arquitetura - Gerenciamento de estado
  • 12. 3 Arquitetura - Gerenciamento de estado
  • 13. 3 Arquitetura - Gerenciamento de estado
  • 14. 3 Arquitetura - Gerenciamento de estado Fluxo unidirecional de dados (Unidirectional data flow)
  • 15. 3 Arquitetura - Gerenciamento de estado Store
  • 16. 3 Arquitetura - Gerenciamento de estado Store
  • 17. 3 Arquitetura - Gerenciamento de estado Flux Redux/
  • 18. 3 Arquitetura Containers e Componentes O container é responsável pelas ações O componente é responsável pela renderização
  • 19. 3 Arquitetura - Containers e Componentes ComentarioList.js
  • 20. 3 Arquitetura - Containers e Componentes ComentarioListContainer.js ComentarioList2ComentarioList2.js
  • 21. 3 Arquitetura Estrutura - App1 --- css ----- comentario.css --- js ----- actions ------- ComentarioActions.js ----- containers ------- ComentarioListContainer.js ----- components ------- ComentarioList.js ----- constants ------- ComentarioConstants.js ----- stores ------- ComentarioStore.js Tradicionalmente agrupamos por funções - App2 --- css ----- comentario.css --- js ----- actions ------- ComentarioActions.js ----- containers ------- ComentarioListContainer.js ----- components ------- ComentarioList.js ----- constants ------- ComentarioConstants.js ----- stores ------- ComentarioStore.js
  • 22. 3 Arquitetura - App1 --- src ----- containers ------- comentario --------- style.css --------- actions.js --------- store.js --------- constants.js --------- ComentarioContainer.js ----- components ------- ComentarioList.js ------- ComentarioListStyle.css Agrupar por features - App2 --- src ----- containers ------- comentario --------- style.css --------- actions.js --------- store.js --------- constants.js --------- ComentarioContainer.js ----- components ------- ComentarioList.js ------- ComentarioListStyle.css Estrutura
  • 23. 3 Arquitetura Estrutura NPM NPM LOCAL APP1 APP2 - react - react-dom - lodash - moment - jquery - TextInput - NumberInput - Checkbox - RadioGroup - Select - Search - ComentarioList
  • 24. 3 Arquitetura Estrutura ● Fácil de renomear arquivos e estruturas ● Fácil de mover estruturas de lugar ● Você vai trabalhar em uma única pasta ● Fácil reutilização de componentes ● Criação de componentes isolados
  • 31. shouldComponentUpdate 4 Desempenho Use this as an opportunity to return false when you're certain that the transition to the new props and state will not require a component update.
  • 35. 4 Desempenho shouldComponentUpdate(nextProps) { return !nextProps.equals(this.props); }
  翻译: