SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
JavaScript Applications
        Luciano Costa
trabalho desde 2001 com

    desenvolvimento de software




Ruby, JavaScript, PHP, Java, Delphi, Asp, ColdFusion, Clipper, UA-Clip, VB
home-office
recentemente
JavaScript	
  
vamos falar de
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
entenda >	
   eventos, callbacks, closures, escopo	
  
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
até que, em


                     ⇒ 	
  	
  	
  Ajax	
  
                     ⇒ 	
  	
  	
  Web	
  2.0	
  
Assynchronous Javascript And XML	
  
workflow sistemas web

solicita
               pesquisa
responde
workflow sistemas web

 solicita
ü  HTTP       pesquisa
 responde
workflow sistemas web
            ü    Apache
            ü    Tomcat
            ü    IIS
 solicita   ü    Etc..

ü  HTTP                   pesquisa
 responde
workflow sistemas web
            ü    Apache
            ü    Tomcat
            ü    IIS
 solicita   ü    Etc..

ü  HTTP                   pesquisa
 responde
            ü    Java
            ü    Ruby
            ü    PHP
            ü    .Net
            ü    Etc..
workflow sistemas web
            ü    Apache
            ü    Tomcat
            ü    IIS
 solicita   ü    Etc..

ü  HTTP                   pesquisa
 responde                  ü  ORM
                           ü  Driver
            ü    Java
            ü    Ruby
            ü    PHP
            ü    .Net
            ü    Etc..
workflow sistemas web
            ü    Apache
            ü    Tomcat
            ü    IIS
 solicita   ü    Etc..

ü  HTTP                   pesquisa
 responde                  ü  ORM
                           ü  Driver
            ü    Java                  ü  FileSystem
            ü    Ruby                  ü  Memória
            ü    PHP                   ü  Serviço
            ü    .Net
            ü    Etc..
workflow sistemas web
                   ü    Apache
                   ü    Tomcat
                   ü    IIS
 solicita          ü    Etc..

ü  HTTP                          pesquisa
 responde                         ü  ORM
                                  ü  Driver
                   ü    Java                  ü  FileSystem
ü    HTML
                   ü    Ruby                  ü  Memória
ü    CSS
                   ü    PHP                   ü  Serviço
ü    JavaScript
ü    XML          ü    .Net
ü    Mídia        ü    Etc..
O que muda com AJAX ?
     XMLHttpRequest



       XML, JSON
AJAX virou gambiarra	
  
tentativa de simular realtime gera overhead	
  
Websockets	
  
                               HTML5




comunicação bidirecional	
  
O que muda com websockets?

       publish / subscribe
            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 – http://dev.w3.org/html5/websockets
  Socket.io – http://socket.io
    Node.js – http://nodejs.org
      NPM – http://npmjs.org
 Express.js – http://expressjs.com
       EJS – http://embeddedjs.com
 Mongoose – https://github.com/LearnBoost/mongoose
   Jasmine – https://github.com/pivotal/jasmine
Obrigado!	
  
 Luciano Costa
 http://lucianocosta.info	
  




     @lscosta	
  

Mais conteúdo relacionado

Destaque

Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Maurício Linhares
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismoMaurício Linhares
 
Plano de projeto - Sistema de Remoção de Servidores
Plano de projeto - Sistema de Remoção de ServidoresPlano de projeto - Sistema de Remoção de Servidores
Plano de projeto - Sistema de Remoção de ServidoresDiego Armando
 
Testes ágeis
Testes ágeisTestes ágeis
Testes ágeisQualister
 
O que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilO que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilSamanta Cicilia
 
Testes automatizados
Testes automatizadosTestes automatizados
Testes automatizadosRodrigo Maia
 
Cuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpecCuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpecMaurício Linhares
 
Plano de gerenciamento_da_qualidade
Plano de gerenciamento_da_qualidadePlano de gerenciamento_da_qualidade
Plano de gerenciamento_da_qualidadeSharles Sa
 
Demoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a horaDemoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a horaVanderson Silva
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMaurício Linhares
 
Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4Vanderson Silva
 

Destaque (20)

Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
 
Plano de projeto - Sistema de Remoção de Servidores
Plano de projeto - Sistema de Remoção de ServidoresPlano de projeto - Sistema de Remoção de Servidores
Plano de projeto - Sistema de Remoção de Servidores
 
Aplicações Web Ricas e Acessíveis
Aplicações Web Ricas e AcessíveisAplicações Web Ricas e Acessíveis
Aplicações Web Ricas e Acessíveis
 
Ajax em java
Ajax em javaAjax em java
Ajax em java
 
Testes Rápidos
Testes RápidosTestes Rápidos
Testes Rápidos
 
Behaviour-Driven Development com Ruby
Behaviour-Driven Development com RubyBehaviour-Driven Development com Ruby
Behaviour-Driven Development com Ruby
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
 
Testes ágeis
Testes ágeisTestes ágeis
Testes ágeis
 
O que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilO que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágil
 
Testes automatizados
Testes automatizadosTestes automatizados
Testes automatizados
 
Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
BDD em Ação - Testadores 2015
BDD em Ação - Testadores 2015BDD em Ação - Testadores 2015
BDD em Ação - Testadores 2015
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
Cuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpecCuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpec
 
Plano de gerenciamento_da_qualidade
Plano de gerenciamento_da_qualidadePlano de gerenciamento_da_qualidade
Plano de gerenciamento_da_qualidade
 
Demoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a horaDemoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a hora
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
 
Mercado de TI
Mercado de TIMercado de TI
Mercado de TI
 
Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4
 

Semelhante a JavaScript Aplicações Luciano Costa

Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 
PWB01 - Conceitos de Sistemas Web-convertido.pptx
PWB01 - Conceitos de Sistemas Web-convertido.pptxPWB01 - Conceitos de Sistemas Web-convertido.pptx
PWB01 - Conceitos de Sistemas Web-convertido.pptxGetlioDaSilvaSantos
 
PWB01 - Conceitos de Sistemas Web.pdf
PWB01 - Conceitos de Sistemas Web.pdfPWB01 - Conceitos de Sistemas Web.pdf
PWB01 - Conceitos de Sistemas Web.pdfGetlioDaSilvaSantos
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
Secomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - IntroduçãoSecomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - IntroduçãoEmerson Macedo
 
HackaPET 2019: React
HackaPET 2019: ReactHackaPET 2019: React
HackaPET 2019: ReactMaira Bello
 
APIs REST com Spring Boot
APIs REST com Spring BootAPIs REST com Spring Boot
APIs REST com Spring BootWesley Fuchter
 
O bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsO bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsNuno Paz
 
BrazilJS - Node.JS Realtime Web Applications
BrazilJS - Node.JS Realtime Web ApplicationsBrazilJS - Node.JS Realtime Web Applications
BrazilJS - Node.JS Realtime Web ApplicationsEmerson Macedo
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaAndrei Tognolo
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSEmerson Macedo
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsIgo Coelho
 
Javascript levado a serio
Javascript levado a serioJavascript levado a serio
Javascript levado a serioJaydson Gomes
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a WebLuiz Cláudio Silva
 

Semelhante a JavaScript Aplicações Luciano Costa (20)

Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
PWB01 - Conceitos de Sistemas Web-convertido.pptx
PWB01 - Conceitos de Sistemas Web-convertido.pptxPWB01 - Conceitos de Sistemas Web-convertido.pptx
PWB01 - Conceitos de Sistemas Web-convertido.pptx
 
PWB01 - Conceitos de Sistemas Web.pdf
PWB01 - Conceitos de Sistemas Web.pdfPWB01 - Conceitos de Sistemas Web.pdf
PWB01 - Conceitos de Sistemas Web.pdf
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Secomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - IntroduçãoSecomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - Introdução
 
HackaPET 2019: React
HackaPET 2019: ReactHackaPET 2019: React
HackaPET 2019: React
 
APIs REST com Spring Boot
APIs REST com Spring BootAPIs REST com Spring Boot
APIs REST com Spring Boot
 
O bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsO bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.js
 
Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
 
BrazilJS - Node.JS Realtime Web Applications
BrazilJS - Node.JS Realtime Web ApplicationsBrazilJS - Node.JS Realtime Web Applications
BrazilJS - Node.JS Realtime Web Applications
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo java
 
Html5
Html5Html5
Html5
 
Carreira php
Carreira phpCarreira php
Carreira php
 
Mini Curso Mashup Coreu
Mini Curso Mashup CoreuMini Curso Mashup Coreu
Mini Curso Mashup Coreu
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJS
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
Javascript levado a serio
Javascript levado a serioJavascript levado a serio
Javascript levado a serio
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a Web
 

JavaScript Aplicações Luciano Costa