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