SlideShare uma empresa Scribd logo
Prof. Romulo Fagundes Cantanhede
Node.JS O poder do JavaScript
do lado do Servidor
Agenda
❖ Quem sou eu…
❖ O que é Node.JS?
❖ Mas como não falar de noSQL
❖ Alguns módulos que o Node.JS possui
❖ Conclusão
Quem sou eu...
❖ Formado em Lic. em Comp. na FARN (Atual UNIRN).
❖ Esp. em Desenvolvimento de Soft. Corporativos FARN.
❖ Mestrando em Eng. de Software IMD/UFRN.
❖ Certificação Linux LPI-1 e LPI-2.
❖ Diretor da WeboneSystem Soluções em TI.
❖ Professor da UNIRN.
O que é Node.JS?
❖ Projeto mantido pela Joyent, desde de 2009.
❖ Seu core é baseado no interpretador JS do Google
Chrome - V8.
❖ Capaz de suportar um grande volume de requisições de
forma assíncrona.
O que é Node.JS?
❖ Possui uma excelente performance, e consegue “rodar"
em máquina com menor recurso - ideal para ambientes
em nuvem.
❖ Fácil desenvolvimento! Por ser baseado em JavaScript -
Linguagem Dinâmica e madura. Trabalha de forma
modular.
❖ Trabalha de forma assíncrona em toda a essência e não
bloqueante.
Quem usa o Node.JS
https://nodejs.org/industry/
Caso de Sucesso - PayPay
❖ A nível de desenvolvimento conseguiram os seguintes feitos:
❖ Desenvolvimento 2x mais rápido com menos pessoas.
❖ 33% de redução de linha de código.
❖ 40% menos arquivos.
❖ A nível de produção:
❖ 2x mais requisições do que o padrão Java utilizado.
❖ 35% a menos na média do tempo de resposta.
https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/
Caso de Sucesso - Guardião Cloud
❖ Solução iniciada no mestrado que tem como objetivo ser
uma plataforma de Internet das Coisas.
❖ Tem por objetivo realizar a coleta de informações em
formatos variados.
❖ Necessário possibilitar a escalabilidade, bem como ter
um excelente tempo de resposta.
Caso de Sucesso - Guardião Cloud
Nginx + Node.JS (Forever)
Mas como não falar de noSQL
❖ Um novo modelo de armazenamento de dados, fugindo
ao padrão SQL de ser…
❖ Com diversos tipos de formatos de armazenamento, um
dos mais utilizados em conjunto com o Node.JS é o
MongoDB.
❖ Armazena as informações no formato Documento, e no
formato JSON.
Mas como não falar de noSQL
❖ Dentro as premissas é não obrigar o relacionamento com
outros entidades, podendo armazenar inclusive as
informações em um registro só.
Alguns módulos que o Node.JS possui
❖ NPM - http://www.npmjs.com - Node Package
Manager
❖ Gerenciado de pacotes de uma aplicação Node.JS.
❖ Possui 145.496 pacotes…
Alguns módulos que o Node.JS possui
❖ Express - http://expressjs.com
❖ Voltado para o desenvolvimento web.
❖ Possui definição de acesso através de rotas.
Alguns módulos que o Node.JS possui
❖ Express - http://expressjs.com
Alguns módulos que o Node.JS possui
❖ Passport - http://passportjs.org
❖ Módulo responsável por facilitar o processo de
autenticação do usuário.
❖ Com mais de 140 estratégias de autenticação
Alguns módulos que o Node.JS possui
❖ Passport - http://passportjs.org
Alguns módulos que o Node.JS possui
❖ Mongoose - http://mongoosejs.com
❖ Responsável por facilitar a integração com o
MongoDB.
❖ Lembra do Hibernate? bem parecido…
❖ Possibilita a criação de classes de modelo para
facilitar a persistência de dados.
Alguns módulos que o Node.JS possui
❖ Mongoose - http://mongoosejs.com
Alguns módulos que o Node.JS possui
❖ JADE - http://jade-lang.com
❖ Facilita o processo de desenvolvimento HTML.
❖ Trabalha semelhante ao modelo de desenvolvimento
tabular, ou seja, o HTML é gerado baseado na
indentação de código.
Alguns módulos que o Node.JS possui
❖ JADE - http://jade-lang.com
Alguns módulos que o Node.JS possui
❖ NodeMailer - Envio de e-mail.
❖ i18next - Internacionalização.
❖ cron - Agendamento de demandas por horários.
❖ moment - Biblioteca para trabalhar com data/hora.
❖ async - Trabalhar de forma síncrona com algo tão assíncrona.
❖ socket.io - WebSocket - HTML5 (!!)
❖ forever - Permite “rodar” a aplicação.
❖ Dentre vários outros……
Conclusão
❖ Sempre devemos estar nos atualizando…e a proposta
do Node.JS é ser algo simples e de fácil resolução de
problemas.
❖ Compensa investir? Sim! Principalmente para quem
deseja implementar algo simples e rápido.
❖ Bem simples de configurar, e simples de desenvolver.
❖ Bem atual para propostas atuais…noSQL, REST,
Cloud….dentre outros.
Conclusão
❖ http://c9.io - IDE de desenvolvimento Web.
❖ http://heroku.com - Possível publicar e gerenciar as
aplicações.
❖ Amazon AWS - Possível publicar aplicações de forma
direta utilizando Node.JS.
❖ Intellij Idea - IDE com Plugin de Node.JS
❖ Sublime Text - Editor de texto com recursos avançados.

Mais conteúdo relacionado

Mais procurados

JavaScript Moderno
JavaScript ModernoJavaScript Moderno
JavaScript Moderno
Josino Rodrigues
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
Eduardo Bohrer
 
Node.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarNode.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizar
Filipe Falcão
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.
Leonardo Quevedo
 
Introdução ao Nodejs
Introdução ao NodejsIntrodução ao Nodejs
Introdução ao Nodejs
Márcio Silvestroni
 
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
Emerson Macedo
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
Pablo Souza
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
Pablo Feijó
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre Nodejs
Rafael Soares
 
Node.js
Node.jsNode.js
Node.js
luizhse
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHP
Vinícius Krolow
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
Filipe Morelli
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java
Jeff Prestes
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
Jony dos Santos Kostetzer
 
O que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensO que é nodejs, cases e vantagens
O que é nodejs, cases e vantagens
Rodrigo Matheus
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
Rodrigo Branas
 
Javascript nos dias de hoje
Javascript nos dias de hojeJavascript nos dias de hoje
Javascript nos dias de hoje
Caio Ribeiro Pereira
 
Java script vs vb script
Java script vs vb scriptJava script vs vb script
Java script vs vb script
Nielson Santana
 
Node.js Sorocaba - meetup #1
Node.js Sorocaba - meetup #1Node.js Sorocaba - meetup #1
Node.js Sorocaba - meetup #1
Pablo Souza
 
[Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js [Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js
Bárbara Cabral da Conceição, CTFL
 

Mais procurados (20)

JavaScript Moderno
JavaScript ModernoJavaScript Moderno
JavaScript Moderno
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Node.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarNode.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizar
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.
 
Introdução ao Nodejs
Introdução ao NodejsIntrodução ao Nodejs
Introdução ao Nodejs
 
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
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre Nodejs
 
Node.js
Node.jsNode.js
Node.js
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHP
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
O que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensO que é nodejs, cases e vantagens
O que é nodejs, cases e vantagens
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
Javascript nos dias de hoje
Javascript nos dias de hojeJavascript nos dias de hoje
Javascript nos dias de hoje
 
Java script vs vb script
Java script vs vb scriptJava script vs vb script
Java script vs vb script
 
Node.js Sorocaba - meetup #1
Node.js Sorocaba - meetup #1Node.js Sorocaba - meetup #1
Node.js Sorocaba - meetup #1
 
[Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js [Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js
 

Semelhante a Node js - O poder do JavaScript do lado do servidor

Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Jackson F. de A. Mafra
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
munosai
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
Evaldo Junior
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Rodrigo Kono
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
Flávio Lisboa
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
michel adriano medeiros
 
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
Vinicius de Sá
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDB
Jhonathan de Souza Soares
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Vinicius Reis
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Christiano Anderson
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
Marcio Marinho
 
Ampliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-WebkitAmpliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-Webkit
Beto Muniz
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
Mario Guedes
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
Flávio Lisboa
 
Fundamentos Java - 01
Fundamentos Java - 01Fundamentos Java - 01
Fundamentos Java - 01
Daniel Gustavo Bernardo
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
Rafael Salerno de Oliveira
 
Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks js
andreluizlc
 
Desenvolvendo com IONIC
Desenvolvendo com IONICDesenvolvendo com IONIC
Desenvolvendo com IONIC
Michel Anderson Lütz Teixeira
 

Semelhante a Node js - O poder do JavaScript do lado do servidor (20)

Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDB
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Ampliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-WebkitAmpliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-Webkit
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Fundamentos Java - 01
Fundamentos Java - 01Fundamentos Java - 01
Fundamentos Java - 01
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks js
 
Desenvolvendo com IONIC
Desenvolvendo com IONICDesenvolvendo com IONIC
Desenvolvendo com IONIC
 

Mais de Romulo Fagundes

Internet das coisas + Guardião Cloud
Internet das coisas + Guardião CloudInternet das coisas + Guardião Cloud
Internet das coisas + Guardião Cloud
Romulo Fagundes
 
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSDesenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Romulo Fagundes
 
Aplicativos WeboneSystem
Aplicativos WeboneSystemAplicativos WeboneSystem
Aplicativos WeboneSystem
Romulo Fagundes
 
Guardião Cloud - Plataforma de IoT
Guardião Cloud - Plataforma de IoTGuardião Cloud - Plataforma de IoT
Guardião Cloud - Plataforma de IoT
Romulo Fagundes
 
Protocolos de Sistemas Embarcados
Protocolos de Sistemas EmbarcadosProtocolos de Sistemas Embarcados
Protocolos de Sistemas Embarcados
Romulo Fagundes
 
Minicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das CoisasMinicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das Coisas
Romulo Fagundes
 

Mais de Romulo Fagundes (6)

Internet das coisas + Guardião Cloud
Internet das coisas + Guardião CloudInternet das coisas + Guardião Cloud
Internet das coisas + Guardião Cloud
 
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSDesenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
 
Aplicativos WeboneSystem
Aplicativos WeboneSystemAplicativos WeboneSystem
Aplicativos WeboneSystem
 
Guardião Cloud - Plataforma de IoT
Guardião Cloud - Plataforma de IoTGuardião Cloud - Plataforma de IoT
Guardião Cloud - Plataforma de IoT
 
Protocolos de Sistemas Embarcados
Protocolos de Sistemas EmbarcadosProtocolos de Sistemas Embarcados
Protocolos de Sistemas Embarcados
 
Minicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das CoisasMinicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das Coisas
 

Node js - O poder do JavaScript do lado do servidor

  • 1. Prof. Romulo Fagundes Cantanhede Node.JS O poder do JavaScript do lado do Servidor
  • 2. Agenda ❖ Quem sou eu… ❖ O que é Node.JS? ❖ Mas como não falar de noSQL ❖ Alguns módulos que o Node.JS possui ❖ Conclusão
  • 3. Quem sou eu... ❖ Formado em Lic. em Comp. na FARN (Atual UNIRN). ❖ Esp. em Desenvolvimento de Soft. Corporativos FARN. ❖ Mestrando em Eng. de Software IMD/UFRN. ❖ Certificação Linux LPI-1 e LPI-2. ❖ Diretor da WeboneSystem Soluções em TI. ❖ Professor da UNIRN.
  • 4. O que é Node.JS? ❖ Projeto mantido pela Joyent, desde de 2009. ❖ Seu core é baseado no interpretador JS do Google Chrome - V8. ❖ Capaz de suportar um grande volume de requisições de forma assíncrona.
  • 5. O que é Node.JS? ❖ Possui uma excelente performance, e consegue “rodar" em máquina com menor recurso - ideal para ambientes em nuvem. ❖ Fácil desenvolvimento! Por ser baseado em JavaScript - Linguagem Dinâmica e madura. Trabalha de forma modular. ❖ Trabalha de forma assíncrona em toda a essência e não bloqueante.
  • 6. Quem usa o Node.JS https://nodejs.org/industry/
  • 7. Caso de Sucesso - PayPay ❖ A nível de desenvolvimento conseguiram os seguintes feitos: ❖ Desenvolvimento 2x mais rápido com menos pessoas. ❖ 33% de redução de linha de código. ❖ 40% menos arquivos. ❖ A nível de produção: ❖ 2x mais requisições do que o padrão Java utilizado. ❖ 35% a menos na média do tempo de resposta. https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/
  • 8. Caso de Sucesso - Guardião Cloud ❖ Solução iniciada no mestrado que tem como objetivo ser uma plataforma de Internet das Coisas. ❖ Tem por objetivo realizar a coleta de informações em formatos variados. ❖ Necessário possibilitar a escalabilidade, bem como ter um excelente tempo de resposta.
  • 9. Caso de Sucesso - Guardião Cloud Nginx + Node.JS (Forever)
  • 10. Mas como não falar de noSQL ❖ Um novo modelo de armazenamento de dados, fugindo ao padrão SQL de ser… ❖ Com diversos tipos de formatos de armazenamento, um dos mais utilizados em conjunto com o Node.JS é o MongoDB. ❖ Armazena as informações no formato Documento, e no formato JSON.
  • 11. Mas como não falar de noSQL ❖ Dentro as premissas é não obrigar o relacionamento com outros entidades, podendo armazenar inclusive as informações em um registro só.
  • 12. Alguns módulos que o Node.JS possui ❖ NPM - http://www.npmjs.com - Node Package Manager ❖ Gerenciado de pacotes de uma aplicação Node.JS. ❖ Possui 145.496 pacotes…
  • 13. Alguns módulos que o Node.JS possui ❖ Express - http://expressjs.com ❖ Voltado para o desenvolvimento web. ❖ Possui definição de acesso através de rotas.
  • 14. Alguns módulos que o Node.JS possui ❖ Express - http://expressjs.com
  • 15. Alguns módulos que o Node.JS possui ❖ Passport - http://passportjs.org ❖ Módulo responsável por facilitar o processo de autenticação do usuário. ❖ Com mais de 140 estratégias de autenticação
  • 16. Alguns módulos que o Node.JS possui ❖ Passport - http://passportjs.org
  • 17. Alguns módulos que o Node.JS possui ❖ Mongoose - http://mongoosejs.com ❖ Responsável por facilitar a integração com o MongoDB. ❖ Lembra do Hibernate? bem parecido… ❖ Possibilita a criação de classes de modelo para facilitar a persistência de dados.
  • 18. Alguns módulos que o Node.JS possui ❖ Mongoose - http://mongoosejs.com
  • 19. Alguns módulos que o Node.JS possui ❖ JADE - http://jade-lang.com ❖ Facilita o processo de desenvolvimento HTML. ❖ Trabalha semelhante ao modelo de desenvolvimento tabular, ou seja, o HTML é gerado baseado na indentação de código.
  • 20. Alguns módulos que o Node.JS possui ❖ JADE - http://jade-lang.com
  • 21. Alguns módulos que o Node.JS possui ❖ NodeMailer - Envio de e-mail. ❖ i18next - Internacionalização. ❖ cron - Agendamento de demandas por horários. ❖ moment - Biblioteca para trabalhar com data/hora. ❖ async - Trabalhar de forma síncrona com algo tão assíncrona. ❖ socket.io - WebSocket - HTML5 (!!) ❖ forever - Permite “rodar” a aplicação. ❖ Dentre vários outros……
  • 22. Conclusão ❖ Sempre devemos estar nos atualizando…e a proposta do Node.JS é ser algo simples e de fácil resolução de problemas. ❖ Compensa investir? Sim! Principalmente para quem deseja implementar algo simples e rápido. ❖ Bem simples de configurar, e simples de desenvolver. ❖ Bem atual para propostas atuais…noSQL, REST, Cloud….dentre outros.
  • 23. Conclusão ❖ http://c9.io - IDE de desenvolvimento Web. ❖ http://heroku.com - Possível publicar e gerenciar as aplicações. ❖ Amazon AWS - Possível publicar aplicações de forma direta utilizando Node.JS. ❖ Intellij Idea - IDE com Plugin de Node.JS ❖ Sublime Text - Editor de texto com recursos avançados.