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.