vibe-codingaidev-toolstypescript

Vibe Coding na Prática: o que é, quando usar e os riscos reais

Douglas Haruo 10 min 03/06/2026

O que é Vibe Coding?

Vibe coding é o termo que pegou para descrever uma abordagem de desenvolvimento onde você descreve o que quer em linguagem natural, deixa a IA gerar o código, e só intervém quando algo quebra. O nome vem de uma paleta do Andrej Karpathy em 2025 — “vibe coding” porque você está no vibe da IA, não no controle fino de cada linha.

Na prática, funciona assim:

“Cria uma tabela com paginação que busca dados de /api/users e mostra loading state”

— e a IA (Cursor, Windsurf, Claude Code) gera o componente React com fetch, loading, empty state, paginação e testes.

O desenvolvedor revisa, ajusta pequenos detalhes, e segue. O ganho de velocidade é real — especialmente em tarefas repetitivas ou boilerplate pesado.

Mas nem tudo são flores. Vamos ver onde isso brilha, onde quebra, e como usar sem afundar seu projeto em dívida técnica.


Onde o Vibe Coding brilha

Prototipação rápida

Nada supera vibe coding para MVP e provas de conceito. Precisa validar uma ideia com um stakeholder amanhã de manhã? Descreva o fluxo, deixe a IA gerar o CRUD, ajuste o essencial. Em horas você tem algo rodando que levaria dias.

Scripts e automação descartável

Scripts de migração, transformação de dados, web scraping básico — tarefas que você faria uma vez e jogaria fora. Vibe coding aqui é mão na roda: descreva “script que lê CSV, transforma coluna X em Y e salva como JSON”, e pronto.

UI boilerplate e componentes repetitivos

Formulários, tabelas, CRUDs, páginas de dashboard — padrões que todo dev já escreveu dezenas de vezes. A IA gera o esqueleto, você customiza. Economia de horas por sprint.

Geração de testes

“Gera teste unitário para esse hook que cobre edge cases de loading e erro” — e a IA produz mocks, describe blocks e assertions. Você revisa e ajusta. Muito mais rápido que escrever do zero.


Onde o Vibe Coding quebra (e quebra feio)

Lógica de negócio crítica

Sistemas financeiros, cálculos de imposto, regras de compliance — aqui o vibe coding é perigoso. A IA não entende o domínio do seu negócio. Ela gera código que parece certo mas tem bugs sutis de lógica que passam despercebidos em code review.

Exemplo real: Um desenvolvedor usou Cursor para gerar uma função de rate limiting. Parecia correta. Só descobriu o bug de off-by-one quando o sistema deixou passar 2x mais requisições que o limite configurado — em produção.

Segurança

Se você não entende profundamente o código que a IA gerou, não deveria colocá-lo em produção. A IA pode:

  • Usar bibliotecas com vulnerabilidades conhecidas
  • Expor acidentalmente tokens ou secrets
  • Ignorar sanitização de input (abrindo caminho para SQL injection, XSS)
  • Implementar autenticação de forma insegura

Código que ninguém entende

Vibe coding tende a produzir código “cada um por si” — sem consistência de estilo, sem padrões claros. Com o tempo, o código se torna um emaranhado que só a IA entende. E quando a IA erra, ninguém consegue debugar.


Onde usei, e onde parei de usar

Isto é relato do meu próprio trabalho, sem número de produtividade: eu não medi com denominador, e economia de tempo estimada de cabeça é a métrica mais fácil de inflar que existe. O que dá para dizer com honestidade é onde a coisa virou:

Funcionou bem para:

  • Gerar componentes de UI a partir de um design system já definido
  • Escrever teste de integração para uma API REST que já tinha contrato
  • Script de ETL para migrar dado entre sistemas legados

Parou de funcionar quando:

  • Refatorar conciliação de transação financeira. A IA insistia em solução genérica que não capturava a regra de negócio, e a regra de negócio era o problema
  • Um sistema de autorização com mais regras do que cabe numa janela de contexto. Ela perdia o começo e gerava regras que se contradiziam
  • Depurar vazamento de memória em Node. As “soluções” sugeridas pioravam o quadro, com confiança

A linha divisória é clara: vibe coding funciona para código genérico, quebra para código de domínio.


Boas práticas para não acumular dívida técnica

1. Tenha um contrato claro com a IA

Descreva não só o que fazer, mas como fazer. Especifique padrões: “use React Query para data fetching, componentes server-side do Next.js App Router, e validação com Zod”. Quanto mais contexto, melhor o resultado.

2. Sempre revise o diff completo

Não aceite código que você não entende. Revise cada diff como se fosse de um colega. Se a IA fez algo que você não sabe explicar, peça ajustes ou faça manualmente.

3. Use vibe coding só no que é boilerplate

Separe o código genérico (UI, testes, scripts) do código de domínio (regras de negócio, lógica financeira, segurança). Use IA para o primeiro, escreva o segundo você mesmo.

4. Testes não são opcionais

A IA pode gerar código que passa nos testes que ela mesma escreveu. Sempre escreva testes de borda manualmente. A IA tende a testar o caminho feliz e ignorar edge cases críticos.

5. Mantenha o código legível

Peça para a IA gerar código limpo, com nomes descritivos e comentários onde necessário. Código ofuscado que a IA entende é o tech debt de amanhã.

6. Tenha um humano responsável

No final, alguém precisa assumir a responsabilidade pelo código. Vibe coding não substitui revisão. Se o código quebrou, o erro é do time, não da IA.


Conclusão

Vibe coding é uma ferramenta poderosa — mas é exatamente isso: uma ferramenta. Não substitui conhecimento de domínio, boas práticas de engenharia, ou revisão de código. Use para acelerar o que é genérico, mas mantenha o controle sobre o que é específico do seu negócio.

Uso IA todo dia para escrever código, e a regra que eu mesmo sigo é a da última seção: alguém responde pelo que foi gerado, e esse alguém sou eu. Quando não dá para revisar de verdade o que saiu, o certo não é revisar por cima: é não usar ali.


Douglas Haruo, engenheiro de software há 15 anos, cinco deles em risco e fraude numa fintech de pagamentos. haruo.dev

Agentes de IA que aguentam produção

Escrevo aqui sobre os agentes que eu mesmo opero: memória em Postgres, ferramentas registradas em código e limites que o prompt não pode contornar. O método e os números medidos vão junto com cada post.

Ver os posts sobre agentes →