$30 off During Our Annual Pro Sale. View Details »

Streams no Javascript

Streams no Javascript

Palestra sobre o uso de streams no Javascript

Lucas Santos

November 28, 2018
Tweet

More Decks by Lucas Santos

Other Decks in Programming

Transcript

  1. Streams no
    JavaScript
    O que são? O que comem? Onde
    Vivem?

    View Slide

  2. $ whoami
    Lucas Santos
    /khaosdoctor
    @_staticvoid
    lsantos.me
    @khaosdoctor
    Lead Solutions Architect

    View Slide

  3. trainingcenter.io
    2018.abcdevelopers.org
    obarra.co

    View Slide

  4. Streams?

    View Slide

  5. Array
    1 2 3 4 5 6 7 8 9 10 11

    View Slide

  6. Stream
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11 1
    Em espera

    View Slide

  7. Stream
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11 1
    Requisitado
    3
    4
    5
    6
    7
    8
    9
    10
    11 2
    Em espera

    View Slide

  8. Exemplos

    View Slide

  9. Exemplos
    - Netflix
    - Youtube
    - Twitch
    - IoT Devices
    - Logs
    - Steam Link
    - Gulp

    View Slide

  10. Vantagens
    Não é só porque é legal
    Velocidade
    Eficiência

    View Slide

  11. Implementações

    View Slide

  12. Implementações
    - Node.js (https://nodejs.org/api/stream.html)
    - Bacon.js (https://baconjs.github.io/)
    - RxJS (https://rxjs-dev.firebaseapp.com/)
    - Vanilla JS - Experimental (https://mzl.la/2zlQKkH)

    View Slide

  13. Tipos de Streams

    View Slide

  14. Readable Stream

    View Slide

  15. Streams somente de leitura
    Stream Leitor

    View Slide

  16. Writable Stream

    View Slide

  17. Streams somente de escrita
    Stream Dados

    View Slide

  18. Outros exemplos

    View Slide

  19. Duplex Streams
    Tudo junto

    View Slide

  20. Streams de leitura e escrita
    Stream Dados

    View Slide

  21. Transform Streams
    Para quando não é o que queremos

    View Slide

  22. Stream de transformação
    Transform
    Stream Dados Dados Modificados

    View Slide

  23. Demo

    View Slide

  24. Streams podem conter qualquer coisa
    - Eventos
    - Texto
    - Números
    - Bits
    - Booleans

    View Slide

  25. O que a gente pode fazer?

    View Slide

  26. Pipe
    Stream Stream Leitor
    Pipe

    View Slide

  27. Demo

    View Slide

  28. Tee
    Stream Tee
    Stream
    Stream

    View Slide

  29. Demo

    View Slide

  30. Map

    View Slide

  31. Demo

    View Slide

  32. Filter

    View Slide

  33. Demo

    View Slide

  34. Scan

    View Slide

  35. Demo

    View Slide

  36. Skip

    View Slide

  37. Demo

    View Slide

  38. Take

    View Slide

  39. Demo

    View Slide

  40. Debounce

    View Slide

  41. Demo

    View Slide

  42. Debounce Immediate

    View Slide

  43. Demo

    View Slide

  44. Merge

    View Slide

  45. Demo

    View Slide

  46. Outros exemplos

    View Slide


  47. - bit.ly/sobre-baconjs
    - bit.ly/sobre-debounce
    - bit.ly/imasters-streams
    - bit.ly/streams-node-medium
    - mzl.la/mdn-streams
    - bit.ly/guia-rapido-streams
    - bit.ly/graficos-streams
    - bit.ly/mdn-exemplos
    - github.com/khaosdoctor/palestra-streams

    View Slide

  48. /khaosdoctor @_staticvoid
    lsantos.me @khaosdoctor

    View Slide

  49. Dê seu feedback!
    https://goo.gl/forms/kSZQlVGFYLpbkTLo1

    View Slide