
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 (com capivara)
By Marcelo Camargo
NGi ─ MERN (com capivara)
- 1,599