O que é vibe coding?

"Vibe coding" é uma abordagem para o desenvolvimento de aplicativos que envolve uma dependência forte de um grande modelo de linguagem (LLM) para gerar código.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Descrever o que significa vibe coding
  • Entender como os LLMs podem apoiar o desenvolvimento de aplicativos
  • Listar os prós e os contras do vibe coding

Copiar o link do artigo

O que é vibe coding?

Vibe coding é um método de desenvolvimento de software que incorpora fortemente o uso de grandes modelos de linguagem (LLMs) para gerar código. O termo "vibe coding", que significa codificação assistida por IA, foi cunhado por Andrej Karpath, cofundador da OpenAI, em um post de fevereiro de 2025 no X:

Há um novo tipo de codificação que eu chamo de "vibe coding", em que você cede totalmente às vibes, adota exponenciais e se esquece até mesmo de que o código existe. É possível porque os LLMs (por exemplo, Cursor Composer w Sonet) estão ficando bons demais... O código está além da minha compreensão normal. Eu teria que lê-lo por um tempo. Às vezes, os LLMs não conseguem corrigir um bug, então eu apenas o contorno ou peço alterações aleatórias até que ele desapareça... Não é tão ruim para projetos descartáveis de fim de semana, mas é bastante divertido.

Embora Karpathy tenha definido esse termo, muitos desenvolvedores já haviam começado a experimentar uma abordagem semelhante assistida por IA com o lançamento público de LLMs como ChatGPT e Copilot.

O objetivo do vibe coding é criar aplicativos funcionais e novos recursos mais rapidamente. Tradicionalmente, a codificação é uma atividade muito precisa. Em vez disso, o vibe coding permite que os desenvolvedores forneçam instruções gerais e de alto nível para um LLM, que então produz instruções precisas contidas no código de trabalho.

Como funciona o vibe coding?

Semelhante a outros casos de uso para LLMs, o vibe coding envolve o fornecimento de prompts a um modelo, que produz conteúdo (neste caso, código) em resposta. Os LLMs são modelos de IA generativa. Tendo sido treinados em grandes quantidades de exemplos, eles podem reconhecer, interpretar e gerar linguagem. Os LLMs são capazes de fazer isso com a linguagem humana cotidiana e as linguagens de programação. Essa capacidade permite que um LLM gere código de trabalho, geralmente em segundos.

O desenvolvedor de vibe coding precisa fornecer ao LLM os prompts corretos para que o LLM crie o tipo certo de recurso ou aplicativo. Em geral, esses prompts não precisam ser particularmente precisos, embora possam ser necessárias várias tentativas para que o LLM produza um código que funcione da maneira que o desenvolvedor tem em mente.

O teste e a depuração vêm após o LLM ter produzido o código. Isso envolve a identificação de bugs e problemas de segurança. O LLM pode então ser instruído a resolver esses bugs ou, como Karpathy descreveu, "contornar o problema ou pedir alterações aleatórias até que desapareça" (uma abordagem que pode ou não funcionar, dependendo do bug).

Quais são algumas ferramentas populares de vibe coding?

Vários LLMs amplamente utilizados estão disponíveis para permitir que os desenvolvedores experimentem o vibe coding. Copilot, Cursor, Codeium, Qodo, CodeWhisperer e Replit são ferramentas populares para desenvolvimento de software assistido por LLMs.

Quais são os prós e os contras do vibe coding?

Os benefícios do vibe coding incluem:

  • Prototipagem quase instantânea: as equipes de desenvolvedores podem usar o vibe coding para criar rapidamente versões beta de novas ideias de produtos ou recursos e experimentá-las.
  • Menos esforço manual desnecessário: códigos repetitivos e de baixo nível podem ser gerados automaticamente por LLMs em vibe coding (copiar de código repetitivo sempre foi comum no desenvolvimento).
  • Desenvolvimento e lançamentos mais rápidos: escrever um novo aplicativo ou recurso pode ser demorado, mas o vibe coding pode produzir o código necessário em segundos ou minutos, embora outros prompts possam ser necessários para que o aplicativo ou recurso em questão funcione corretamente.

Algumas das desvantagens podem incluir:

  • Perda de compreensão de bases de código: as equipes de desenvolvimento que enviam recursos em vibe coding com revisão mínima podem não estar familiarizadas com suas bases de código. Isso pode dificultar a correção de bugs ou vulnerabilidades.
  • Desafios de conformidade: às vezes, o resultado do vibe coding é o envio de código não confiável. Os desenvolvedores podem perder a noção de como os aplicativos processam dados pessoais, por exemplo, o que pode causar problemas de conformidade.

Existem preocupações de segurança associadas ao vibe coding?

Vulnerabilidades: qualquer aplicativo pode conter vulnerabilidades ou riscos de segurança. Como o vibe coding pode tornar a escrita e o lançamento de novos recursos muito mais rápidos, o perigo é que mais problemas de segurança passem despercebidos e cheguem à fase de produção. Então, esses problemas de segurança também podem ser mais difíceis de corrigir se as equipes de desenvolvimento não estiverem familiarizadas com o código do problema.

Perda de dados: o uso de qualquer LLM em um contexto empresarial apresenta o risco de que a entrada possa conter propriedade intelectual que será compartilhada em contextos externos. Para proteger os dados internos, os desenvolvedores precisam estar cientes de como um LLM segmenta seus dados no back-end.

Saiba mais sobre como funciona um LLM.