Elixir:
Exibindo saídas de depuração
Como Fazer:
Para imprimir valores durante a execução de um programa Elixir, você pode usar a função IO.inspect/2, que retorna o valor inspecionado, permitindo que a inspeção não interrompa o fluxo do seu código.
defmodule ExemploDebug do
def somar_e_inspect(a, b) do
a + b
|> IO.inspect(label: "resultado da soma")
end
end
ExemploDebug.somar_e_inspect(2, 3)Saída esperada:
resultado da soma: 5Você pode também usar o IO.puts/1, se só quiser imprimir algo simples, sem retornar o valor.
IO.puts("Hello, debug!")Saída esperada:
Hello, debug!Aprofundando
Historicamente, a impressão para depuração é um dos métodos de diagnóstico mais antigos e universais. Quase todas as linguagens de programação têm alguma forma de imprimir saídas para ajudar no desenvolvimento e no debug.
No Elixir, além das funções IO.inspect e IO.puts, existem abordagens mais avançadas como :debugger, que inicia um ambiente de depuração completo, e o :observer, que permite inspecionar um sistema em execução visualmente.
As macros Logger.debug/2, Logger.info/2, Logger.warn/2, e Logger.error/2 são alternativas quando se trata de emitir mensagens que podem ser filtradas por níveis de importância e configuradas para serem exibidas ou não, dependendo do ambiente (teste, desenvolvimento, produção).
Detalhes de implementação, como evitar a impressão em produção e a sobrecarga da saída de logs numa aplicação em alta escala, também são assuntos importantes a se considerar.