Causa raiz versus sintoma
A armadilha mais tentadora na depuração é o remendo que faz o erro desaparecer sem corrigir a causa. Se user está indefinido e você "conserta" isso com if (user) { ... }, o erro para — mas agora os cadastros silenciosamente não fazem nada, o que é pior: uma falha barulhenta pelo menos te dizia que algo estava errado, e agora nada diz. A pergunta real é por que user está indefinido aqui? Talvez a busca no banco de dados tenha falhado. Talvez um campo tenha sido renomeado. Talvez esteja faltando um await mais acima.
Quando a IA propuser uma correção, pergunte a ela:
- "Isso está corrigindo a causa ou escondendo o sintoma?"
- "Qual era o motivo original pelo qual o valor estava errado?"
- "Essa mesma causa raiz poderia quebrar outra coisa?"
Uma correção de causa raiz geralmente torna o código mais simples ou mais claro. Um remendo de sintoma geralmente adiciona uma proteção, um try/catch que engole erros, ou um valor padrão que disfarça o problema real. Desconfie do segundo tipo. Há um sinal que vale a pena aprender: se uma correção adiciona código cujo único trabalho é evitar uma falha em vez de fazer a coisa certa, você provavelmente está remendando um sintoma. Correções de verdade tendem a eliminar completamente o estado impossível, não apenas sobreviver a ele.