O documento apresenta uma introdução ao Node.js, incluindo o que é Node.js, como é usado por empresas como PayPal e Guardião Cloud, e alguns módulos populares como Express, Passport e Mongoose. O documento também discute brevemente NoSQL e MongoDB e conclui que Node.js vale a pena investir por ser simples, atual e de fácil configuração e desenvolvimento.
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.
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.
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
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.
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.
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.