Módulo 1: O "Código que escreve Código"

Caro aluno, bem-vindo ao coração do Elixir. Muitas linguagens tratam Metaprogramação como uma "magia negra" perigosa que deve ser evitada. No Elixir, ela é a base da própria linguagem.

1. Contextualização: Onde vivem as Macros?

Antes de escrevermos nossa primeira macro, você precisa entender um segredo: Quase tudo o que você usa em Elixir é uma Macro.

O núcleo da linguagem (o compilador) é extremamente pequeno. A maior parte das funcionalidades que você usa no dia a dia foi construída sobre esse núcleo, usando Metaprogramação.

Aqui estão os 4 exemplos clássicos de uso na indústria:

1.1. A Própria Linguagem (Módulo Kernel)

Você sabia que if, unless, def, defmodule e alias não são palavras reservadas do compilador? Elas são macros escritas em Elixir!

1.2. Ecto (Queries de Banco de Dados) 🛡️

O Ecto permite escrever consultas SQL usando sintaxe Elixir.

Elixir

# Isso parece Elixir, mas vira SQL seguro from u in User, where: u.age > 18

1.3. Phoenix (Roteamento Web) 🌐

O framework Phoenix usa macros para definir rotas de forma limpa.

Elixir

get "/users/:id", UserController, :show