14. 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
15. Eventos e condições Estado e transições Eventos de saída
Descrevendo Sistemas Reativos
16. Desenvolvendo Sistemas Reativos
Sistema transformativo Sistema reativo
Especificação
Sistema
final
Ponto
Início
Implementação
(design)
Comportamento
(especificação)
17. 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
26. 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
28. 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
29. Modelando componentes de código como sistemas reativos
Código
Código
Código
Código
Código
streams de eventos!
32. 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
33. 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
34. Mas em que lugar posso
aplicar isso no meu
projeto?
View Lógica
REST Client
Dados
Cloud