23
Prof. Romulo Fagundes Cantanhede Node.JS O poder do JavaScript do lado do Servidor

Node js - O poder do JavaScript do lado do servidor

Embed Size (px)

Citation preview

Page 1: Node js  - O poder do JavaScript do lado do servidor

Prof. Romulo Fagundes Cantanhede

Node.JS O poder do JavaScript do lado do Servidor

Page 2: 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

Page 3: Node js  - O poder do JavaScript do lado do servidor

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.

Page 4: Node js  - O poder do JavaScript do lado do servidor

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.

Page 5: Node js  - O poder do JavaScript do lado do servidor

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.

Page 6: Node js  - O poder do JavaScript do lado do servidor

Quem usa o Node.JS

https://nodejs.org/industry/

Page 7: Node js  - O poder do JavaScript do lado do servidor

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/

Page 8: Node js  - O poder do JavaScript do lado do servidor

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.

Page 9: Node js  - O poder do JavaScript do lado do servidor

Caso de Sucesso - Guardião Cloud

Nginx + Node.JS (Forever)

Page 10: Node js  - O poder do JavaScript do lado do servidor

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.

Page 11: Node js  - O poder do JavaScript do lado do servidor

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ó.

Page 12: Node js  - O poder do JavaScript do lado do servidor

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…

Page 13: Node js  - O poder do JavaScript do lado do servidor

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.

Page 14: Node js  - O poder do JavaScript do lado do servidor

Alguns módulos que o Node.JS possui

❖ Express - http://expressjs.com

Page 15: Node js  - O poder do JavaScript do lado do servidor

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

Page 16: Node js  - O poder do JavaScript do lado do servidor

Alguns módulos que o Node.JS possui

❖ Passport - http://passportjs.org

Page 17: Node js  - O poder do JavaScript do lado do servidor

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.

Page 18: Node js  - O poder do JavaScript do lado do servidor

Alguns módulos que o Node.JS possui

❖ Mongoose - http://mongoosejs.com

Page 19: Node js  - O poder do JavaScript do lado do servidor

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.

Page 20: Node js  - O poder do JavaScript do lado do servidor

Alguns módulos que o Node.JS possui

❖ JADE - http://jade-lang.com

Page 21: Node js  - O poder do JavaScript do lado do servidor

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……

Page 22: Node js  - O poder do JavaScript do lado do servidor

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.

Page 23: Node js  - O poder do JavaScript do lado do servidor

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.