Defensive Programming em Python — Como Validar Input Antes do Desastre Cenário familiar: seu script roda perfeitamente em 5 máquinas diferentes. Tudo bem. Até que, um dia, um usuário envia um CSV com uma coluna faltante. O script morre silenciosamente. Qual máquina falhou? Qual arquivo? Difícil debugar. Isso é um problema de defensive programming. Profissionais não esperam que os dados cheguem perfeitos. Eles validam. O Problema: Dados Ruins Chegam sem Aviso A maioria dos scripts Python segue este padrão: Simples. Mas frágil. Se chegar com: Coluna faltante (usuário enviou arquivo errado) Valores negativos (quando deveria ser positivo) NULLs em coluna crítica Tipo de dado errado (string em vez de número) O script morre no meio do processamento. Sem contexto. Sem mensagem clara. O usuário não sabe o que errou. Você precisa investigar 5 máquinas diferentes. Duas horas depois, descobre: "faltava a coluna ID". A Solução: Validação Explícita de Input Defensive programming é simples: valide os dados ANTES de processar. Mudança Mentalidade: Falha Rápido, Não Silencioso Com validação: 1. Erro detectado no input — não no meio do processamento 2. Mensagem clara — "coluna X falta" (não um traceback de 20 linhas) 3. Usuário corrige antes de reenviar — loop de feedback rápido 4. Script nunca morre misteriosamente em produção Sem validação: Script morre na linha 500 de processamento Dados parciais salvos (inconsistência) Difícil debugar sem acesso à máquina Com validação: Script falha na linha 10 (entrada) Zero processamento (dados rejeitos) Mensagem clara para o usuário Expandindo: Validação em Produção Em scripts críticos, adicione logging + notificações: Checklist de Validação (YAPD: You Ain't Gonna Forget) Toda vez que receber dados externos, pergunte: [ ] Todas as colunas esperadas estão presentes? [ ] Há valores NULL onde não deveria? [ ] Os valores estão no range correto? [ ] O tipo de dado está correto (int, str, float)? [ ] Há duplicatas inesperadas? [ ] As datas estão em formato válido? Validação não é perfeccionismo. É profissionalismo. Para dominar validação de dados em escala, confira o módulo de Data Engineering da Elite Data Academy. Aprenda pipelines robustos com schema validation, data quality checks, e logging profissional.