Upload
romulofc
View
105
Download
2
Embed Size (px)
Citation preview
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.
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
❖ 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
❖ 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
❖ 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❖ 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.