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.

Node js - O poder do JavaScript do lado do servidor

  • 1.
    Prof. Romulo FagundesCantanhede Node.JS O poder do JavaScript do lado do Servidor
  • 2.
    Agenda ❖ Quem soueu… ❖ 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 oNode.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ãofalar 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ãofalar 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 queo 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 queo 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 queo Node.JS possui ❖ Express - http://expressjs.com
  • 15.
    Alguns módulos queo 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 queo Node.JS possui ❖ Passport - http://passportjs.org
  • 17.
    Alguns módulos queo 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 queo Node.JS possui ❖ Mongoose - http://mongoosejs.com
  • 19.
    Alguns módulos queo 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 queo Node.JS possui ❖ JADE - http://jade-lang.com
  • 21.
    Alguns módulos queo 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 devemosestar 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.