Elixir e suas
partes boas
a perspectiva de quem não
começou com a linguagem
Slide 2
Slide 2 text
Introdução
Slide 3
Slide 3 text
foto aqui Hussani Oliveira
Líder de Desenvolvimento @ QuintoAndar
Twitter: https://twitter.com/hussanii
LinkedIn: https://www.linkedin.com/in/hussani
Slides: https://speakerdeck.com/hussani
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
Programação Funcional
Slide 6
Slide 6 text
Programação Funcional
"[...] programação funcional é um paradigma de
programação que trata a computação como uma
avaliação de funções matemáticas e que evita estados ou
dados mutáveis."
- Wikipedia
Slide 7
Slide 7 text
Programação Funcional
"[...] programação funcional é um paradigma de
programação que trata a computação como uma
avaliação de funções matemáticas e que evita estados ou
dados mutáveis."
- Wikipedia, por Hussani
x = 4
if true do
x = 2
IO.puts x # 2
end
IO.puts x # 4
Slide 13
Slide 13 text
Pattern Matching
"[...] casamento de padrões é o ato de verificação da
presença de um padrão em um conjunto de dados."
- Wikipedia
Slide 14
Slide 14 text
Tooling
Slide 15
Slide 15 text
Mix
● Inicialização de projetos
Slide 16
Slide 16 text
Mix
● Inicialização de projetos
● Build da aplicação
Slide 17
Slide 17 text
Mix
● Inicialização de projetos
● Build da aplicação
● Testes
Slide 18
Slide 18 text
Mix
● Inicialização de projetos
● Build da aplicação
● Testes
● Gerenciamento de dependências
Slide 19
Slide 19 text
Mix
● Inicialização de projetos
● Build da aplicação
● Testes
● Gerenciamento de dependências
● É extensível
Slide 20
Slide 20 text
REPL
● read–eval–print loop
Slide 21
Slide 21 text
● read–eval–print loop modo interativo
REPL
Slide 22
Slide 22 text
● read–eval–print loop modo interativo
● permite executar instruções no terminal
REPL
Slide 23
Slide 23 text
● read–eval–print loop modo interativo
● permite executar instruções no terminal
● possui autocomplete
REPL
Slide 24
Slide 24 text
● read–eval–print loop modo interativo
● permite executar instruções no terminal
● possui autocomplete
● pode carregar sua aplicação, um módulo, etc.
REPL
Slide 25
Slide 25 text
REPL
Slide 26
Slide 26 text
ExUnit
● Ferramenta de testes da biblioteca padrão
Slide 27
Slide 27 text
ExUnit
● Ferramenta de testes da biblioteca padrão
● Rápida e concisa
Slide 28
Slide 28 text
ExUnit
● Ferramenta de testes da biblioteca padrão
● Rápida e concisa
● Suporta paralelismo na execução
Slide 29
Slide 29 text
ExUnit
● Ferramenta de testes da biblioteca padrão
● Rápida e concisa
● Suporta paralelismo na execução
● Pode detectar race conditions
Slide 30
Slide 30 text
Dialyzer / Dialyxir
● DIscrepancy AnaLYZer for ERlang
Slide 31
Slide 31 text
Dialyzer / Dialyxir
● DIscrepancy AnaLYZer for ERlang
● Análise estática para projetos Erlang (e derivados)
Slide 32
Slide 32 text
Phoenix
● Framework web mais utilizado em Elixir
Slide 33
Slide 33 text
Phoenix
● Framework web mais utilizado em Elixir
● Persistência (Ecto)
Slide 34
Slide 34 text
Phoenix
● Framework web mais utilizado em Elixir
● Persistência (Ecto)
● Real Time (Liveview)
Slide 35
Slide 35 text
Phoenix
● Framework web mais utilizado em Elixir
● Persistência (Ecto)
● Real Time (Liveview)
● Internacionalização (Gettext)
Slide 36
Slide 36 text
Phoenix
● Framework web mais utilizado em Elixir
● Persistência (Ecto)
● Real Time (Liveview)
● Internacionalização (Gettext)
● Muito mais!
Slide 37
Slide 37 text
Ecossistema
Slide 38
Slide 38 text
BEAM
● Máquina Virtual Erlang
Slide 39
Slide 39 text
BEAM
● Máquina Virtual Erlang
● Outras linguagens utilizam
Slide 40
Slide 40 text
BEAM
● Máquina Virtual Erlang
● Outras linguagens utilizam
○ Gleam
○ Alpaca
○ Erlang
○ Etc.