Vibecoding
Como revisar código gerado por IA (checklist prático)
A IA escreve rápido. Isso não quer dizer que escreve certo. Um checklist pra você revisar antes de confiar.
A IA te entrega 200 linhas em 5 segundos. Você lê 3 e aperta aceitar. Esse é o momento exato em que o bug entra no seu projeto.
Segundo a Veracode, código gerado por IA tem 2,74x mais chance de conter vulnerabilidades do que código escrito por humano com revisão. Não é que a IA seja ruim. É que ninguém está lendo.
Meu take: velocidade sem revisão não é produtividade. É dívida com juros. Aqui está o checklist que eu rodo em todo trecho gerado.
Camada 1: Entender antes de ler
Antes de olhar linha por linha, responda uma pergunta: o que esse código deveria fazer?
Se você não sabe explicar em uma frase o que pediu, você não tem como revisar. Você só vai olhar e achar bonito.
Escreva o objetivo em uma linha. Depois compare com o que a IA entregou. Muita coisa quebra aqui: você pediu A, ela fez B parecido.
Camada 2: Ler de verdade
Agora sim, linha por linha. Procure três coisas:
- Nomes de variável que não fazem sentido pro seu contexto.
- Lógica que você não entende. Se você não entende, você não mantém.
- Coisas "a mais" que você não pediu. IA adora adicionar features fantasma.
Regra dura: se tem uma linha que você não sabe explicar, ela não entra. Pergunta pra IA o que aquilo faz. Ou apaga.
Camada 3: Blindar
Aqui é onde a maioria falha. Pergunte:
- E se o input vier vazio?
- E se vier um valor gigante ou malicioso?
- Tem validação antes de usar o dado?
- Tem tratamento de erro ou vai explodir na cara do usuário?
Exemplo do que procurar. Isso aqui é bomba:
const user = await db.query("SELECT * FROM users WHERE id = " + req.params.id)
Concatenar input direto na query é SQL injection servido em bandeja. O certo usa parâmetro:
const user = await db.query("SELECT * FROM users WHERE id = ?", [req.params.id])
Camada 4: Testar
Código que roda uma vez não é código que funciona. Teste os casos de borda:
- O caminho feliz (o que deveria acontecer).
- O input vazio.
- O input errado.
- O limite (número máximo, string enorme).
Se não deu pra testar, não deu pra confiar. Rode. Veja quebrar. Conserte.
Camada 5: Versionar
Antes de aceitar de vez, commit. Assim você tem ponto de retorno. Se der ruim depois, você volta uma casa em vez de reconstruir tudo.
Mensagem de commit clara ajuda você a lembrar por que aquilo entrou. Falo disso em outro post.
O checklist em formato de bolso
Cola isso perto da tela:
- Sei explicar o que esse código faz?
- Li linha por linha?
- Tem validação de input?
- Tem tratamento de erro?
- Testei o caso de borda?
- Commitei antes de seguir?
Seis perguntas. Se alguma for "não", você ainda não terminou.
Vibecoding com engenharia é isso. Não é escrever menos. É revisar o que a máquina escreveu com olho de dono. A IA é sua estagiária mais rápida. Não é sua chefe.
A decisão é sua.
Perguntas frequentes
Perguntas rápidas
+Preciso revisar tudo mesmo?
Sim. Se você vai colocar seu nome no projeto, você é o dono do código. A IA sugere, você decide o que entra.
+Quanto tempo isso leva?
Menos do que consertar um bug em produção às 2h da manhã. Uma revisão de 10 minutos economiza horas depois.
+Dá pra automatizar parte disso?
Sim. Testes e linters pegam parte. Mas entender o que o código faz continua sendo trabalho seu.
Continue lendo
Como não virar refém de uma ferramenta de IA
A ferramenta que você ama hoje pode dobrar de preço, mudar de dono ou fechar amanhã. Não construa em cima de uma só.
VibecodingO que fazer quando a IA te dá código que você não entende
A tentação é apertar aceitar e seguir. Não faça. Código que você não entende é código que você não mantém.
VibecodingPor que backup não é opcional
Existe quem faz backup e quem ainda não perdeu tudo. Você escolhe de qual lado ficar antes ou depois.