SlideShare uma empresa Scribd logo
Transformando um legado front-end em uma SPA com React
Transformando um legado
front-end em uma SPA com
React
Christiano Martins Milfont
Rivendel / São Paulo, Brasil
@cmilfont
Kete Martins Rufino
GreenMile / Ceará, Brasil
@ketemr
143 clientes
8 países
3 idiomas
250 servidores na AWS
1bi requisições/mês
90k linhas JS
2012 - 2017
Backbone (ecossistema completo em
2012) - Leaflet - Grunt - jQuery - Slick Grid
- Técnicas mistas de Dev
Greenmile Live
Acoplamento - Testes - Controle manual
do DOM - PERFORMANCE
Greenmile Live - Problemas
Solução - V1
Sentimentos do Time
Precisamos mudar!
1
2
34
Solução 1
Regra do escoteiro (Clean Code):
Deixar o lugar mais limpo do que
estava quando você chegou
Solução 1
Regra do escoteiro (Clean Code):
Deixar o lugar mais limpo do que
estava quando você chegou
Resolved: 12/Dec/16 5:17 PM
299
299
+10 Bugs resolvidos
Funciona!
Solução 1
Solução 1
Planejado: 2 semanas
Realizado: 2 meses
Transformando um legado front-end em uma SPA com React
Solução 1
- Infraestrutura do legado
- Acoplamento de funcionalidades
- Interação com outros componentes
- Impacto de outros componentes na lista
Solução 2
Congelar a versão
atual e começar tudo
do zero com React
Transformando um legado front-end em uma SPA com React
Solução 3
1. Levantar quais partes do sistema são mais
usadas (Princípio de Pareto)
2. Criar componentes React para essas partes
3. Importar os componentes como libs
4. Cada componente é um projeto novo no git
5. Substituir os componentes novos nas telas
Principais
componentes
19 Elementos
Mapa && Toolbar
48 Componentes
Form Builder
Telas Customizadas
26
Telas
8 com mapas
2 principais do
sistema
Solução 3 - Migrar tela mais crítica
Planejado: 2 meses.
Realizado: 3 meses e não completado.
Solução 3.1
Inverter o controle do Backbone para React
React Router assumindo as requisições e despachando
para novos containers ou controllers do Backbones do
legado (sim, código de "negócio" dentro do controller)
Estratégia
Lições Aprendidas
1. Inverter o controle para coordenar o
acoplamento e aumentar a coesão.
2. Trabalhar nas poucas Features que representam
+80% de operações dos usuários
3. Injetar pequenos universos de React no legado.
4. CI/CD 100% automatizado.
5. Testes automatizados
Obrigad@!

Mais conteúdo relacionado

PDF
Palestra JavaCE - FrontEnd
PDF
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
PDF
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
PPTX
O front-end moderno e sua lib mais popular: React
PDF
Independência no Front-End com GraphQL e Redux
PDF
De um sistema legado para micro serviços com GraphQL
PDF
Desenvolvendo uma App multiplataforma compartilhando 90% do código
PDF
React nos Trilhos
Palestra JavaCE - FrontEnd
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
O front-end moderno e sua lib mais popular: React
Independência no Front-End com GraphQL e Redux
De um sistema legado para micro serviços com GraphQL
Desenvolvendo uma App multiplataforma compartilhando 90% do código
React nos Trilhos

Último (7)

PPTX
Mapeamento de Objeto para Tabela Relacional
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
apresentacao introducao computacao ead.pdf
PPTX
Curso de Windows 11 resumido na prática.pptx
PDF
Evolução em código: algoritmos genéticos com PHP
Mapeamento de Objeto para Tabela Relacional
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Dos requisitos ao código: como criar código rastreável em PHP
apresentacao introducao computacao ead.pdf
Curso de Windows 11 resumido na prática.pptx
Evolução em código: algoritmos genéticos com PHP
Anúncio
Anúncio

Transformando um legado front-end em uma SPA com React