
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,620