SlideShare une entreprise Scribd logo
1  sur  50
Globalcode – Open4education
Roberto Alves
Tech Lead | Senior Software Engineer @ Altran
Streams,
a melhor e mais incompreendida ideia do Node.js!
Globalcode – Open4education
“Streams are Node’s best
and most misunderstood idea.”
— Dominic Tarr
Globalcode – Open4education
Streams no Node.js
What is?
Globalcode – Open4education
Streams no Node.js
Globalcode – Open4education
Streams no Node.js
Mas o que são streams?
Streams são canais Unix
Permite a leitura de uma fonte de dados e os direcionam para uma saída
Globalcode – Open4education
Streams no Node.js
Globalcode – Open4education
Streams no Node.js
Globalcode – Open4education
Streams no Node.js
Globalcode – Open4education
Streams no Node.js
- STREAMS
Globalcode – Open4education
Streams no Node.js
Mas o que são streams?
Streams são canais Unix
Permite a leitura de uma fonte de dados e os direcionam para uma saída
Os dados em uma stream podem não estar disponíveis todos de uma vez
Basicamente é um EventEmitter
Globalcode – Open4education
Streams no Node.js
E por quê faz tanto sentido em Node.js?
JavaScript é uma linguagem de single thread
Globalcode – Open4education
Streams no Node.js
Principais Vantagens
Processamento sob demanda
Evita bloqueio na main thread
Divisão de processamento
Compartilhar o resultado de uma stream direto para outra stream
Potencialmente ilimitado
Não desperdiça recurso computacional
Globalcode – Open4education
Streams no Node.js
Está presente no Node.js desde a versão 0.1.100 (2011)
https://nodejs.org/docs/v0.1.100/api.html
26.08.2011
Globalcode – Open4education
Streams no Node.js
Está presente no Node.js desde a versão 0.1.100 (2011)
Desmistifica “Node.js não serve para processamento em massa porque é single thread”
Globalcode – Open4education
Streams no Node.js
Não existe linguagem ou plataforma ruim,
mas há a forma correta de aplicar.
Globalcode – Open4education
Streams no Node.js
Por quê se fala tão pouco em
streams?
É visto como algo “complexo”
Ficamos presos naquilo que conhecemos
Globalcode – Open4education
Streams no Node.js
Streams Categories
Globalcode – Open4education
Readable Streams
Globalcode – Open4education
Readable Streams
Globalcode – Open4education
Readable Streams
Globalcode – Open4education
Readable Streams
Globalcode – Open4education
Readable Streams
Globalcode – Open4education
Writable Streams
Globalcode – Open4education
Transform Streams
Readable
Writable
{id: 1, name: “Roberto”, birthYear: 1998}
{name: “Roberto”, age: 22}
Globalcode – Open4education
Duplex Streams
Globalcode – Open4education
Streams no Node.js
Streams vs Promises
Globalcode – Open4education
Streams no Node.js
Quando usar?
Processamento sob demanda
Grandes volumes de dados (CSV, etc)
Solicitações HTTP
Streaming de vídeo ou áudio
Múltiplos processos
Entre outros...
Globalcode – Open4education
Streams no Node.js
Material
https://slideshare.net/robertoalves95/nodejs-streams-tdc-sp
https://github.com/robertosousa1/talk-tdc-nodejs-streams
Globalcode – Open4education
Streams no Node.js
Contato
robertosousa1@uol.com.br
https://www.linkedin.com/in/robertosousa01/
https://github.com/robertosousa1/
https://www.facebook.com/roberto.sousa.923/
Globalcode – Open4education
Streams no Node.js
Referências
https://medium.com/@nodesource/understanding-streams-in-node-js-e26816b374f5
https://medium.com/florence-development/working-with-node-js-stream-api-60c12437a1be
https://www.freecodecamp.org/news/node-js-streams-everything-you-need-to-know-
c9141306be93/
https://www.programmableweb.com/news/apis-show-faster-growth-rate-2019-previous-
years/research/2019/07/17
https://nodejs.org/metrics/
https://nodejs.org/docs/v0.1.100/api.html
https://www.youtube.com/watch?v=M9MleylDXhw&t=4333s
https://nodejs.org/api/stream.html#stream_writable_streams
https://erickwendel.com/talk/detail/5ee6b2452c16eb4db7e7b776
https://www.sitepoint.com/basics-node-js-streams/
Node.js Streams - TDC SP

Contenu connexe

Similaire à Node.js Streams - TDC SP

Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouJose Wilker
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2Eric Lemes
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasRodrigo Branas
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começouJose Wilker
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
Dividindo para conquistar: microservicos com o jeitinho .NET
Dividindo para conquistar: microservicos com o jeitinho .NETDividindo para conquistar: microservicos com o jeitinho .NET
Dividindo para conquistar: microservicos com o jeitinho .NETtdc-globalcode
 
Introdução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPIntrodução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPArthur Fücher
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros PassosJackson F. de A. Mafra
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSEmerson Macedo
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Adam Victor Brandizzi
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsRafael Soares
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Instanciando a Arquitetura Lambda com GraphX e Elasticsearch 2.0 em uma apl...
Instanciando a Arquitetura Lambda com  GraphX e Elasticsearch 2.0  em uma apl...Instanciando a Arquitetura Lambda com  GraphX e Elasticsearch 2.0  em uma apl...
Instanciando a Arquitetura Lambda com GraphX e Elasticsearch 2.0 em uma apl...Luiz Henrique Zambom Santana
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introduçãoPablo Feijó
 

Similaire à Node.js Streams - TDC SP (20)

Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
Minicurso Node-RED.pdf
Minicurso Node-RED.pdfMinicurso Node-RED.pdf
Minicurso Node-RED.pdf
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começou
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começou
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Dividindo para conquistar: microservicos com o jeitinho .NET
Dividindo para conquistar: microservicos com o jeitinho .NETDividindo para conquistar: microservicos com o jeitinho .NET
Dividindo para conquistar: microservicos com o jeitinho .NET
 
Introdução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPIntrodução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SP
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJS
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre Nodejs
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Instanciando a Arquitetura Lambda com GraphX e Elasticsearch 2.0 em uma apl...
Instanciando a Arquitetura Lambda com  GraphX e Elasticsearch 2.0  em uma apl...Instanciando a Arquitetura Lambda com  GraphX e Elasticsearch 2.0  em uma apl...
Instanciando a Arquitetura Lambda com GraphX e Elasticsearch 2.0 em uma apl...
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 

Plus de Roberto Alves

Descomplicando Service Mesh
Descomplicando Service MeshDescomplicando Service Mesh
Descomplicando Service MeshRoberto Alves
 
LGPD aplicada na área da Saúde - TDC Transformation 2021
LGPD aplicada na área da Saúde - TDC Transformation 2021LGPD aplicada na área da Saúde - TDC Transformation 2021
LGPD aplicada na área da Saúde - TDC Transformation 2021Roberto Alves
 
Avançando em Queries no Elasticsearch - TDC Sala Elastic
Avançando em Queries no Elasticsearch - TDC Sala ElasticAvançando em Queries no Elasticsearch - TDC Sala Elastic
Avançando em Queries no Elasticsearch - TDC Sala ElasticRoberto Alves
 
Descomplicando Queries com Elasticsearch
Descomplicando Queries com ElasticsearchDescomplicando Queries com Elasticsearch
Descomplicando Queries com ElasticsearchRoberto Alves
 
Blue/Green Deployment Pattern - DevOpsDays 2020
Blue/Green Deployment Pattern - DevOpsDays 2020Blue/Green Deployment Pattern - DevOpsDays 2020
Blue/Green Deployment Pattern - DevOpsDays 2020Roberto Alves
 
Teste de carga com Node.js - Americana Tech Conf 2020
Teste de carga com Node.js - Americana Tech Conf 2020Teste de carga com Node.js - Americana Tech Conf 2020
Teste de carga com Node.js - Americana Tech Conf 2020Roberto Alves
 
Como o Einstein se preparou para sustentar o aumento exponencial de uso da Te...
Como o Einstein se preparou para sustentar o aumento exponencial de uso da Te...Como o Einstein se preparou para sustentar o aumento exponencial de uso da Te...
Como o Einstein se preparou para sustentar o aumento exponencial de uso da Te...Roberto Alves
 
LocalStack - TDC Porto Alegre 2020
LocalStack - TDC Porto Alegre 2020LocalStack - TDC Porto Alegre 2020
LocalStack - TDC Porto Alegre 2020Roberto Alves
 
Explorando o mundo serverless
Explorando o mundo serverlessExplorando o mundo serverless
Explorando o mundo serverlessRoberto Alves
 

Plus de Roberto Alves (11)

Descomplicando Service Mesh
Descomplicando Service MeshDescomplicando Service Mesh
Descomplicando Service Mesh
 
LGPD aplicada na área da Saúde - TDC Transformation 2021
LGPD aplicada na área da Saúde - TDC Transformation 2021LGPD aplicada na área da Saúde - TDC Transformation 2021
LGPD aplicada na área da Saúde - TDC Transformation 2021
 
Avançando em Queries no Elasticsearch - TDC Sala Elastic
Avançando em Queries no Elasticsearch - TDC Sala ElasticAvançando em Queries no Elasticsearch - TDC Sala Elastic
Avançando em Queries no Elasticsearch - TDC Sala Elastic
 
DockerConBR 2021
DockerConBR 2021DockerConBR 2021
DockerConBR 2021
 
Descomplicando Queries com Elasticsearch
Descomplicando Queries com ElasticsearchDescomplicando Queries com Elasticsearch
Descomplicando Queries com Elasticsearch
 
Blue/Green Deployment Pattern - DevOpsDays 2020
Blue/Green Deployment Pattern - DevOpsDays 2020Blue/Green Deployment Pattern - DevOpsDays 2020
Blue/Green Deployment Pattern - DevOpsDays 2020
 
Teste de carga com Node.js - Americana Tech Conf 2020
Teste de carga com Node.js - Americana Tech Conf 2020Teste de carga com Node.js - Americana Tech Conf 2020
Teste de carga com Node.js - Americana Tech Conf 2020
 
Como o Einstein se preparou para sustentar o aumento exponencial de uso da Te...
Como o Einstein se preparou para sustentar o aumento exponencial de uso da Te...Como o Einstein se preparou para sustentar o aumento exponencial de uso da Te...
Como o Einstein se preparou para sustentar o aumento exponencial de uso da Te...
 
Serverless week
Serverless weekServerless week
Serverless week
 
LocalStack - TDC Porto Alegre 2020
LocalStack - TDC Porto Alegre 2020LocalStack - TDC Porto Alegre 2020
LocalStack - TDC Porto Alegre 2020
 
Explorando o mundo serverless
Explorando o mundo serverlessExplorando o mundo serverless
Explorando o mundo serverless
 

Node.js Streams - TDC SP