conhecendo mundo node.js
DESCRIPTION
Palestra: Conhecendo o Mundo Node.jsEvento: 3˚ DevInSantosData: 05/05/2012TRANSCRIPT
Conhecendo o mundo
Caio Ribeiro Pereira Twitter: @crp_underground Github: caio-‐ribeiro-‐pereira Blog: Underground WebDev e Underground Linux
Autor do livro
casadocodigo.com.br/products/livro-nodejs
Autor do livro
casadocodigo.com.br/products/livro-meteor
AutorWeb Developer na bankFacil Entusiasta Node.js / Javascript Portifólio: crpwebdev.com Twitter: @crp_underground Bacharel em Sistemas de Informação -‐ Unisantos Também brinco com: Java, Ruby, MySQL, MongoDB e Web Standards.
O que é isso?
• Servidor web de baixo-‐nível; • Foco em real-‐time e alta escalabilidade; • Nascido em 2009; • O papai é o Ryan Dahl; • 14 médicos no dia do parto; • O filho nasceu grande com: –8000 linhas de C++; –2000 linhas de Javascript;
Node.js + Javascript V8
Node.js + Event I/O
Node.js + Non-‐Blocking Threads
Blocking Threads Non-‐Blocking Threads
Node.js + Funções Assíncrona
Node.js = Alta escalabilidade
Node.js = Real-‐Time
Real-‐Time != Ajax
Ajax = Requisição assíncrona HTTP !
Real-‐time = Conexão bidirecional com Sockets, WebSockets e FlashSockets
O que fazer com tudo isso?
Servidores de Games Online Aplicativos Real-‐time Processamentos assíncronos Aplicações multi-‐protocolo Web Services Servidor HTTP
Node.js não é recomendado…
Sistemas transacionais Integração com banco de dados relacionais
Frameworks I/O para Real-‐time
Twisted – Python: twistedmatrix.com Tornado – Python: tornadoweb.org Thin – Ruby: code.macournoyer.com/thin EventMachine – Ruby: rubyeventmachine.com Grizzly – Java: grizzly.java.net Node.js – Javascript: nodejs.org
Empresas que utilizam Node.js
Ferramentas e módulos do Node.js
ToolKit para trabalhar com Node.js
Editor de código: TextMate, SublimeText, Gedit, Eclipse, Cloud9, Vim DSL: Javascript, CoffeeScript ou Haxe Debuggers: Chrome V8 Eclipse Plugin, NodeDebugger Gerenciador de pacotes: NPM – Node Package Manager
Alguns módulos…
Web Frameworks: Express, Geddy, Railsway ODMs e ORMs: Mongoose, Sequelize, Riak-‐js, Nedis, Cradle Canivetes suíços: Underscore.js, Node-‐DateFormat, Jake, Node-‐Validator TDD: Mocha, Should, Chai, Expect.js
Alguns módulos…
Template Engine: Jade, EJS, Haml.js, Mustache CSS Engine: Stylus, Less, Sass CMS e Blog: Calipso, Blacksmith, Wheat Real-‐time: Socket.IO, NowJS
Onde hospedar?
Node.js na prática !
Código-‐Fonte: https://github.com/caio-‐ribeiro-‐pereira/devinsantos
Round 1 3 maneiras de fazer
Hello World com Node.js
Round 2 !
Mini-‐Chat
Final Round !
Simple Analytics
Dúvidas? Críticas? Sugestões?
Obrigado pessoal!