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
76
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
52
Como começar a fazer jogos com ferramentas open-source
eberfreitas
0
36
Other Decks in Programming
See All in Programming
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
150
ML.NETで始める機械学習
ymd65536
0
220
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
120
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
110
負債になりにくいCSSをデザイナとつくるには?
fsubal
10
2.5k
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
140
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
53
18k
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
1
210
Domain-Driven Transformation
hschwentner
2
1.9k
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
14
4.5k
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
4
900
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
380
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
137
6.8k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Done Done
chrislema
182
16k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Statistics for Hackers
jakevdp
797
220k
Adopting Sorbet at Scale
ufuk
74
9.2k
A better future with KSS
kneath
238
17k
Agile that works and the tools we love
rasmusluckow
328
21k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Optimizing for Happiness
mojombo
376
70k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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]