47
Aplicações Web Modernas com MEAN Stack João Gabriel Lima www.jgabriellima.com [email protected]

Mean Stack - Aplicações Web Modernas com MEAN

Embed Size (px)

DESCRIPTION

Palestra do Software Freedom Day Belém, que ocorreu no dia 19/09/2014 no CTIC - UFPA - Universidade Federal do Pará. Apresentando a pilha tecnológica MongoDB, ExpressJS, AngularJS, NodeJS. Vantagens, Desvantagens e como começar. Introdução ao projeto open-source MolotovSeries

Citation preview

Page 1: Mean Stack - Aplicações Web Modernas com MEAN

Aplicações Web Modernas com MEAN Stack

João Gabriel Lima

[email protected]

Page 2: Mean Stack - Aplicações Web Modernas com MEAN

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

Page 3: Mean Stack - Aplicações Web Modernas com MEAN
Page 4: Mean Stack - Aplicações Web Modernas com MEAN

Pilha de Tecnologias para o desenvolvimento de aplicações

Web modernas e robustas

Page 5: Mean Stack - Aplicações Web Modernas com MEAN
Page 6: Mean Stack - Aplicações Web Modernas com MEAN
Page 7: Mean Stack - Aplicações Web Modernas com MEAN
Page 8: Mean Stack - Aplicações Web Modernas com MEAN
Page 9: Mean Stack - Aplicações Web Modernas com MEAN
Page 10: Mean Stack - Aplicações Web Modernas com MEAN
Page 11: Mean Stack - Aplicações Web Modernas com MEAN
Page 12: Mean Stack - Aplicações Web Modernas com MEAN

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

Page 13: Mean Stack - Aplicações Web Modernas com MEAN

- Orientado a documentos (JSON)- Sem Schema- Indíces- Sharding (Escala horizontalmente)- Javascript

Page 14: Mean Stack - Aplicações Web Modernas com MEAN

Por que usar NoSQL?

● Novos paradigmas (nem tão novos assim);● Funcionalidades;● Escalabilidade;● Performance;● Não ficar preso a modelagem;

Page 15: Mean Stack - Aplicações Web Modernas com MEAN

Volume de dados

● Grande volume é relativo, o que você considera grande?– Dados que crescem exponencialmente;

– Agregam muitos valores dinamicamente;

– Não precisam de modelagem;

Page 16: Mean Stack - Aplicações Web Modernas com MEAN

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;

Page 17: Mean Stack - Aplicações Web Modernas com MEAN
Page 18: Mean Stack - Aplicações Web Modernas com MEAN
Page 19: Mean Stack - Aplicações Web Modernas com MEAN

JavaScript no Servidor

Não é baseado em threads

Eficiente e altamente escalável

Page 20: Mean Stack - Aplicações Web Modernas com MEAN

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

Page 21: Mean Stack - Aplicações Web Modernas com MEAN

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

Page 22: Mean Stack - Aplicações Web Modernas com MEAN

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

Page 23: Mean Stack - Aplicações Web Modernas com MEAN

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:

Page 24: Mean Stack - Aplicações Web Modernas com MEAN

Quem usa?

Page 25: Mean Stack - Aplicações Web Modernas com MEAN
Page 26: Mean Stack - Aplicações Web Modernas com MEAN
Page 27: Mean Stack - Aplicações Web Modernas com MEAN

• 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 é?

Page 28: Mean Stack - Aplicações Web Modernas com MEAN

Principais features;

• Bootstrap;• Two-way Data-Binding;• Templates;• Repeaters;• Filters;• Injeção de Dependência;• Templates;• Routes;• Eventos;• RESTful;

Page 29: Mean Stack - Aplicações Web Modernas com MEAN
Page 30: Mean Stack - Aplicações Web Modernas com MEAN
Page 31: Mean Stack - Aplicações Web Modernas com MEAN
Page 32: Mean Stack - Aplicações Web Modernas com MEAN
Page 33: Mean Stack - Aplicações Web Modernas com MEAN
Page 34: Mean Stack - Aplicações Web Modernas com MEAN
Page 35: Mean Stack - Aplicações Web Modernas com MEAN
Page 36: Mean Stack - Aplicações Web Modernas com MEAN
Page 37: Mean Stack - Aplicações Web Modernas com MEAN

Outras Iniciativas

Page 38: Mean Stack - Aplicações Web Modernas com MEAN
Page 39: Mean Stack - Aplicações Web Modernas com MEAN
Page 40: Mean Stack - Aplicações Web Modernas com MEAN
Page 41: Mean Stack - Aplicações Web Modernas com MEAN

Aplicações Web Modernas com MEAN Stack

Page 42: Mean Stack - Aplicações Web Modernas com MEAN

Como começar?http://mean.io/#!/

Page 43: Mean Stack - Aplicações Web Modernas com MEAN
Page 44: Mean Stack - Aplicações Web Modernas com MEAN

Como começar?http://meanjs.org/

Page 45: Mean Stack - Aplicações Web Modernas com MEAN

BoilerplatesBoilerplates

Page 46: Mean Stack - Aplicações Web Modernas com MEAN
Page 47: Mean Stack - Aplicações Web Modernas com MEAN

Aplicações Web Modernas com MEAN Stack

João Gabriel Lima

[email protected]