Top Banner
CAIO INCAU @iCaioIncau @caioincau Coordenador de Engenharia na Wirecard
36

Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

Aug 19, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

CAIO INCAU

@iCaioIncau@caioincau

Coordenador de Engenharia na Wirecard

Page 2: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

ARQUITETURA DE UM TIME FRONT-END DE ALTA PERFORMANCE

A EXPERIÊNCIA DA WIRECARD

Page 3: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

VAMOS INVESTIR EM USABILIDADE E CRIAR UM SISTEMA NOVO.

Diretoria da Wirecard

Page 4: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

SISTEMA ANTERIOR

▸ Ruby on Rails

▸ JQuery (pelo menos três versões)

▸ Bootstrap

▸ Super acoplado e pouca coisa era reusável

Page 5: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

O QUE ESTÁ APLICAÇÃO IRIA PRECISAR?

▸ Manipular dados sensíveis

▸ Alta escalabilidade

▸ Suporte cross browser

▸ Tempo curto para um projeto grande

▸ Fácil de reusar e incrementar os componentes

▸ Doze equipes de back-end gerando insumo para o projeto

Page 6: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

ESTRUTURA DA TALK

▸ Processos e práticas da equipe enxuta

▸ Arquitetura Front-End simples e escalável

▸ Deploy, build e otimizações

Page 7: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

ESTRUTURA DA EQUIPE

▸ 2 UX Designers

▸ 2 UI Designers

▸ 4 Front-ends

▸ 1 QA

▸ 1 PO

Page 8: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

FOCO NO PROCESSO

Page 9: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

TRANSPARÊNCIA DO WIP

Page 10: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

TRIPLE DIAMOND PROCESS

Page 11: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

QA É UM PROCESSO, NÃO UM PAPEL

Page 12: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

"SIMPLICIDADE É O ÚLTIMO GRAU DE SOFISTICAÇÃO",

Leonardo da Vinci

Page 13: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

DADA A PREMISSA DE MANTER A STACK SIMPLES, QUAL FRAMEWORK FAZ MAIS SENTIDO PARA NÓS?

Page 14: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

VUE.JS

▸ Suporta IE9

▸ Curva de aprendizado pequena

▸ Melhor performance

▸ Boa documentação

▸ Framework progressivo

▸ Open Source

▸ Comunidade super ativa

Page 15: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

APESAR DA SIMPLICIDADE DO FRAMEWORK, COMEÇOU A FICAR COMPLICADO LIDAR COM DADOS NA APLICAÇÃO…

Page 16: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

VUEX

▸ Implementação baseada em Flux

▸ Zero config

▸ Todos os dados da aplicação centralizados em um lugar

▸ Fácil acesso a dados, cache e time-travel

Page 17: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

AS RESPOSTAS DA APIS NÃO ERAM CONCISAS…

Page 18: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

GRAPHQL

▸ Mais de 30 APIs, precisávamos padronizar

▸ Mais uma camada de cache

▸ Redução do tráfego de dados, podíamos pegar somente o necessário

▸ Melhor controle sobre as respostas

▸ Mais resiliente

Page 19: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

GRAPHQL

Page 20: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

GRAPHQL É RESILIENTE “ATÉ DEMAIS”, PRECISAMOS CAPTURAR OS ERROS E ATUAR SOBRE ELES…

Page 21: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

SENTRY

▸ Monitoramento de erros real time

▸ Agimos antes dos usuários reportarem os erros

▸ Maior facilidade de debugar

▸ Seis linhas de código capturam os erros da aplicação toda.

Page 22: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

Raven.config(`https://${KEY}@sentry.io/${APP}`) .addPlugin(RavenVue, Vue) .install();

Vue.config.errorHandler = (err, vm, info) => { Raven.captureException(err) }

CÓDIGO SENTRY

Page 23: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

PRECISAMOS DE TESTES PARA GARANTIR QUE ESTES ERROS NÃO VOLTEM ACONTECER, ALÉM DE PREVINIR NOVOS…

Page 24: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

JEST E CYPRESS

▸ Jest para testes unitários, integração fácil, pouca configuração

▸ Cypress para testes exploratórios, testes feitos em JS pela própria equipe de dev

▸ Qualidade como um processo, QAs escrevem critérios de aceite e ajudam no roteiro de testes, mas qualidade é obrigação de todos

Page 25: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

BUILD

Page 26: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

WEBPACK

▸ Build customizável

▸ Otimizações nativas out of the box

▸ Diferentes builds por ambiente

▸ Code-split fácil

▸ Remove código inutilizado

▸ Build com suporte a browsers mais antigos(Babel)

Page 27: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

DOCKER

▸ Maior facilidade de desenvolvimento

▸ Podemos pegar exatamente a imagem que está em produção

▸ Facilita o deploy do GraphQL, dado que usamos o ECS e podemos escalar com facilidade

Page 28: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

CI E DEPLOY

Page 29: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

CIRCLE CI

▸ Fácil de configurar

▸ Podemos aproveitar a imagem docker que já criamos

▸ Garante os testes

▸ Usamos CD, merge na master, deploy para ambiente de integração, adicionou tag, vai para produção

Page 30: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

PARA ONDE VÃO OS ASSETS GERADOS ?

Page 31: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

AMAZON S3

▸ Fácil escalar

▸ Barato

▸ Simples de configurar, quase um copy e paste de arquivos

▸ 99,999999999% (11 9s) de disponibilidade

Page 32: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

AMAZON CLOUDFRONT

▸ Baixa Latência

▸ Alta velocidade de transferência

▸ Configuração em poucos clicks pelo painel da Amazon

Page 33: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

E PARA ONDE VAI O GRAPHQL?

Page 34: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

AMAZON ECS

▸ Altamente escalável

▸ Alta performance

▸ Deploy integrado no CI através de command lines

▸ Monitoria grátis e clara

▸ Se recupera sozinho de falhas

Page 35: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

DÚVIDAS?

Page 36: Coordenador de Engenharia na Wirecard @iCaioIncau @caioincau · VUE.JS Suporta IE9 Curva de aprendizado pequena Melhor performance Boa documentação Framework progressivo

OBRIGADO