Light Talk: Introdução sobre Node.js

Post on 29-Nov-2014

2.969 views 1 download

description

Light Talk sobre Node.js e suas características inovadoras pelo qual ultimamente anda se destacando entre os programadores por oferecer alto desempenho e grande escabilidade para as aplicações de grande porte. Esse foi o slide que apresentei no Segundo Encontro DevInSantos no dia 29 de outubro de 2011 na Cocento Tecnologia. Se você deseja entrar na comunidade DevInSantos fique atento sobre os próximos encontros seguindo o perfil: http://www.meetup.com/devinsantos/ Link do blog http://www.udgwebdev.com/light-talk-introducao-sobre-nodejs/

Transcript of Light Talk: Introdução sobre Node.js

Introdução sobre

2˚ Encontro

Quem sou eu?

Caio Ribeiro Pereira Desenvolvedor na Cocento Tecnologia Sistemas de Informação na Unisantos Twitter: @crp_underground Email: caio.ribeiro.pereira@gmail.com Blogs:

http://www.udglinux.com http://udgwebdev.wordpress.com http://crpunderground.wordpress.com

Sobre o Node.js Criador: Ryan Lienhart Dahl; Lançado em 2009; Linguagens utilizada:

C++ com 8000 linhas; Javascript com 2000 linhas;

14 colaboradores no projeto; 5100 repositórios no Github; 1129 módulos existente; Versão estável 0.4.12 apenas para Linux e Mac; Versão instável 0.5.10 para Windows;

Introdução Servidor web de alta escalabilidade. Utiliza linguagem Javascript V8.

Principais características

Orientado a eventos de I/O

Compilação Just-in-time

Abstrai funções assíncronas

Concorrência com Threads Não-Bloqueantes

Analogia para Threads Bloqueantes

Analogia para Threads Não-Bloqueantes

Concorrência com Threads Não-Bloqueantes

Servidores web atuais

Twisted – Python - http://twistedmatrix.com Tornado – Python - http://tornadoweb.org Thin – Ruby - http://code.macournoyer.com/thin EventMachine – Ruby http://rubyeventmachine.com Grizzly – Java http://grizzly.java.net Node.js – Javascript http://nodejs.org

Teste de escalabilidade No blog do AkitaOnRails, há um post em que

ele apresenta uns testes de escalabilidade com esses servidores.

Twisted: 4398.17 req/s Tornado: 2498.16 req/s Thin (Ruby 1.8.7): 4619.13 req/s Thin (Ruby 1.9.1): 4777.00 req/s Grizzly: 3523.71 req/s EventMachine: não conseguiu testar Node.js: 6310.62 req/s

Fonte: Blog AkitaOnRails - Brincando com node.js, tornado e thin

Em que Node.js é bom? Construção de um Web Service Restful; Gerenciar fila de concorrências; Servidor de imagens; Resposta em tempo real;

Em que Node.js é ruim? Construção de páginas dinâmicas; Aplicação direta com banco de dados

relacionais; Sistemas transacionais;

O que criar com Node.js Jogos multiplayer online; Aplicações de grande escala de requisições; Aplicações multiprotocolo (DNS, HTTP, TCP, etc); Aplicações assíncronas; Aplicações com respostas em tempo real;

Onde hospedar?

Heroku - http://www.heroku.com Linode - http://www.linode.com Cloud Foundry - http://www.cloudfoundry.com NodeSocket - http://www.nodesocket.com Nodejitsu - http://www.nodejitsu.com

Boas referências Site oficial: http://www.nodejs.org Github: http://github.com/joyent/node Nettuts Plus: http://net.tutsplus.com/tag/node-js Node Begginer: http://www.nodebeginner.org How to node: http://howtonode.org Node Tuts: http://nodetuts.com Node Guide: http://nodeguide.com Node Cloud: http://www.nodecloud.org

Dúvidas?

Obrigado pessoal!