JavaScript Applications

Post on 28-Nov-2014

876 views 0 download

description

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

Transcript of JavaScript Applications

JavaScript Applications Luciano Costa

desenvolvimento de software

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

trabalho desde 2001 com

home-office

recentemente

vamos falar de JavaScript  

JavaScript

não é Java!  

JavaScript

não é fácil!  

JavaScript linguagem funcional e dinâmica

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

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

JavaScript todo mundo acha que sabe

JavaScript todo mundo acha que sabe  sempre foi mal compreendida

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

2005 ⇒       Ajax  ⇒       Web  2.0  

até q

ue, e

m

Assynchronous Javascript And XML  

solicita

pesquisa

responde

workflow sistemas web

solicita

pesquisa

responde

workflow sistemas web

ü  HTTP

solicita

pesquisa

responde

ü  Apache ü  Tomcat ü  IIS ü  Etc..

workflow sistemas web

ü  HTTP

solicita

pesquisa

responde

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

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

ü  HTTP

solicita

pesquisa

responde ü  ORM ü  Driver

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

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

ü  HTTP

solicita

pesquisa

responde ü  FileSystem ü  Memória ü  Serviço

ü  ORM ü  Driver

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

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

ü  HTTP

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

XMLHttpRequest

XML, JSON

O que muda com AJAX ?

AJAX virou gambiarra  tentativa de simular realtime gera overhead  

Websockets  comunicação bidirecional  

HTML5

publish / subscribe

O que muda com websockets?

realtime

Socket.io  cross-browser realtime layer  

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

Node.js  Evented I/O for V8 JavaScript  

Node.js  

Node.js  

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

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

NPM  

% npm install -d

/package.json  

Express.js  Node web framework  

Express.js  

EJS Templates  <% Embedded JavaScript %>  

EJS Templates  

/views/Alunos.ejs  

Mongoose  Modelagem de Objetos para MongoDB  

Mongoose  

Mongoose  

Jasmine  Framework Testes BDD  

Jasmine  

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

Obrigado!  Luciano Costa

http://lucianocosta.info  

@lscosta