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

Escalando aplicações no front-end com ReactJS

  • 1.
    Escalando aplicações nofront-end com ReactJS
  • 2.
    Mateus Martinelli Paegle mateus.paegle@hotmail.com 11anos 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
  • 9.
  • 10.
    3 Arquitetura Gerenciamento deestados É 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 eComponentes 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 NPMLOCAL APP1 APP2 - react - react-dom - lodash - moment - jquery - TextInput - NumberInput - Checkbox - RadioGroup - Select - Search - ComentarioList
  • 24.
    3 Arquitetura Estrutura ● Fácilde 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
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
    shouldComponentUpdate 4 Desempenho Use thisas an opportunity to return false when you're certain that the transition to the new props and state will not require a component update.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.