Marcelo Camargo, Paulo Cuchi, William Rozin
ON
Objetivo
Apresentar razões para escolha da
stack
Apresentar as ferramentas escolhidas durante análise
Como escolhemos?
2 semanas de análise
Testes massivos nas ferramentas
Comparação entre pontos com outras plataformas
Haja café!
Que
pontos
analisamos?
Performance
Segurança
Custo
Comunidade
O que
escolhemos?
Plataforma
NodeJS
Ampla comunidade
Amplos recursos
Alta escalabilidade
Alta performance
Modular e reativo
1 language to rule'em all
Maior gerenciador de pacotes
Plataforma
Linguagem
ECMAScript 6 + Babel
Ampla quantidade de
libraries
Fácil de encontrar desenvolvedores
Padronização
back-end
e
front-end
Prévio conhecimento da equipe
Linguagem
ECMAScript 6 + Babel
Linter
XO
Capture erros de forma estática
Gere warnings de "gambiarras"
Padronize o
coding-style
da equipe
Ling. estilo
LESS
CSS modular
Variáveis de controle
Write less, do more
Usado em quase todos os projetos internos
Ling. estilo
LESS
Banco de dados
mongoDB
Banco físico divisível
Boa integração com o Node
Facilidade de uso
Escalável
Sistema de índices bem elaborado
Banco de dados
mongoDB
Build system
Webpack
Usado para o
front-end
Rodar testes
Compilar ES6 para ES5
Compilar JSX
Minificar e gerar pacote de produção
Build system
Webpack
Framework UI
React + Redux
Componentização
Sem efeitos colaterais
Milhares de componentes
HTML-
like
syntax
Replicação de estado
Framework UI
React + Redux
Biblioteca de dados
ImutableJS
Alta performance
Estruturas de dados puras
Código simples e funcional
Mantida pelo Facebook
Biblioteca de dados
ImutableJS
Promises
Bluebird
Programação concorrente
Processos assíncronos
Para computações que podem falhar
Integrável com o mongoDB
Toolkit UI
MaterialUI
Material Design
Componentes React
Lindo
TDD e BDD
Chai + Mocha
Testes unitários
Deploy
com garantia
Testes de simulação
TDD e BDD
Chai + Mocha
Deploy
Docker
Não se repita
Deploy
automatizado
Fácil replicação
Deploy
Docker
Server
Debian Linux
apt-get
rules
Segurança e estabilidade
It's free!
Amamos Linux!
Made with Slides.com