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!
NGi ─ MERN
By Marcelo Camargo
NGi ─ MERN
- 1,523