Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programação funcional que funciona

Programação funcional que funciona

Introdução a programação funcional e demonstrações práticas e reais de todos os conceitos em Ruby.

Por que FP (functional programming) importa?

Seus softwares terão menos bugs, serão mais rápidos de se desenvolver e mais fáceis de se manter.

Em outras palavras: +Dinheiro +Qualidade de vida +Sanidade.

Temas abordados:

1. Conceitos: Pure/Stateless functions, Composition, High order functions, Recursion, Referential transparency.

2. Ruby Functional Objects.

3. Como a comunidade Ruby já está sendo positivamente afetada.

Rodrigo Serradura

November 25, 2017
Tweet

More Decks by Rodrigo Serradura

Other Decks in Programming

Transcript

  1. Tudo que usa blocos poderá ser melhorado com o uso

    de funções (aka: lambdas). Ex: • Active Admin • Concurrent Ruby
  2. Porque programação funcional é relevante para o ecossistema Ruby. Porque

    programação funcional se tornou relevante para mim e deveria se tornar relevante para você.
  3. Me coloquei à disposição para organizar o próximo Meetup 23/06.

    3 Hello Worlds em Elm. 22/06 Junho / 2017 Entrei para comunidade Elm via ElmBrasil no Telegram 20/06. Roadmap do Elm, como Evan Czaplicki prioriza os próximos. (Simplicidade) 24/06 Primeiros reflexos: Criei uma abstração compondo funções para gerenciar o ciclo de vida do JS no Turbolinks. 28/06.
  4. Junho / 2017 Me coloquei à disposição para organizar o

    próximo Meetup 20/06. 3 Hello Worlds em Elm. 22/06 Entrei para comunidade Elm via ElmBrasil no Telegram 20/06. Roadmap do Elm, como Evan Czaplicki prioriza os próximos. (Simplicidade) 24/06 Primeiros reflexos: Criei uma abstração compondo funções para gerenciar o ciclo de vida do JS no Turbolinks. 28/06.
  5. Me coloquei à disposição para organizar o próximo Meetup 23/06.

    3 Hello Worlds em Elm. 22/06 Entrei para comunidade Elm via ElmBrasil no Telegram 20/06. Roadmap do Elm, como Evan Czaplicki prioriza os próximos. (Simplicidade) 24/06 Primeiros reflexos: Criei uma abstração compondo funções para gerenciar o ciclo de vida do JS no Turbolinks. 28/06. Junho / 2017
  6. Abordagem /Abstração reativa (FRP) para orquestrar um stream de eventos

    28/07. Julho / 2017 Implementação do Strong Parameters (Ruby) numa abordagem funcional. 10/07. Contribuição para vue-turbolinks com direito a variações! 20/07
  7. Abordagem /Abstração reativa (FRP) para orquestrar um stream de eventos

    28/07. Implementação do Strong Parameters (Ruby) numa abordagem funcional. 10/07. Contribuição para vue-turbolinks com direito a variações! 20/07 Julho / 2017
  8. Mandaram eu ler o Mostly Adequate Guide to Functional Programming

    08/08. Agosto / 2017 Criar o DOM via composição de funções no estilo Elm com jQuery e Ramda 23/08
  9. Mandaram eu ler o Mostly Adequate Guide to Functional Programming

    08/08. Agosto / 2017 Criar o DOM via composição de funções no estilo Elm com jQuery e Ramda 23/08
  10. Mandaram eu ler o Mostly Adequate Guide to Functional Programming

    08/08. Agosto / 2017 Criar o DOM via composição de funções no estilo Elm com jQuery e Ramda 23/08 Benchmark para comparar a performance do uso de Funções VS Métodos estáticos e de instância em Ruby 25/08. 2º ElmSP Pagar.me 28/08
  11. Mandaram eu ler o Mostly Adequate Guide to Functional Programming

    08/08. Agosto / 2017 Criar o DOM via composição de funções no estilo Elm com jQuery e Ramda 23/08 Benchmark para comparar a performance do uso de Funções VS Métodos estáticos e de instância em Ruby 25/08. 2º ElmSP Pagar.me 28/08 Operador de composição do Elm no Ruby 30/08.
  12. Mandaram eu ler o Mostly Adequate Guide to Functional Programming

    08/08. Agosto / 2017 Criar o DOM via composição de funções no estilo Elm com jQuery e Ramda 23/08 Benchmark para comparar a performance do uso de Funções VS Métodos estáticos e de instância em Ruby 25/08. 2º ElmSP Pagar.me 28/08 Operador de composição do Elm no Ruby 30/08.
  13. You might not need #reactjs, or #redux, follows an example

    of how you can do everything with @jquery and ES201*. 18/09. Setembro / 2017
  14. You might not need #reactjs, or #redux, follows an example

    of how you can do everything with @jquery and ES201*. 18/09. Setembro / 2017
  15. You might not need #reactjs, or #redux, follows an example

    of how you can do everything with @jquery and ES201*. 18/09. Setembro / 2017 @jodosha (criador do Hanami) publica os melhores slides sobre Functional Objects em Ruby que havia visto. 27/09 30LOC to implement a complete and extensible EventBus in a FP approach. 28/09 3º ElmSP TW 28/09
  16. You might not need #reactjs, or #redux, follows an example

    of how you can do everything with @jquery and ES201*. 18/09. Setembro / 2017 @jodosha (criador do Hanami) publica os melhores slides sobre Functional Objects em Ruby que havia visto. 27/09 30LOC to implement a complete and extensible EventBus in a FP approach. 28/09 3º ElmSP TW 28/09
  17. Video Luca Guidi - @jodosha Functional web with Ruby 09/10.

    Outubro / 2017 RequestVia 0.1.0: A Functional HTTP Client That Wraps Net::HTTP 30/10.
  18. Video Luca Guidi - @jodosha Functional web with Ruby 09/10.

    Outubro / 2017 RequestVia 0.1.0: A Functional HTTP Client That Wraps Net::HTTP 30/10.
  19. Novembro / 2017 Programação funcional - Hands on em diferentes

    tecnologias para manjar dos paranauê. 01/11.
  20. Novembro / 2017 Programação funcional - Hands on em diferentes

    tecnologias para manjar dos paranauê. 01/11. Unleash new amazing possibilities writing Ruby functional objects! 10/11.
  21. Novembro / 2017 Programação funcional - Hands on em diferentes

    tecnologias para manjar dos paranauê. 01/11. Unleash new amazing possibilities writing Ruby functional objects! 10/11.
  22. Novembro / 2017 Programação funcional - Hands on em diferentes

    tecnologias para manjar dos paranauê. 01/11. Unleash new amazing possibilities writing Ruby functional objects! 10/11.
  23. Novembro / 2017 Programação funcional - Hands on em diferentes

    tecnologias para manjar dos paranauê. 01/11. Unleash new amazing possibilities writing Ruby functional objects! 10/11.
  24. Novembro / 2017 Programação funcional - Hands on em diferentes

    tecnologias para manjar dos paranauê. 01/11. Unleash new amazing possibilities writing Ruby functional objects! 10/11. When classes are verbs, they act like functions. compound expressions == combination of functions
  25. Novembro / 2017 Programação funcional - Hands on em diferentes

    tecnologias para manjar dos paranauê. 01/11. Unleash new amazing possibilities writing Ruby functional objects! 10/11. When classes are verbs, they act like functions. compound expressions == combination of functions
  26. First, code everything you can without using any side effects.

    Then, code your side effects. Functional First Development