Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Workshop node.js

Workshop node.js

Workshop apresentado em 21/08 em Porto Alegre.

Códigos mostrados durante o workshop https://gist.github.com/ricardobeat/6314596.

Conteúdo e mais informações em http://workshop-node.desorientados.com.br.

Jean Carlo Emer

August 21, 2013
Tweet

More Decks by Jean Carlo Emer

Other Decks in Programming

Transcript

  1. Workshop Node.js
    com @ricardobeat e @jcemer

    View Slide

  2. JavaScript no servidor

    View Slide

  3. View Slide

  4. Por que Node.js?

    View Slide

  5. async

    View Slide

  6. Javascript

    View Slide

  7. Módulos

    View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. 1. Detecção de
    eventos
    2. Tratamento dos
    mesmos
    (tick)

    View Slide

  12. Concorrência
    &
    Escalabilidade

    View Slide

  13. View Slide

  14. View Slide

  15. Realtime

    View Slide

  16. 1m conexões
    1 servidor
    16GB RAM
    40.000 mensagens/s
    ~70ms
    http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections

    View Slide

  17. node_modules

    View Slide

  18. CommonJS

    View Slide

  19. View Slide

  20. View Slide

  21. View Slide

  22. Organizando código
    usando módulos

    View Slide

  23. Small core
    many (small) modules

    View Slide

  24. View Slide

  25. http://hughsk.github.io/disc/

    View Slide

  26. View Slide

  27. View Slide

  28. View Slide

  29. View Slide

  30. View Slide

  31. Event Emitter

    View Slide

  32. View Slide

  33. View Slide

  34. Event Emitter é usado em todo o core
    do node.js

    View Slide

  35. API e módulos nativos

    View Slide

  36. View Slide

  37. View Slide

  38. View Slide

  39. Streams

    View Slide

  40. Interface usada para interagir com
    fluxos de dados assíncronos
    Baseada em event emitters

    View Slide

  41. View Slide

  42. Readable
    Writable
    Transform
    .pipe()

    View Slide

  43. Utilizada para ler/escrever dados de
    um arquivo (ou HTTP)

    View Slide

  44. View Slide

  45. https://github.com/substack/stream-handbook

    View Slide

  46. Controle de fluxo
    https://github.com/caolan/async

    View Slide

  47. Promises

    View Slide

  48. View Slide

  49. View Slide

  50. View Slide

  51. Generators

    View Slide

  52. https://github.com/visionmedia/co

    View Slide

  53. Coffee break

    View Slide

  54. Construíndo uma
    aplicação

    View Slide

  55. HTTP

    View Slide

  56. Fonte: Kurose

    View Slide

  57. google.com
    GET

    View Slide

  58. 200 OK

    View Slide

  59. Express.js
    http://expressjs.com/applications.html

    View Slide

  60. WebSockets

    View Slide

  61. Fonte: Kurose

    View Slide

  62. View Slide

  63. Socket.io

    View Slide

  64. Eventos em tempo real

    View Slide

  65. Backbone

    View Slide

  66. View Slide

  67. View Slide

  68. NoSQL

    View Slide

  69. npm install mongoose

    View Slide

  70. npm install redis

    View Slide

  71. npm install level

    View Slide

  72. Testes

    View Slide

  73. View Slide

  74. Standalone test spies, stubs and
    mocks for JavaScript.

    View Slide

  75. View Slide

  76. View Slide

  77. Guest talk
    Rodrigo Krummenauer do
    Nascimento
    Desenvolvedor e empresário focado nas
    startups carddi.mobi e konecty.com

    View Slide

  78. Build & Deploy

    View Slide

  79. CoffeeScript

    View Slide

  80. View Slide

  81. Linguagem que compila
    para Javascript

    View Slide

  82. View Slide

  83. View Slide

  84. View Slide

  85. Deploy

    View Slide

  86. View Slide

  87. Obrigado :)

    View Slide