SlideShare uma empresa Scribd logo
Desmistificando a
programação reativa
(e outros conceitos)
Loiane Groner
@loiane
github.com/loiane
loiane.com
loiane.training
Programação reativa
Programação funcional reativa
Sistemas reativos
Padrões reativos
Arquitetura reativa
Programação reativa
Programação reativa + Rx
https://am22.akamaized.net/tms/cnt/uploads/2010/12/tech-blog-bingo1.png
Loiane Groner
@loiane
github.com/loiane
loiane.com
loiane.training
Java, JavaScript/HTML5,
Sencha, Angular, Phonegap/
Ionic
Disponível (inglês) na amazon.com.br
https://novatec.com.br/livros/estruturas-de-dados-algoritmos-em-javascript/
era um vez…
1969
Alan Kay
Pai OO
The
Reactive
Engine
“the machine
which can
participate in a
dialogue”
http://www.chilton-computing.org.uk/inf/pdfs/kay.htm
The
Reactive
Engine
1970-80s
Programação
de fluxo de
dados
Paul Kosinski
https://goo.gl/ciirBb
Jack Dennis
https://goo.gl/qTJvLR
85: Sistemas reativos Sistemas transformativos
“repeatedly prompted by
the outside world and
their role is to
continuously respond to
external inputs”
“accepts inputs, performs
transformations on them and
produces outputs”
On the development of reactive systems
D. Harel and A. Pnueli

The development of a reactive system https://goo.gl/R5dFB9
Eventos e condições Estado e transições Eventos de saída
Descrevendo Sistemas Reativos
Desenvolvendo Sistemas Reativos
Sistema transformativo Sistema reativo
Especificação
Sistema
final
Ponto
Início
Implementação
(design)
Comportamento
(especificação)
1. Eventos atualizando o estado https://goo.gl/GSkxEW
2. O estado satisfaz as variáveis https://goo.gl/oZvuJM
3. Processamento de streams de eventos https://goo.gl/ft2nBK
1991: Programação reativa
• Eventos externos
• Reações
1: Eventos atualizando o estado
1: Eventos atualizando o estado
C.observe(c => F.set(c * 1.8 + 32));
F.observe(f => C.set((f - 32) / 1.8));
• Metáfora visual
• Manipulação direta
• Mudanças refletidas no estado
2: Estado satisfaz variáveis
2: Estado satisfaz variáveis
F <-> C * 1.8 + 32
3: Processamento de streams
“Processamento de streams é
natural à programação reativa”
John Plaice
3: Processamento de streams
F = C.map(c => c * 1.8 + 32)
C1 = F1.map(f => (f-32) / 1.8)
1997: Programação funcional reativa
Functional Reactive Animations https://goo.gl/4mjiYu


1. Modelagem temporal: comportamento e sinais
2. Modelagem de eventos
3. Reatividade declarativa
4. View polimórfica
PFR: Eventos e comportamentos
Declarativo x Imperativo
Componentes reativos
tendem a ser
declarativos
Declaração de como as
coisas são feitas, não de
como devem ser feitas
Relógio10:00
As horas estarão aqui
Relógio10:00
A cada segundo:
pega as horas
atualiza a view
que horas são?
10:00
http://www.reactivemanifesto.org/pt-BR
Manifesto Reativo: 2013
reage aos usuários
Responsivo
reage a falhas
Resiliente
reage a carga
Elástico
iteração de módulos e componentes
Orientado a mensagens
Objetivo
Princípios
Método
Modelando componentes de código como sistemas reativos
Código
Código
Código
Código
Código
streams de eventos!
Já fazemos programação reativa
Promises
Desacoplando o
código + tempo
Modelar o código como
um sistema reativo é
adicionar a capacidade
de responder à outro
código
Códigos precisam
observar: callbacks,
eventos, delegates, etc
Objeto A Objeto B
começa a observar
notifica
notifica
notifica
pára de a observar
Código reage a streams de eventos
Código
Reativo
Benefícios: reduz dependências e facilita código declarativo!
Outro
Reativo
faça X
notifica
X
Mas em que lugar posso
aplicar isso no meu
projeto?
View Lógica
REST Client
Dados
Cloud
Reactive Extensions
Observer
•Criar Observables e observá-los
•Manipular os dados conforme necessidade
Observable
subscribe()
onNext()Op
Objeto Promise
Iterable Observable
Síncrono Assíncrono
ValorúnicoMúltiplosvalores
Panorama da teoria da reatividade
Streams assíncronos
• eventos click
• input de dados
• dados do servidor
• ERROS!
PF + R
• Composição e agregação de streams
• Bom para sistemas event-driven e com
concorrência
• Declarativo
• Fácil de testar
Extensões reativas (Rx)
http://reactivex.io
https://yakovfain.files.wordpress.com/2017/04/operators.png
•http://rxmarbles.com
•https://rxviz.com
•https://github.com/Reactive-Extensions/RxJSKoans
•http://reactive.how
https://plugins.jetbrains.com/plugin/9696-java-stream-debugger
Padrões
eativos
Gerenciar o estado e
controle de fluxo
Redux é uma
biblioteca, e também é
um padrão
Redux é uma
biblioteca, e também é
um padrão reativo
sem Redux
Componente iniciando a mudança
Estado
com Redux
Estado
Redux Store
Ação
dispatch
subscribe
reducer Novo Estado
Estado
Ação
dispatch
+
store
Flow de dados unidirecional com Redux
Reducer Store Component
Ações
subscribe
dispatch
@Component({
template: `
<div>Counter: {{ counter }}</div>
`
})
export class CounterComponent {
counter: number;
counterSub: Subscription;
ngOnInit() {
this.counterSub = Observable.interval(1000)
.startWith(0)
.subscribe(counter => (this.counter = counter));
}
ngOnDestroy() {
this.counterSub.unsubscribe();
}
}
@Component({
template: `Counter: {{ counter$ | async }}`
})
export class CounterComponent {
counter$: Observable<number>;
ngOnInit() {
this.counter$ = Observable.interval(1000).startWith(0);
}
}
@Component({
template: `
<div>Counter: {{ counter }}</div>
`
})
export class CounterComponent {
counter: number;
counterSub: Subscription;
ngOnInit() {
this.counterSub = Observable.interval(1000)
.startWith(0)
.subscribe(counter => (this.counter = counter));
}
ngOnDestroy() {
this.counterSub.unsubscribe();
}
}
Arquitetura
eativa
É só pro front-end?
https://docs.spring.io/spring-framework/docs/5.0.0.BUILD-SNAPSHOT/spring-framework-reference/html/web-reactive.html
Mono.from(userRequestPublisher)
.then(userRepository::findUserProfile,
userRepository::findUserPaymentMethod)
.log("user.requests")
.or(Mono.delay(5)
.then(n -> Mono.error(new TimeoutException()))
.mergeWith(userRepository::findSimilarUserDetails)
.map(userDetailsTuple -> userDetailsTuple.t1.username)
.publishOn(SchedulerGroup.io())
.subscribe(responseSubscriber);
http://www.kennybastani.com/2016/04/event-sourcing-microservices-spring-cloud.html
Programação reativa
Programação funcional reativa
Sistemas reativos
Padrões reativos
Arquitetura reativa
Obrigada!
@loiane
github.com/loiane
loiane.com
loiane.training
youtube.com/loianegroner
Pra estudar mais
• http://rxmarbles.com
• https://rxviz.com
• https://github.com/Reactive-Extensions/RxJSKoans
• http://reactive.how
• https://gist.github.com/staltz/868e7e9bc2a7b8c1f754
• http://blog.danlew.net/2017/07/27/an-introduction-to-functional-reactive-programming/
• https://www.infoq.com/presentations/reactive-programming-evolution
• https://docs.spring.io/spring-framework/docs/5.0.0.BUILD-SNAPSHOT/spring-framework-
reference/html/web-reactive.html
• https://medium.com/@benlesh/rxjs-dont-unsubscribe-6753ed4fda87
• http://www.kennybastani.com/2016/04/event-sourcing-microservices-spring-cloud.html

Mais conteúdo relacionado

Mais procurados

[Curso Java Basico] Exercicios Aulas 44 a 46
[Curso Java Basico] Exercicios Aulas 44 a 46[Curso Java Basico] Exercicios Aulas 44 a 46
[Curso Java Basico] Exercicios Aulas 44 a 46
Loiane Groner
 
[Curso Java Basico] Exercicios Aula 34
[Curso Java Basico] Exercicios Aula 34[Curso Java Basico] Exercicios Aula 34
[Curso Java Basico] Exercicios Aula 34
Loiane Groner
 
[Curso Java Basico] Exercicios Aula 20
[Curso Java Basico] Exercicios Aula 20[Curso Java Basico] Exercicios Aula 20
[Curso Java Basico] Exercicios Aula 20
Loiane Groner
 
[Curso Java Basico] Exercicios Aulas 36 a 43
[Curso Java Basico] Exercicios Aulas 36 a 43[Curso Java Basico] Exercicios Aulas 36 a 43
[Curso Java Basico] Exercicios Aulas 36 a 43
Loiane Groner
 
[Curso Java Basico] Exercicios Aula 35
[Curso Java Basico] Exercicios Aula 35[Curso Java Basico] Exercicios Aula 35
[Curso Java Basico] Exercicios Aula 35
Loiane Groner
 
[Curso Java Basico] Exercicios Aulas 47 a 52
[Curso Java Basico] Exercicios Aulas 47 a 52[Curso Java Basico] Exercicios Aulas 47 a 52
[Curso Java Basico] Exercicios Aulas 47 a 52
Loiane Groner
 
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) [Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
Loiane Groner
 
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
Loiane Groner
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Loiane Groner
 
Algoritmos - Aula 07 B - Exercicios Vetores - Enunciado
Algoritmos - Aula 07 B - Exercicios Vetores - EnunciadoAlgoritmos - Aula 07 B - Exercicios Vetores - Enunciado
Algoritmos - Aula 07 B - Exercicios Vetores - Enunciado
Rodrigo Kiyoshi Saito
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Loiane Groner
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Loiane Groner
 
Curso Java Basico] Aula 19: Vetores (Arrays)
Curso Java Basico] Aula 19:  Vetores (Arrays)Curso Java Basico] Aula 19:  Vetores (Arrays)
Curso Java Basico] Aula 19: Vetores (Arrays)
Loiane Groner
 
[Curso Java Basico] Aula 17: Loop for
[Curso Java Basico] Aula 17:  Loop for[Curso Java Basico] Aula 17:  Loop for
[Curso Java Basico] Aula 17: Loop for
Loiane Groner
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
Arthur Emanuel
 
Handling I/O in Java
Handling I/O in JavaHandling I/O in Java
Handling I/O in Java
Hiranya Jayathilaka
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
José Paumard
 
Exercicios java básico
Exercicios java básicoExercicios java básico
Exercicios java básico
Alessandro Plaviak
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
Vinicius Dacal Lopes
 
Linguagem Java
Linguagem JavaLinguagem Java
Linguagem Java
Loiane Groner
 

Mais procurados (20)

[Curso Java Basico] Exercicios Aulas 44 a 46
[Curso Java Basico] Exercicios Aulas 44 a 46[Curso Java Basico] Exercicios Aulas 44 a 46
[Curso Java Basico] Exercicios Aulas 44 a 46
 
[Curso Java Basico] Exercicios Aula 34
[Curso Java Basico] Exercicios Aula 34[Curso Java Basico] Exercicios Aula 34
[Curso Java Basico] Exercicios Aula 34
 
[Curso Java Basico] Exercicios Aula 20
[Curso Java Basico] Exercicios Aula 20[Curso Java Basico] Exercicios Aula 20
[Curso Java Basico] Exercicios Aula 20
 
[Curso Java Basico] Exercicios Aulas 36 a 43
[Curso Java Basico] Exercicios Aulas 36 a 43[Curso Java Basico] Exercicios Aulas 36 a 43
[Curso Java Basico] Exercicios Aulas 36 a 43
 
[Curso Java Basico] Exercicios Aula 35
[Curso Java Basico] Exercicios Aula 35[Curso Java Basico] Exercicios Aula 35
[Curso Java Basico] Exercicios Aula 35
 
[Curso Java Basico] Exercicios Aulas 47 a 52
[Curso Java Basico] Exercicios Aulas 47 a 52[Curso Java Basico] Exercicios Aulas 47 a 52
[Curso Java Basico] Exercicios Aulas 47 a 52
 
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) [Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
 
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
 
Algoritmos - Aula 07 B - Exercicios Vetores - Enunciado
Algoritmos - Aula 07 B - Exercicios Vetores - EnunciadoAlgoritmos - Aula 07 B - Exercicios Vetores - Enunciado
Algoritmos - Aula 07 B - Exercicios Vetores - Enunciado
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
 
Curso Java Basico] Aula 19: Vetores (Arrays)
Curso Java Basico] Aula 19:  Vetores (Arrays)Curso Java Basico] Aula 19:  Vetores (Arrays)
Curso Java Basico] Aula 19: Vetores (Arrays)
 
[Curso Java Basico] Aula 17: Loop for
[Curso Java Basico] Aula 17:  Loop for[Curso Java Basico] Aula 17:  Loop for
[Curso Java Basico] Aula 17: Loop for
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Handling I/O in Java
Handling I/O in JavaHandling I/O in Java
Handling I/O in Java
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
 
Exercicios java básico
Exercicios java básicoExercicios java básico
Exercicios java básico
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 
Linguagem Java
Linguagem JavaLinguagem Java
Linguagem Java
 

Semelhante a Desmistificando a programação reativa

JS Experience 2017 - Programação reativa com Ionic
JS Experience 2017 - Programação reativa com IonicJS Experience 2017 - Programação reativa com Ionic
JS Experience 2017 - Programação reativa com Ionic
iMasters
 
Ionic Reativo com RxJS e ngRx
Ionic Reativo com RxJS e ngRxIonic Reativo com RxJS e ngRx
Ionic Reativo com RxJS e ngRx
Loiane Groner
 
Microservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFoodMicroservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFood
DevCamp Campinas
 
Devcamp 2017 Microservices Reativos
Devcamp 2017   Microservices ReativosDevcamp 2017   Microservices Reativos
Devcamp 2017 Microservices Reativos
Tiago Marchetti Dolphine
 
QCon SP 2017 - Reactive Microservices e a experiência do iFood
QCon SP 2017 - Reactive Microservices e a experiência do iFoodQCon SP 2017 - Reactive Microservices e a experiência do iFood
QCon SP 2017 - Reactive Microservices e a experiência do iFood
Tiago Marchetti Dolphine
 
Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
Rodrigo R Garcia, PMP
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
tdc-globalcode
 
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)
Loiane Groner
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
tdc-globalcode
 
Conhecendo o Ruby on Rails
Conhecendo o Ruby on RailsConhecendo o Ruby on Rails
Conhecendo o Ruby on Rails
Jony dos Santos Kostetzer
 
Desenvolvendo sistemas gigantes na internet com arquitetura baseada
Desenvolvendo sistemas gigantes na internet com arquitetura baseadaDesenvolvendo sistemas gigantes na internet com arquitetura baseada
Desenvolvendo sistemas gigantes na internet com arquitetura baseada
Paula Santana
 
Angular + Redux (ngRx)
Angular + Redux (ngRx)Angular + Redux (ngRx)
Angular + Redux (ngRx)
Loiane Groner
 
Produtividade infinito e além com We.js
Produtividade infinito e além com We.jsProdutividade infinito e além com We.js
Produtividade infinito e além com We.js
Alberto Souza
 
Hello ReactJs
Hello ReactJsHello ReactJs
Hello ReactJs
Nathália Lourenção
 
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma MarvinDa Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Daniel Takabayashi, MSc
 
Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011
Marcos Paulo Souza Damasceno
 
Ferramentas de Planejamento e Acompanhamento
Ferramentas de Planejamento e AcompanhamentoFerramentas de Planejamento e Acompanhamento
Ferramentas de Planejamento e Acompanhamento
Rodrigo Azevedo
 
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Luiz Costa
 
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
tdc-globalcode
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
Guilherme Blanco
 

Semelhante a Desmistificando a programação reativa (20)

JS Experience 2017 - Programação reativa com Ionic
JS Experience 2017 - Programação reativa com IonicJS Experience 2017 - Programação reativa com Ionic
JS Experience 2017 - Programação reativa com Ionic
 
Ionic Reativo com RxJS e ngRx
Ionic Reativo com RxJS e ngRxIonic Reativo com RxJS e ngRx
Ionic Reativo com RxJS e ngRx
 
Microservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFoodMicroservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFood
 
Devcamp 2017 Microservices Reativos
Devcamp 2017   Microservices ReativosDevcamp 2017   Microservices Reativos
Devcamp 2017 Microservices Reativos
 
QCon SP 2017 - Reactive Microservices e a experiência do iFood
QCon SP 2017 - Reactive Microservices e a experiência do iFoodQCon SP 2017 - Reactive Microservices e a experiência do iFood
QCon SP 2017 - Reactive Microservices e a experiência do iFood
 
Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
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)
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
Conhecendo o Ruby on Rails
Conhecendo o Ruby on RailsConhecendo o Ruby on Rails
Conhecendo o Ruby on Rails
 
Desenvolvendo sistemas gigantes na internet com arquitetura baseada
Desenvolvendo sistemas gigantes na internet com arquitetura baseadaDesenvolvendo sistemas gigantes na internet com arquitetura baseada
Desenvolvendo sistemas gigantes na internet com arquitetura baseada
 
Angular + Redux (ngRx)
Angular + Redux (ngRx)Angular + Redux (ngRx)
Angular + Redux (ngRx)
 
Produtividade infinito e além com We.js
Produtividade infinito e além com We.jsProdutividade infinito e além com We.js
Produtividade infinito e além com We.js
 
Hello ReactJs
Hello ReactJsHello ReactJs
Hello ReactJs
 
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma MarvinDa Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin
 
Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011
 
Ferramentas de Planejamento e Acompanhamento
Ferramentas de Planejamento e AcompanhamentoFerramentas de Planejamento e Acompanhamento
Ferramentas de Planejamento e Acompanhamento
 
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
 
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 

Desmistificando a programação reativa