Globalcode – Open4education
Trilha – Javascript
Programação Funcional Reativa. Ou como Bacon pode facilitar seu dia
Erich ...
Globalcode – Open4education
Sobre mim
Desenvolvedor back e front ~8 anos
ericholiveira.com
Twitter: @oliveira_erich (uso p...
Globalcode – Open4education
Agenda
Programação reativa
O que é
Motivação
Programação funcional reativa
O que é
Bacon.js
Va...
Globalcode – Open4education
Programação reativa - O que é
Orientado ao fluxo de dados
Propagação da mudança
Excel Javascri...
Globalcode – Open4education
Programação reativa - Motivação
Mudança
Múltiplas entradas
Fluxos de dados
Globalcode – Open4education
Programação reativa
Stream, Stream, Stream (ou algum termo semelhante)
Transformações
Globalcode – Open4education
Programação reativa
É uma forma de controle de fluxo
Globalcode – Open4education
Programação funcional reativa(FRP)
Programação reativa usando blocos de programação
funcional
...
Globalcode – Open4education
Programação funcional reativa(FRP)
Ainda melhor com:
Funções como cidadãos de primeira classe
...
Globalcode – Open4education
Reactive Extensions
Microsoft
Diversas linguagens (inclusive RxJS)
Globalcode – Open4education
Bacon.js
Biblioteca FRP para javascript
Roda em browsers e no node
Globalcode – Open4education
Baconjs - Vantagens
Ótima documentação
Biblioteca de FRP mais usada em js
Terminologia diferen...
Globalcode – Open4education
Bacon.js
Stream
Property
Globalcode – Open4education
Bacon.js
Lazyness
Globalcode – Open4education
Streams
Fluxo de dados
Não mantém estado
Cada transformação retorna uma nova stream
Globalcode – Open4education
Properties
Statefull
API compatível
Diferença semântica
Globalcode – Open4education
Como criar streams
Jquery/ zepto ($(selector).asEventStream)
Promise (Bacon.fromPromise)
DOM /...
Globalcode – Open4education
Como criar streams
Globalcode – Open4education
Listeners
onValue
onError
onEnd
Globalcode – Open4education
Principais funções - Map
Globalcode – Open4education
Principais funções - Filter
Globalcode – Open4education
Principais funções - Merge
Globalcode – Open4education
Principais funções - Buffer
Globalcode – Open4education
Principais funções - FlatMap
Globalcode – Open4education
Leituras relacionadas
Baconjs (https://github.com/baconjs/bacon.js)
Reactive extension (http:/...
Globalcode – Open4education
Código
https://github.com/ericholiveira/
palestraTheDevConfPOA2015
Globalcode – Open4education
Obrigado
Dúvidas
Próximos SlideShares
Carregando em…5
×

Programação funcional reativa

261 visualizações

Publicada em

Palestra de programação funcional reativa ministrada no TDC de Porto Alegre 2015

Publicada em: Engenharia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
261
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Programação funcional reativa

  1. 1. Globalcode – Open4education Trilha – Javascript Programação Funcional Reativa. Ou como Bacon pode facilitar seu dia Erich Oliveira Desenvolvedor em winnin.com
  2. 2. Globalcode – Open4education Sobre mim Desenvolvedor back e front ~8 anos ericholiveira.com Twitter: @oliveira_erich (uso pouco) Medium: @ericholiveira Github: ericholiveira
  3. 3. Globalcode – Open4education Agenda Programação reativa O que é Motivação Programação funcional reativa O que é Bacon.js Vantagens Como criar Streams Principais funções Código exemplo
  4. 4. Globalcode – Open4education Programação reativa - O que é Orientado ao fluxo de dados Propagação da mudança Excel Javascript
  5. 5. Globalcode – Open4education Programação reativa - Motivação Mudança Múltiplas entradas Fluxos de dados
  6. 6. Globalcode – Open4education Programação reativa Stream, Stream, Stream (ou algum termo semelhante) Transformações
  7. 7. Globalcode – Open4education Programação reativa É uma forma de controle de fluxo
  8. 8. Globalcode – Open4education Programação funcional reativa(FRP) Programação reativa usando blocos de programação funcional Map Filter Reduce …
  9. 9. Globalcode – Open4education Programação funcional reativa(FRP) Ainda melhor com: Funções como cidadãos de primeira classe Função parcial …
  10. 10. Globalcode – Open4education Reactive Extensions Microsoft Diversas linguagens (inclusive RxJS)
  11. 11. Globalcode – Open4education Bacon.js Biblioteca FRP para javascript Roda em browsers e no node
  12. 12. Globalcode – Open4education Baconjs - Vantagens Ótima documentação Biblioteca de FRP mais usada em js Terminologia diferente
  13. 13. Globalcode – Open4education Bacon.js Stream Property
  14. 14. Globalcode – Open4education Bacon.js Lazyness
  15. 15. Globalcode – Open4education Streams Fluxo de dados Não mantém estado Cada transformação retorna uma nova stream
  16. 16. Globalcode – Open4education Properties Statefull API compatível Diferença semântica
  17. 17. Globalcode – Open4education Como criar streams Jquery/ zepto ($(selector).asEventStream) Promise (Bacon.fromPromise) DOM / Node event emitter(Bacon.fromEvent) Node Callback (Bacon.fromNodeCallback) Array (Bacon.fromArray) Intervalo (Bacon.interval) Custom (Bacon.fromBinder / Bacon.Bus) …
  18. 18. Globalcode – Open4education Como criar streams
  19. 19. Globalcode – Open4education Listeners onValue onError onEnd
  20. 20. Globalcode – Open4education Principais funções - Map
  21. 21. Globalcode – Open4education Principais funções - Filter
  22. 22. Globalcode – Open4education Principais funções - Merge
  23. 23. Globalcode – Open4education Principais funções - Buffer
  24. 24. Globalcode – Open4education Principais funções - FlatMap
  25. 25. Globalcode – Open4education Leituras relacionadas Baconjs (https://github.com/baconjs/bacon.js) Reactive extension (http://reactivex.io/) Kefir (https://github.com/rpominov/kefir) Studio (https://github.com/ericholiveira/studio)
  26. 26. Globalcode – Open4education Código https://github.com/ericholiveira/ palestraTheDevConfPOA2015
  27. 27. Globalcode – Open4education Obrigado Dúvidas

×