Conhecendo mundo Node.js

Preview:

DESCRIPTION

Palestra: Conhecendo o Mundo Node.jsEvento: 3˚ DevInSantosData: 05/05/2012

Citation preview

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!