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

Contruindo aplicações livres de erros com Elm

Contruindo aplicações livres de erros com Elm

Éber Freitas Dias

March 04, 2020
Tweet

More Decks by Éber Freitas Dias

Other Decks in Programming

Transcript

  1. Construindo aplicações livres de erros com Elm

  2. Oi, eu sou o Éber! • formado em Design Gráfico

    • 15 anos (mais ou menos) de XP c/ webdev • programador na Radify - Elm/Elixir
  3. O que é Elm? • puramente funcional • fortemente tipada

    • webapps confiáveis • aprendizado e utilização agradáveis • compila para javascript • sem erros em tempo de execução
  4. $> elm repl

  5. None
  6. None
  7. None
  8. None
  9. Mas como assim… Livre de erros?

  10. https://rollbar.com/blog/top-10-javascript-errors/

  11. Uncaught TypeError: Cannot read property TypeError: ‘undefined’ is not an

    object TypeError: null is not an object (unknown): Script error TypeError: Object doesn’t support property TypeError: ‘undefined’ is not a function Uncaught RangeError TypeError: Cannot read property ‘length’ Uncaught TypeError: Cannot set property ReferenceError: event is not defined
  12. Uncaught TypeError: Cannot read property TypeError: ‘undefined’ is not an

    object TypeError: null is not an object (unknown): Script error TypeError: Object doesn’t support property TypeError: ‘undefined’ is not a function Uncaught RangeError TypeError: Cannot read property ‘length’ Uncaught TypeError: Cannot set property ReferenceError: event is not defined
  13. “TypeError é quando você tenta executar uma função ou operação

    em um dado incorreto”
  14. JavaScript... • tipagem fraca e dinâmica • estado compartilhado •

    mutabilidade • side-effects
  15. None
  16. A abordagem Elm...

  17. A abordagem Elm... • compilação

  18. None
  19. A abordagem Elm... • compilação • tipagem forte e estática

  20. None
  21. None
  22. None
  23. None
  24. A abordagem Elm... • compilação • tipagem forte e estática

    • imutabilidade
  25. None
  26. None
  27. A abordagem Elm... • compilação • tipagem forte e estática

    • imutabilidade • sem estado compartilhado
  28. A abordagem Elm... • compilação • tipagem forte e estática

    • imutabilidade • sem estado compartilhado • sem null/undefined/NaN
  29. None
  30. None
  31. None
  32. None
  33. None
  34. None
  35. A abordagem Elm... • compilação • tipagem forte e estática

    • imutabilidade • sem estado compartilhado • sem null/undefined/NaN • funções totais
  36. “Funções totais são funções que te dão um retorno válido

    para qualquer combinação de argumentos válidos”
  37. None
  38. None
  39. None
  40. A abordagem Elm... • compilação • tipagem forte e estática

    • imutabilidade • sem estado compartilhado • sem null/undefined/NaN • funções totais • sem side-effects
  41. https://elmprogramming.com/subscriptions.html

  42. Vamos usar Elm p/ tudo!!? E JavaScript é uma droga?!?

  43. É difícil de aprender?

  44. Como aprender mais... • 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 • https://t.me/elmbrasil • https://perifacode.com
  45. Dúvidas? speakerdeck.com/eberfreitas twitter.com/eber_freitas github.com/eberfreitas linkedin.com/in/eberfreitas [email protected]