mean stack - aplicações web modernas com mean
Post on 11-Jun-2015
347 Views
Preview:
DESCRIPTION
TRANSCRIPT
Aplicações Web Modernas com MEAN Stack
João Gabriel Lima
www.jgabriellima.comjgabriel.ufpa@gmail.com
Quem souQuem souQuem souQuem sou
Arquiteto de Soluções
Engenheiro da Computação
Mestrando no PPGEE
Inteligência Computacional
Mineração de Dados
BigData
Stream Computing
Business Intelligence
Pilha de Tecnologias para o desenvolvimento de aplicações
Web modernas e robustas
MONGODB - VANTAGENS
● Velocidade
● Sem necessidade de um ORM
● Acesso mais natural aos dados
● Sem schema / sem migrations (com exceções)
● Failovercautomático
● Possibilidade de escalar escritas com sharding
- Orientado a documentos (JSON)- Sem Schema- Indíces- Sharding (Escala horizontalmente)- Javascript
Por que usar NoSQL?
● Novos paradigmas (nem tão novos assim);● Funcionalidades;● Escalabilidade;● Performance;● Não ficar preso a modelagem;
Volume de dados
● Grande volume é relativo, o que você considera grande?– Dados que crescem exponencialmente;
– Agregam muitos valores dinamicamente;
– Não precisam de modelagem;
Considere uso de MongoDB se...
● Está usando muito cache em sua aplicação;● Os dados estão crescendo de forma exponencial;● Precisa de processamento em tempo real;● Gosta de desenvolvimento ágil;● Sua aplicação é “beta perpétua”;● Tem dificuldade para trabalhar com modelo
relacional;● Usa muito “join” na sua aplicação relacional;
JavaScript no Servidor
Não é baseado em threads
Eficiente e altamente escalável
Somente 5 anos de vida (criado em 2009)Lead e criador: Ryan Dahl
2010: começa a ganhar mais popularidade
2011surge NPM
suporte nativo a Windows
2012: Novo lead: Isaac Schlueter (npm)
2014Novo lead: Timothy Fontaine
“bug fixing, performance tuning, staying up to date with the V8 engine”
HistóriaHistória
Ambiente de execução e bibliotecas para rodar JavaScript
Independente de qualquer navegador
Multiplataforma (Linux, Windows, Mac, etc)
Open Source (https://github.com/joyent/node)
Single threaded
O que é NodeJSO que é NodeJS
Loop de eventos com uma única thread
Work queue
A única thread
Consulta o banco
Resultados do BD
Resultados do BD
Novo request
Novo request
Timeout de pooling
Modelo assíncronoModelo assíncrono
Processamento intensoCodificação de vídeo, etc.Mas ele pode chamar para o codificador
Apps CRUD “Forms over data”Rails/ASP.NET um pouco mais maduros
Comunicação em tempo realSockets, polling, etc.
Serviços de rede customizadosMedia servers, proxies, etc.
JSON web servicesPequena camada de aplicação sobre o BD
Interfaces web focadas no clienteQualquer coisa que você faria com WebAPI
Node é…Node é…
Excelente para: Bom para:
Ruim para:
Quem usa?
• Framework JavaScript com grande foco em HTML;• Conceito MVC;• Desenvolvido pela Google; • Permite uma padronização de arquitetura
“enterprise” em uma aplicação web dinâmica; • Permite criação de novas tags em HTML para seu
navegador interpretar;• Suporta os navegadores: IE8+, Chrome, Firefox,
Safari e Opera;
O que é?
Principais features;
• Bootstrap;• Two-way Data-Binding;• Templates;• Repeaters;• Filters;• Injeção de Dependência;• Templates;• Routes;• Eventos;• RESTful;
Outras Iniciativas
Aplicações Web Modernas com MEAN Stack
Como começar?http://mean.io/#!/
Como começar?http://meanjs.org/
BoilerplatesBoilerplates
Aplicações Web Modernas com MEAN Stack
João Gabriel Lima
www.jgabriellima.comjgabriel.ufpa@gmail.com
top related