35
Conhecendo o mundo Caio Ribeiro Pereira Twitter: @crp_underground Github: caioribeiropereira Blog: Underground WebDev e Underground Linux

Conhecendo mundo Node.js

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Conhecendo mundo Node.js

Conhecendo  o  mundo

Caio  Ribeiro  Pereira     Twitter:  @crp_underground     Github:  caio-­‐ribeiro-­‐pereira     Blog:  Underground  WebDev  e  Underground  Linux

Page 2: Conhecendo mundo Node.js

Autor do livro

casadocodigo.com.br/products/livro-nodejs

Page 3: Conhecendo mundo Node.js

Autor do livro

casadocodigo.com.br/products/livro-meteor

Page 4: Conhecendo mundo Node.js

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.

Page 5: Conhecendo mundo Node.js

O  que  é  isso?

Page 6: Conhecendo mundo Node.js

• 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;

Page 7: Conhecendo mundo Node.js

Node.js  +  Javascript  V8

Page 8: Conhecendo mundo Node.js

Node.js  +  Event  I/O

Page 9: Conhecendo mundo Node.js

Node.js  +  Non-­‐Blocking  Threads

Blocking  Threads             Non-­‐Blocking  Threads

Page 10: Conhecendo mundo Node.js

Node.js  +  Funções  Assíncrona

Page 11: Conhecendo mundo Node.js

Node.js  =  Alta  escalabilidade

Page 12: Conhecendo mundo Node.js

Node.js  =  Real-­‐Time

Page 13: Conhecendo mundo Node.js

Real-­‐Time  !=  Ajax

Page 14: Conhecendo mundo Node.js

Ajax  =  Requisição  assíncrona  HTTP  !

Real-­‐time  =  Conexão  bidirecional  com  Sockets,  WebSockets  e  FlashSockets

Page 15: Conhecendo mundo Node.js

O  que  fazer  com  tudo  isso?

Servidores  de  Games  Online  Aplicativos  Real-­‐time  Processamentos  assíncronos  Aplicações  multi-­‐protocolo  Web  Services  Servidor  HTTP

Page 16: Conhecendo mundo Node.js

Node.js  não  é  recomendado…

Sistemas  transacionais  Integração  com  banco  de  dados  relacionais

Page 17: Conhecendo mundo Node.js

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  

Page 18: Conhecendo mundo Node.js

Empresas  que  utilizam  Node.js

Page 19: Conhecendo mundo Node.js
Page 20: Conhecendo mundo Node.js
Page 21: Conhecendo mundo Node.js
Page 22: Conhecendo mundo Node.js
Page 23: Conhecendo mundo Node.js
Page 24: Conhecendo mundo Node.js
Page 25: Conhecendo mundo Node.js

Ferramentas  e  módulos  do  Node.js

Page 26: Conhecendo mundo 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    

Page 27: Conhecendo mundo Node.js

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

Page 28: Conhecendo mundo Node.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

Page 29: Conhecendo mundo Node.js

Onde  hospedar?

Page 30: Conhecendo mundo Node.js

Node.js  na  prática  !

Código-­‐Fonte:  https://github.com/caio-­‐ribeiro-­‐pereira/devinsantos  

Page 31: Conhecendo mundo Node.js

Round  1  3  maneiras  de  fazer  

Hello  World  com  Node.js

Page 32: Conhecendo mundo Node.js

Round  2  !

Mini-­‐Chat

Page 33: Conhecendo mundo Node.js

Final  Round  !

Simple  Analytics

Page 34: Conhecendo mundo Node.js

Dúvidas?  Críticas?  Sugestões?

Page 35: Conhecendo mundo Node.js

Obrigado  pessoal!