JavaScript Applications

43
JavaScript Applications Luciano Costa

description

Apresentação realizada na Facensa em 10/11/11, sobre aplicações feitas em JavaScript.

Transcript of JavaScript Applications

Page 1: JavaScript Applications

JavaScript Applications Luciano Costa

Page 2: JavaScript Applications

desenvolvimento de software

Ruby, JavaScript, PHP, Java, Delphi, Asp, ColdFusion, Clipper, UA-Clip, VB

trabalho desde 2001 com

Page 3: JavaScript Applications

home-office

Page 4: JavaScript Applications

recentemente

Page 5: JavaScript Applications

vamos falar de JavaScript  

Page 6: JavaScript Applications

JavaScript

não é Java!  

Page 7: JavaScript Applications

JavaScript

não é fácil!  

Page 8: JavaScript Applications

JavaScript linguagem funcional e dinâmica

Page 9: JavaScript Applications

JavaScript linguagem funcional e dinâmica baseada em protótipos

Page 10: JavaScript Applications

JavaScript linguagem funcional e dinâmica baseada em protótipos eventos, callbacks, closures, escopo  entenda >  

Page 11: JavaScript Applications

JavaScript todo mundo acha que sabe

Page 12: JavaScript Applications

JavaScript todo mundo acha que sabe  sempre foi mal compreendida

Page 13: JavaScript Applications

JavaScript todo mundo acha que sabe  sempre foi mal compreendida sempre foi o Patinho Feio da internet…

Page 14: JavaScript Applications

2005 ⇒       Ajax  ⇒       Web  2.0  

até q

ue, e

m

Page 15: JavaScript Applications

Assynchronous Javascript And XML  

Page 16: JavaScript Applications

solicita

pesquisa

responde

workflow sistemas web

Page 17: JavaScript Applications

solicita

pesquisa

responde

workflow sistemas web

ü  HTTP

Page 18: JavaScript Applications

solicita

pesquisa

responde

ü  Apache ü  Tomcat ü  IIS ü  Etc..

workflow sistemas web

ü  HTTP

Page 19: JavaScript Applications

solicita

pesquisa

responde

ü  Java ü  Ruby ü  PHP ü  .Net ü  Etc..

workflow sistemas web ü  Apache ü  Tomcat ü  IIS ü  Etc..

ü  HTTP

Page 20: JavaScript Applications

solicita

pesquisa

responde ü  ORM ü  Driver

ü  Java ü  Ruby ü  PHP ü  .Net ü  Etc..

workflow sistemas web ü  Apache ü  Tomcat ü  IIS ü  Etc..

ü  HTTP

Page 21: JavaScript Applications

solicita

pesquisa

responde ü  FileSystem ü  Memória ü  Serviço

ü  ORM ü  Driver

ü  Java ü  Ruby ü  PHP ü  .Net ü  Etc..

workflow sistemas web ü  Apache ü  Tomcat ü  IIS ü  Etc..

ü  HTTP

Page 22: JavaScript Applications

solicita

pesquisa

responde ü  FileSystem ü  Memória ü  Serviço

ü  ORM ü  Driver

ü  HTML ü  CSS ü  JavaScript ü  XML ü  Mídia

ü  Java ü  Ruby ü  PHP ü  .Net ü  Etc..

workflow sistemas web ü  Apache ü  Tomcat ü  IIS ü  Etc..

ü  HTTP

Page 23: JavaScript Applications

XMLHttpRequest

XML, JSON

O que muda com AJAX ?

Page 24: JavaScript Applications

AJAX virou gambiarra  tentativa de simular realtime gera overhead  

Page 25: JavaScript Applications

Websockets  comunicação bidirecional  

HTML5

Page 26: JavaScript Applications

publish / subscribe

O que muda com websockets?

realtime

Page 27: JavaScript Applications

Socket.io  cross-browser realtime layer  

•  WebSocket •  Adobe® Flash® Socket •  AJAX long polling •  AJAX multipart streaming •  Forever Iframe •  JSONP Polling

Page 28: JavaScript Applications

Node.js  Evented I/O for V8 JavaScript  

Page 29: JavaScript Applications

Node.js  

Page 30: JavaScript Applications

Node.js  

% node facensa.js Servidor rodando em http://127.0.0.1:1337/

Page 31: JavaScript Applications

NPM  Gerenciador de Pacotes do Node  % npm install socket.io

Page 32: JavaScript Applications

NPM  

% npm install -d

/package.json  

Page 33: JavaScript Applications

Express.js  Node web framework  

Page 34: JavaScript Applications

Express.js  

Page 35: JavaScript Applications

EJS Templates  <% Embedded JavaScript %>  

Page 36: JavaScript Applications

EJS Templates  

/views/Alunos.ejs  

Page 37: JavaScript Applications

Mongoose  Modelagem de Objetos para MongoDB  

Page 38: JavaScript Applications

Mongoose  

Page 39: JavaScript Applications

Mongoose  

Page 40: JavaScript Applications

Jasmine  Framework Testes BDD  

Page 41: JavaScript Applications

Jasmine  

Page 42: JavaScript Applications

Links Websockets

Socket.io Node.js

NPM Express.js

EJS Mongoose

Jasmine

– http://dev.w3.org/html5/websockets – http://socket.io – http://nodejs.org – http://npmjs.org – http://expressjs.com – http://embeddedjs.com – https://github.com/LearnBoost/mongoose

– https://github.com/pivotal/jasmine

Page 43: JavaScript Applications

Obrigado!  Luciano Costa

http://lucianocosta.info  

@lscosta