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

Stack funcional com Elm

Stack funcional com Elm

Éber Freitas Dias

February 29, 2020
Tweet

More Decks by Éber Freitas Dias

Other Decks in Programming

Transcript

  1. Stack funcional
    com Elm

    View full-size slide

  2. Olá, eu sou o Éber!
    Elixir & Elm - Radify

    View full-size slide

  3. Agradecimentos

    View full-size slide

  4. Me interrompam!

    View full-size slide

  5. JavaScript... é complicado

    View full-size slide

  6. JavaScript... é complicado
    ● dinâmica e flexível

    View full-size slide

  7. JavaScript... é complicado
    ● dinâmica e flexível
    ● cheia de *wats*

    View full-size slide

  8. What the… JavaScript? - Kyle Simpsons
    https://youtu.be/2pL28CcEijU

    View full-size slide

  9. JavaScript... é complicado
    ● dinâmica e flexível
    ● cheia de *wats*
    ● ecossistema populado

    View full-size slide

  10. JavaScript... é complicado
    ● dinâmica e flexível
    ● cheia de *wats*
    ● ecossistema populado
    ● as coisas estão melhorando...

    View full-size slide

  11. Alternativas

    View full-size slide

  12. Alternativas
    ● CoffeeScript, PureScript, Dart,
    Reason, Haxe…

    View full-size slide

  13. language
    Hipster

    View full-size slide

  14. Alternativas
    ● CoffeeScript, PureScript, Dart,
    Reason, Haxe…
    ● TypeScript

    View full-size slide

  15. Alternativas
    ● CoffeeScript, PureScript, Dart,
    Reason, Haxe…
    ● TypeScript
    ● LiveView

    View full-size slide

  16. Alternativas
    ● CoffeeScript, PureScript, Dart,
    Reason, Haxe…
    ● TypeScript
    ● LiveView
    ● Lumen

    View full-size slide

  17. Uma linguagem agradável…
    … para webapps confiáveis
    … sem exceções em tempo de execução
    … com mensagens de erro amigáveis

    View full-size slide

  18. Elm
    ● Evan Czaplicki, 2012
    ● Puramente funcional
    ● Fortemente tipada
    ● Haskell, OCaml, F#
    ● Compila para JS
    ● Compilador escrito em Haskell
    ● 0.19.1 (Out/2019)

    View full-size slide

  19. Linguagem &
    arquitetura

    View full-size slide

  20. Linguagem
    ● Funcional

    View full-size slide

  21. Linguagem
    ● Funcional
    ● Sintaxe

    View full-size slide

  22. Linguagem
    ● Funcional
    ● Sintaxe
    ● Compiler (runtime exceptions & error msgs)

    View full-size slide

  23. Linguagem
    ● Funcional
    ● Sintaxe
    ● Compiler (runtime exceptions & error msgs)
    ● Fortemente tipada

    View full-size slide

  24. Linguagem
    ● Funcional
    ● Sintaxe
    ● Compiler (runtime exceptions & error msgs)
    ● Fortemente tipada
    ● Alias types

    View full-size slide

  25. Linguagem
    ● Funcional
    ● Sintaxe
    ● Compiler (runtime exceptions & error msgs)
    ● Fortemente tipada
    ● Alias types
    ● Union types

    View full-size slide

  26. Linguagem
    ● Funcional
    ● Sintaxe
    ● Compiler (runtime exceptions & error msgs)
    ● Fortemente tipada
    ● Alias types
    ● Union types
    ● Maybe

    View full-size slide

  27. [ 1, NaN, NaN ]

    View full-size slide

  28. Linguagem
    ● Funcional
    ● Sintaxe
    ● Compiler (runtime exceptions & error msgs)
    ● Fortemente tipada
    ● Alias types
    ● Union types
    ● Maybe
    ● Funcional² (sem efeitos colaterais)

    View full-size slide

  29. Arquitetura
    ● The Elm Architecture (MVU)

    View full-size slide

  30. https://elmprogramming.com/model-view-update-part-1.html

    View full-size slide

  31. Arquitetura
    ● The Elm Architecture (MVU)
    ● Commands & Subscriptions

    View full-size slide

  32. https://elmprogramming.com/subscriptions.html

    View full-size slide

  33. Quem usa?
    ● thoughtbot
    ● Rakuten
    ● NoRedInk
    ● Stone
    ● Cálculo Jurídico
    ● PivotalTracker
    ● Emirates
    ● Vy
    ● ...

    View full-size slide

  34. Como aprender?
    ● https://guide.elm-lang.org/
    ● https://elmprogramming.com/
    ● https://www.manning.com/books/elm-in-action
    ● https://cuducos.me/2016/10/24/vamos-aprender-elm.html
    ● https://www.twitch.tv/eberfreitas

    View full-size slide

  35. Dúvidas?
    speakerdeck.com/eberfreitas
    twitter.com/eber_freitas
    github.com/eberfreitas
    linkedin.com/in/eberfreitas
    [email protected]

    View full-size slide