Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Stack funcional com Elm
Search
Éber Freitas Dias
February 29, 2020
Programming
0
89
Stack funcional com Elm
Éber Freitas Dias
February 29, 2020
Tweet
Share
More Decks by Éber Freitas Dias
See All by Éber Freitas Dias
Contruindo aplicações livres de erros com Elm
eberfreitas
0
58
Como começar a fazer jogos com ferramentas open-source
eberfreitas
0
42
Other Decks in Programming
See All in Programming
CSC305 Summer Lecture 12
javiergs
PRO
0
130
個人軟體時代
ethanhuang13
0
280
オープンセミナー2025@広島LT技術ブログを続けるには
satoshi256kbyte
0
150
兎に角、コードレビュー
mitohato14
0
160
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
390
Improving my own Ruby thereafter
sisshiki1969
1
140
Google I/O recap web編 大分Web祭り2025
kponda
0
2.9k
私の後悔をAWS DMSで解決した話
hiramax
4
180
機能追加とリーダー業務の類似性
rinchoku
0
140
AIレビュアーをスケールさせるには / Scaling AI Reviewers
technuma
2
240
ソフトウェアテスト徹底指南書の紹介
goyoki
1
120
KessokuでDIでもgoroutineを活用する / Go Connect #6
mazrean
0
130
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
134
9.5k
GraphQLとの向き合い方2022年版
quramy
49
14k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
Producing Creativity
orderedlist
PRO
347
40k
Designing for Performance
lara
610
69k
Site-Speed That Sticks
csswizardry
10
800
BBQ
matthewcrist
89
9.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Transcript
Stack funcional com Elm
Olá, eu sou o Éber! Elixir & Elm - Radify
None
None
Agradecimentos
Me interrompam!
JavaScript... é complicado
JavaScript... é complicado • dinâmica e flexível
None
JavaScript... é complicado • dinâmica e flexível • cheia de
*wats*
None
What the… JavaScript? - Kyle Simpsons https://youtu.be/2pL28CcEijU
JavaScript... é complicado • dinâmica e flexível • cheia de
*wats* • ecossistema populado
None
JavaScript... é complicado • dinâmica e flexível • cheia de
*wats* • ecossistema populado • as coisas estão melhorando...
Alternativas
Alternativas • CoffeeScript, PureScript, Dart, Reason, Haxe…
language Hipster
Alternativas • CoffeeScript, PureScript, Dart, Reason, Haxe… • TypeScript
Alternativas • CoffeeScript, PureScript, Dart, Reason, Haxe… • TypeScript •
LiveView
Alternativas • CoffeeScript, PureScript, Dart, Reason, Haxe… • TypeScript •
LiveView • Lumen
None
Uma linguagem agradável… … para webapps confiáveis … sem exceções
em tempo de execução … com mensagens de erro amigáveis
Elm • Evan Czaplicki, 2012 • Puramente funcional • Fortemente
tipada • Haskell, OCaml, F# • Compila para JS • Compilador escrito em Haskell • 0.19.1 (Out/2019)
Linguagem & arquitetura
Linguagem • Funcional
Linguagem • Funcional • Sintaxe
None
None
None
Linguagem • Funcional • Sintaxe • Compiler (runtime exceptions &
error msgs)
None
None
None
None
None
Linguagem • Funcional • Sintaxe • Compiler (runtime exceptions &
error msgs) • Fortemente tipada
Linguagem • Funcional • Sintaxe • Compiler (runtime exceptions &
error msgs) • Fortemente tipada • Alias types
None
Linguagem • Funcional • Sintaxe • Compiler (runtime exceptions &
error msgs) • Fortemente tipada • Alias types • Union types
None
Linguagem • Funcional • Sintaxe • Compiler (runtime exceptions &
error msgs) • Fortemente tipada • Alias types • Union types • Maybe
None
None
[ 1, NaN, NaN ]
None
None
None
Linguagem • Funcional • Sintaxe • Compiler (runtime exceptions &
error msgs) • Fortemente tipada • Alias types • Union types • Maybe • Funcional² (sem efeitos colaterais)
Arquitetura • The Elm Architecture (MVU)
https://elmprogramming.com/model-view-update-part-1.html
Arquitetura • The Elm Architecture (MVU) • Commands & Subscriptions
https://elmprogramming.com/subscriptions.html
Exemplo
None
None
None
None
None
None
Trade-offs
Quem usa? • thoughtbot • Rakuten • NoRedInk • Stone
• Cálculo Jurídico • PivotalTracker • Emirates • Vy • ...
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
Dúvidas? speakerdeck.com/eberfreitas twitter.com/eber_freitas github.com/eberfreitas linkedin.com/in/eberfreitas
[email protected]