44
Arquitetura Web Desacoplada Gregory Peres Serrão Universidade Mackenzie Faculdade de Computação e Informática

Arquitetura Web Desacoplada - FCI/Mackenzie

Embed Size (px)

DESCRIPTION

Palestra apresentada na XLVII Jornada de Desenvolvimento Tecnológico promovida pela Faculdade de Computação e Informática da Universidade Presbiteriana Mackenzie em 13.10.2014

Citation preview

Page 1: Arquitetura Web Desacoplada - FCI/Mackenzie

Arquitetura Web Desacoplada

Gregory Peres Serrão

Universidade Mackenzie Faculdade de Computação e Informática

Page 2: Arquitetura Web Desacoplada - FCI/Mackenzie

Gregory Peres SerrãoArquiteto .NET

[email protected]

@gregperes84

http://github.com/gregperes

Page 3: Arquitetura Web Desacoplada - FCI/Mackenzie

Começo Evolução SPA

Page 4: Arquitetura Web Desacoplada - FCI/Mackenzie

O começo da internetPáginas estáticas com apenas textos e links.

Page 5: Arquitetura Web Desacoplada - FCI/Mackenzie
Page 6: Arquitetura Web Desacoplada - FCI/Mackenzie

Client-Side ScriptingLinguagens de programação rodando

no lado cliente proporcionando maior interação com o usuário.

Page 7: Arquitetura Web Desacoplada - FCI/Mackenzie

Dynamic HTMLHTML + Client-Side Scripting = DHTML

Page 8: Arquitetura Web Desacoplada - FCI/Mackenzie

Linguagens de Client-SideJavaScript, VBScript, Dart, Typescript

Page 10: Arquitetura Web Desacoplada - FCI/Mackenzie

Como manter um site grande?

Dar manutenção em muitas páginas é muito trabalhoso e demorado.

As páginas precisavam de mais dinamismo e prover acesso as informações armazenadas

em banco de dados.

Page 11: Arquitetura Web Desacoplada - FCI/Mackenzie

Server-Side ScriptingLinguagens de programação rodando

no lado do servidor usada para acessar banco de dados gerando páginas dinamicamente.

Page 12: Arquitetura Web Desacoplada - FCI/Mackenzie

Linguagens de Server-SideASP, PHP, C (Via CGI), Perl CGI, ColdFusion

Page 13: Arquitetura Web Desacoplada - FCI/Mackenzie

Requisição HTTP

Page 14: Arquitetura Web Desacoplada - FCI/Mackenzie

Exemplo Server-Side Scripting

Source

Page 15: Arquitetura Web Desacoplada - FCI/Mackenzie

Problemas?

Page 16: Arquitetura Web Desacoplada - FCI/Mackenzie

Evolução!

It’s evolution baby!

Page 17: Arquitetura Web Desacoplada - FCI/Mackenzie

Padrões ArquiteturaisClient-Server

Baseada em Componentes N-Camadas

SOA MVC

Page 18: Arquitetura Web Desacoplada - FCI/Mackenzie

Model View ControllerFat Model, Skinny Controller

vs Fat Controller, Skinny Model

Page 19: Arquitetura Web Desacoplada - FCI/Mackenzie

Server-Side Frameworks

Page 20: Arquitetura Web Desacoplada - FCI/Mackenzie

Single Page ApplicationsWhat a hell?

Page 21: Arquitetura Web Desacoplada - FCI/Mackenzie

Aplicação web que encaixa em uma única página com objetivo

de proporcionar uma experiência de usuário mais fluida, semelhante a um aplicativo desktop.

Page 22: Arquitetura Web Desacoplada - FCI/Mackenzie

Client desacoplado do Server

Page 23: Arquitetura Web Desacoplada - FCI/Mackenzie

Requisição HTTP em uma SPA

Page 24: Arquitetura Web Desacoplada - FCI/Mackenzie

Como começar?Backend e Frontend

Page 25: Arquitetura Web Desacoplada - FCI/Mackenzie

BackendDatabase e API REST

Page 26: Arquitetura Web Desacoplada - FCI/Mackenzie

API RESTRecursos disponibilizados pelo servidor

através do protocolo HTTP.

Page 27: Arquitetura Web Desacoplada - FCI/Mackenzie

Exemplo de API RESTMethod URL Action

GET /users Consulta todos os usuários

POST /users Incluir um novo usuário

PUT /users/1 Edita o usuário com Id = 1

DELETE /users/1 Deleta o usuário com Id = 1

Page 28: Arquitetura Web Desacoplada - FCI/Mackenzie

FrontendChunking, Data Binding, Routing, Ajax

Page 29: Arquitetura Web Desacoplada - FCI/Mackenzie

ChunkingCarregamento parcial

Page 30: Arquitetura Web Desacoplada - FCI/Mackenzie

Data BindingLigação dos dados

Page 31: Arquitetura Web Desacoplada - FCI/Mackenzie

RoutingHistórico de navegação

Page 32: Arquitetura Web Desacoplada - FCI/Mackenzie

AjaxRequisições assíncronas

Page 33: Arquitetura Web Desacoplada - FCI/Mackenzie

Frameworks MV*

Page 34: Arquitetura Web Desacoplada - FCI/Mackenzie

Arquitetura de FrontendCódigo legível, testável e de

fácil manutenção!

Page 35: Arquitetura Web Desacoplada - FCI/Mackenzie

Muita teoria e pouco prática!

Vamos ver um pouco de código :)

Page 36: Arquitetura Web Desacoplada - FCI/Mackenzie

Stack utilizadoBackend + Frontend

Page 37: Arquitetura Web Desacoplada - FCI/Mackenzie

BackendMongodb + NodeJS + NPM + Restify +

Mongoose

Page 38: Arquitetura Web Desacoplada - FCI/Mackenzie

FrontendAngularJS + Twitter Bootstrap

Page 39: Arquitetura Web Desacoplada - FCI/Mackenzie

Dicas!

Page 40: Arquitetura Web Desacoplada - FCI/Mackenzie

Qual framework escolher?

http://todomvc.com

Page 41: Arquitetura Web Desacoplada - FCI/Mackenzie

Teste seu código!http://jasmine.github.io

Page 42: Arquitetura Web Desacoplada - FCI/Mackenzie

Dúvidas?

Page 44: Arquitetura Web Desacoplada - FCI/Mackenzie

Obrigado!

[email protected]

@gregperes84

http://github.com/gregperes