Caro aluno, hoje vamos mudar a forma como você pensa sobre organizar código. Se você vem de Java, C# ou Python, você está acostumado a pensar em Classes (que guardam dados e comportamentos). Em Elixir, nós separamos isso:

  1. Dados são imutáveis e transparentes.
  2. Módulos são apenas agrupadores de funções.
  3. Funções transformam dados.

Vamos construir um sistema de Avaliação Escolar do zero.

1. O Ambiente de Trabalho (Mix)

Em engenharia de software, não criamos arquivos soltos. Precisamos de uma estrutura padrão para compilação, testes e dependências. Em Elixir, essa ferramenta é o Mix.

🛠️ Passo 1: Criando o Projeto

Abra seu terminal e digite o comando abaixo. Ele vai criar a estrutura de pastas padrão da indústria.

mix new escola_elixir
cd escola_elixir

Ao rodar o comando mix new, o Elixir não cria apenas pastas aleatórias. Ele estabelece uma convenção arquitetural usada por toda a comunidade. Entender isso agora vai te salvar horas no futuro.

Abra a pasta no VS Code. Você verá:

1.1. Aridade: A Identidade da Função (vs. Sobrecarga)

Se você vem de linguagens como Java, C# ou C++, provavelmente está acostumado com o conceito de Sobrecarga de Métodos (Method Overloading). Nessas linguagens, você pode ter vários métodos com o mesmo nome, e o compilador decide qual usar analisando os tipos e a quantidade de argumentos. Para o sistema, eles são variações do mesmo comportamento.

Em Elixir (e na máquina virtual Erlang/BEAM), o conceito é diferente e mais estrito. Nós chamamos de Aridade.