SlideShare a Scribd company logo
ERICKWENDEL

INDEPENDENTSOFTWARECONSULTANT
@ERICKWENDEL_|@ERICKWENDEL
NODE.JS, OBSERVABLES E RXJS
PROGRAMAÇÃO REATIVA NO
BACKEND!
@erickwendel_
Reactive Programming === Front End
@erickwendel_
@erickwendel_
RxJS === AngularJS
@erickwendel_
Observables only Javascript
!(SIM)
!(SIM)
O PADRÃO OBSERVER
O PADRÃO OBSERVER
#NERDZAO
OBSERVER PATTERN
▪ Um objeto subject mantem uma lista de seus
dependentes (observers)
#NERDZAO
OBSERVER PATTERN
▪ Um objeto subject mantem uma lista de seus
dependentes (observers)
#NERDZAO
▪ Quando um subject muda de estado, todos os observers
registrados são notificados e atualizados
automaticamente
OBSERVER PATTERN
▪ Um objeto subject mantem uma lista de seus
dependentes (observers)
#NERDZAO
▪ Quando um subject muda de estado, todos os observers
registrados são notificados e atualizados
automaticamente
OBSERVER PATTERN
▪ Pub/Sub (Publisher/Subscriber) é um outro apelido para o
Observer Pattern usado para comunicação entre serviços
@erickwendel_
"Don’t call us, we will call you."
The Hollywood Principle
@erickwendel_
@erickwendel_
Estudo de Caso
#NERDZAO
ESTUDO DE CASO
▪ Uma loja online será nosso subject
#NERDZAO
ESTUDO DE CASO
▪ Uma loja online será nosso subject
#NERDZAO
▪ Sempre que ela adicionar um novo produto ao inventário,
seus observers (clientes ou usuários) que optaram por
receber notificações serão notificados via email
ESTUDO DE CASO
@erickwendel_
1o Passo - Interface do Subject
@erickwendel_
2o Passo - Implementação do Subject
@erickwendel_
3o Passo - Implementação do Observer
Enviar notificação
@erickwendel_
4o Passo - Execução
#VSSUMMIT
#VSSUMMIT
@erickwendel_
RxJS - Observables
#NERDZAO
RX**
▪ Objetivo de ações contínuas (cliques de mouse, alterações
no sistema operacional)
#NERDZAO
RX**
▪ Objetivo de ações contínuas (cliques de mouse, alterações
no sistema operacional)
#NERDZAO
▪ Possui dezenas de operadores para manipular o flow de
aplicações
RX**
▪ Objetivo de ações contínuas (cliques de mouse, alterações
no sistema operacional)
#NERDZAO
▪ Possui dezenas de operadores para manipular o flow de
aplicações
RX**
▪ Um pouco diferente do approach tradicional com
Promises
!(SIM)
!(SIM)
#COURSE HASHTAG
Body Level One
Criando um observador
de arquivos com RxJS
#COURSE HASHTAG
Body Level One
Criando um observador
de arquivos com RxJS
#NERDZAO
CONCLUSÕES
▪ Promises são executadas apenas uma vez
#NERDZAO
CONCLUSÕES
▪ Promises são executadas apenas uma vez
#NERDZAO
▪ RxJS pode ser um pouco complicado no inicio por sua
infinidade de operadores
CONCLUSÕES
▪ Promises são executadas apenas uma vez
#NERDZAO
▪ RxJS pode ser um pouco complicado no inicio por sua
infinidade de operadores
CONCLUSÕES
▪ Trabalhe com o que for melhor para o seu problema!
• contato@erickwendel.com.br
• http://erickwendel.com.br
• https://medium.com/@erickwendel
• http://fb.com/page.erickwendel
• https://twitter.com/erickwendel_
• http://meetup.com/nerdzao
• http://meetup.com/nodebr
• https://github.com/ErickWendel/talk-nodejs-rxjs-
reactive-programming
• http://bit.ly/rxjs-observers-slides-
erickwendel-18082018
KEEP IN TOUCH!
@erickwendel_
ERICKWENDEL

INDEPENDENTSOFTWARECONSULTANT
@ERICKWENDEL_|@ERICKWENDEL
THANK YOU
@erickwendel_
https://en.wikipedia.org/wiki/Observer_pattern
https://www.codeproject.com/Tips/769084/Observer-Pattern-Csharp
http://reactivex.io/rxjs/class/es6/MiscJSDoc.js~ObserverDoc.html
https://tolikcode.github.io/post/rxjsMap/
@erickwendel_

More Related Content

What's hot

Ujian Praktek kelas 9: Cara Membuat Blog.
Ujian Praktek kelas 9: Cara Membuat Blog.Ujian Praktek kelas 9: Cara Membuat Blog.
Ujian Praktek kelas 9: Cara Membuat Blog.
Rizky Fatima
 
Tugas pendidikan kesetaraan
Tugas pendidikan kesetaraanTugas pendidikan kesetaraan
Tugas pendidikan kesetaraan
nandas55
 
Soal ulangan tengah semester genap simulasi digital 15 16
Soal ulangan tengah semester genap simulasi digital 15 16Soal ulangan tengah semester genap simulasi digital 15 16
Soal ulangan tengah semester genap simulasi digital 15 16
Sri Mulyanto
 
Pertemuan 12 perawatan & pemeliharaan jaringan
Pertemuan 12 perawatan & pemeliharaan jaringanPertemuan 12 perawatan & pemeliharaan jaringan
Pertemuan 12 perawatan & pemeliharaan jaringan
jumiathyasiz
 
Materi asj kelas xii
Materi asj kelas xiiMateri asj kelas xii
Materi asj kelas xii
makemanah
 

What's hot (20)

Bab 1 powerpoint kelas 9 semester 1
Bab 1 powerpoint kelas 9 semester 1Bab 1 powerpoint kelas 9 semester 1
Bab 1 powerpoint kelas 9 semester 1
 
Soal ukk multimedia paket 3
Soal ukk multimedia paket 3Soal ukk multimedia paket 3
Soal ukk multimedia paket 3
 
Ujian Praktek kelas 9: Cara Membuat Blog.
Ujian Praktek kelas 9: Cara Membuat Blog.Ujian Praktek kelas 9: Cara Membuat Blog.
Ujian Praktek kelas 9: Cara Membuat Blog.
 
RPP - Administrasi Infrastruktur Jaringan | Kelas XI
RPP - Administrasi Infrastruktur Jaringan | Kelas XIRPP - Administrasi Infrastruktur Jaringan | Kelas XI
RPP - Administrasi Infrastruktur Jaringan | Kelas XI
 
Program kerja tahunan kaprok rpl
Program kerja tahunan kaprok rplProgram kerja tahunan kaprok rpl
Program kerja tahunan kaprok rpl
 
PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025
PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025
PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025
 
ATP KONSENTRASI DKV.doc
ATP KONSENTRASI DKV.docATP KONSENTRASI DKV.doc
ATP KONSENTRASI DKV.doc
 
BUKU KUNJUNGAN INDUSTRI.docx
BUKU KUNJUNGAN INDUSTRI.docxBUKU KUNJUNGAN INDUSTRI.docx
BUKU KUNJUNGAN INDUSTRI.docx
 
FIREWALL PADA JARINGAN VOIP.docx
FIREWALL PADA JARINGAN VOIP.docxFIREWALL PADA JARINGAN VOIP.docx
FIREWALL PADA JARINGAN VOIP.docx
 
ATP TJKT.pdf
ATP TJKT.pdfATP TJKT.pdf
ATP TJKT.pdf
 
Tugas pendidikan kesetaraan
Tugas pendidikan kesetaraanTugas pendidikan kesetaraan
Tugas pendidikan kesetaraan
 
Soal mid semester tlj 12
Soal mid semester tlj 12Soal mid semester tlj 12
Soal mid semester tlj 12
 
Soal ulangan tengah semester genap simulasi digital 15 16
Soal ulangan tengah semester genap simulasi digital 15 16Soal ulangan tengah semester genap simulasi digital 15 16
Soal ulangan tengah semester genap simulasi digital 15 16
 
5 ASESMEN PADA KUR MERDEKA.pptx
5 ASESMEN PADA KUR MERDEKA.pptx5 ASESMEN PADA KUR MERDEKA.pptx
5 ASESMEN PADA KUR MERDEKA.pptx
 
SOAL UTS 1 BTQ kelas 2
SOAL UTS 1 BTQ kelas 2SOAL UTS 1 BTQ kelas 2
SOAL UTS 1 BTQ kelas 2
 
Soal Hots essay simulasi dan komunikasi digital X semester 2
Soal Hots essay simulasi dan komunikasi digital X semester 2Soal Hots essay simulasi dan komunikasi digital X semester 2
Soal Hots essay simulasi dan komunikasi digital X semester 2
 
Pertemuan 12 perawatan & pemeliharaan jaringan
Pertemuan 12 perawatan & pemeliharaan jaringanPertemuan 12 perawatan & pemeliharaan jaringan
Pertemuan 12 perawatan & pemeliharaan jaringan
 
Ngedesain logo : Belajar Sketsa dan Konsep
Ngedesain logo : Belajar Sketsa dan Konsep Ngedesain logo : Belajar Sketsa dan Konsep
Ngedesain logo : Belajar Sketsa dan Konsep
 
Materi asj kelas xii
Materi asj kelas xiiMateri asj kelas xii
Materi asj kelas xii
 
soal desain grafis.docx
soal desain grafis.docxsoal desain grafis.docx
soal desain grafis.docx
 

Similar to Node.js, Observables e RxJs - Programação reativa no Backend! - FCTech

Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visage
jesuinoPower
 

Similar to Node.js, Observables e RxJs - Programação reativa no Backend! - FCTech (20)

Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
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 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoTDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direito
 
Aplicações de Alto Desempenho com JHipster Full Stack
Aplicações de Alto Desempenho com JHipster Full StackAplicações de Alto Desempenho com JHipster Full Stack
Aplicações de Alto Desempenho com JHipster Full Stack
 
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVAProgramação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
 
InterCon 2017 - Desbravando o Mundo da Programação Reativa - Erich Oliveira
InterCon 2017 - Desbravando o Mundo da Programação Reativa - Erich OliveiraInterCon 2017 - Desbravando o Mundo da Programação Reativa - Erich Oliveira
InterCon 2017 - Desbravando o Mundo da Programação Reativa - Erich Oliveira
 
Angular.JS - Estado Atual
Angular.JS - Estado AtualAngular.JS - Estado Atual
Angular.JS - Estado Atual
 
Introdução ao Habitat
Introdução ao HabitatIntrodução ao Habitat
Introdução ao Habitat
 
Projetos reativos com Angular, RxJS e Redux (ngRx)
Projetos reativos com Angular, RxJS e Redux (ngRx)Projetos reativos com Angular, RxJS e Redux (ngRx)
Projetos reativos com Angular, RxJS e Redux (ngRx)
 
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...
TDC2016POA | Trilha DevOps - Gestão de ciclo de vida de banco de dados: Já pa...
 
Snep arquitetura
Snep arquiteturaSnep arquitetura
Snep arquitetura
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
 
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
 
TDC2017 | São Paulo - Trilha IOS How we figured out we had a SRE team at - Re...
TDC2017 | São Paulo - Trilha IOS How we figured out we had a SRE team at - Re...TDC2017 | São Paulo - Trilha IOS How we figured out we had a SRE team at - Re...
TDC2017 | São Paulo - Trilha IOS How we figured out we had a SRE team at - Re...
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visage
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJS
 
Secomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - IntroduçãoSecomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - Introdução
 

More from Erick Wendel

More from Erick Wendel (10)

WTF are serverless apps ?
WTF are serverless apps ? WTF are serverless apps ?
WTF are serverless apps ?
 
Managing the flow of asynchronous operations in Node.js - SFNode
Managing the flow of asynchronous operations in Node.js - SFNodeManaging the flow of asynchronous operations in Node.js - SFNode
Managing the flow of asynchronous operations in Node.js - SFNode
 
Usando Javascript para reconhecer pessoas - Hack Town 2018
Usando Javascript para reconhecer pessoas - Hack Town 2018Usando Javascript para reconhecer pessoas - Hack Town 2018
Usando Javascript para reconhecer pessoas - Hack Town 2018
 
Scaling your apps with Kubernetes and Docker - TheConf 2018
Scaling your apps with Kubernetes and Docker - TheConf 2018Scaling your apps with Kubernetes and Docker - TheConf 2018
Scaling your apps with Kubernetes and Docker - TheConf 2018
 
Desenvolvendo BOTs com Telegram e Javascript - TDC2016
Desenvolvendo BOTs com Telegram e Javascript - TDC2016Desenvolvendo BOTs com Telegram e Javascript - TDC2016
Desenvolvendo BOTs com Telegram e Javascript - TDC2016
 
JS - Ferramentas Code Analysis e Fixed para JS - TDC2016
JS - Ferramentas Code Analysis e Fixed para JS - TDC2016JS - Ferramentas Code Analysis e Fixed para JS - TDC2016
JS - Ferramentas Code Analysis e Fixed para JS - TDC2016
 
Desenvolvimento de Malwares com C#
Desenvolvimento de Malwares com C# Desenvolvimento de Malwares com C#
Desenvolvimento de Malwares com C#
 
O GRUPO .NET CODERS - ERICK WENDEL
O GRUPO .NET CODERS - ERICK WENDELO GRUPO .NET CODERS - ERICK WENDEL
O GRUPO .NET CODERS - ERICK WENDEL
 
Mini Curso - WebScraping com C# - Erick Wendel
Mini Curso - WebScraping com C# - Erick WendelMini Curso - WebScraping com C# - Erick Wendel
Mini Curso - WebScraping com C# - Erick Wendel
 
Palestra sobre Google Adwords
Palestra sobre Google AdwordsPalestra sobre Google Adwords
Palestra sobre Google Adwords
 

Node.js, Observables e RxJs - Programação reativa no Backend! - FCTech