Esses dias caí num bug chato num sistema legado em PHP (7.2). Um DTO estava devolvendo dois campos com os valores trocados: o endereço vinha no campo de complemento e o complemento no campo de endereço.
Abordagem Tradicional
Olhei o código várias vezes e tudo 'parecia certo'. Fui pra IA. Colei o trecho, expliquei o sintoma, pedi pra resolver. Ela sugeriu uma coisa. Não era. Expliquei de novo, dei mais contexto, ela sugeriu outra. Também não. Fiquei quase uma hora nesse vai e volta, eu reformulando o problema de mil formas, ela chutando soluções que não encaixavam.
Abordagem Inovadora
Em algum momento mudei a abordagem. Em vez de 'resolve isso pra mim', pedi: 'me explica como esse DTO funciona, passo a passo, como os valores chegam em cada propriedade'. Aí a IA descreveu o fluxo, e no meio da explicação ficou óbvio: o DTO era instanciado por posição, new DTO($a, $b), mas a ordem dos argumentos na chamada não batia com a ordem dos parâmetros no construtor. Como é PHP 7.2, não existe argumento nomeado pra te salvar: é tudo posicional. O primeiro valor cai no primeiro parâmetro, não importa o nome. Estava tudo trocado desde a instanciação.
Conclusão
A correção foi de dez segundos. O que me chamou atenção foi como eu cheguei nela. Enquanto eu tratei a IA como 'resolvedora de bug', ela ficou chutando no escuro junto comigo. No momento que pedi pra ela me explicar o mecanismo, eu mesmo enxerguei o erro, ela só precisou descrever o caminho que os dados faziam.
Recomendações
- Pedir Explicações: Em vez de pedir soluções, peça para a IA explicar como o código funciona. Isso ajuda a identificar bugs sem precisar de soluções mágicas.
- Documentação: Se os argumentos de posição causaram problemas, documentar melhor a posição dos argumentos pode ser uma solução.
- IA como Auxiliar: A IA é útil para processar uma quantidade absurda de informações repetidas, mas não para resolver problemas complexos sem contexto.
Conclusão
Quando a IA trava, o melhor é dar um passo atrás e usar-a apenas para entender o contexto do problema. A IA pode ser uma ferramenta útil, mas não deve ser confiada com soluções complexas sem um bom entendimento do contexto.
Conclusão Final
A IA é uma ferramenta poderosa, mas deve ser usada de forma consciente e inteligente para maximizar seu potencial. Compreender o funcionamento do código e documentar adequadamente são passos fundamentais para aproveitar ao máximo as capacidades da IA no desenvolvimento de software.