← 返回列表

Série de Entrevistas AI 14: Diferença entre vibe coding e spec coding?

Este é um problema que a maioria dos programadores enfrenta. Vibe Coding e Spec Coding são duas formas de trabalho distintas ao programar com a ajuda de grandes modelos de linguagem (LLM). A diferença central é: o "input" que você dá à IA é uma sensação vaga ou uma especificação precisa.


1. Usando a culinária como exemplo para descrever a diferença entre vibe coding e spec coding

  • Vibe Coding = Você diz a um amigo "quero comer algo picante", ele prepara um prato por intuição, você prova e diz "mais salgado", ele adiciona sal. O sabor pode surpreender, mas se outro amigo cozinhar, o resultado será completamente diferente.
  • Spec Coding = Você escreve uma receita: "20g de pasta de pimenta doubanjiang, 150g de fatias de carne, 50g de aipo, refogue em fogo alto por 2 minutos, adicione 3g de açúcar antes de retirar do fogo". Diferentes chefs seguindo a receita produzem sabores altamente consistentes.

2. Definições de ambos

Dimensão Vibe Coding Spec Coding
Outros nomes Programação orientada por sensação, improviso com prompt Programação orientada por especificação, documentação primeiro
Forma de entrada "Me ajude a fazer uma página de login bonita, com um toque tecnológico" "A página de login deve incluir campos de email/senha, caixa de seleção 'lembrar-me', botão de envio; frontend usa React + Tailwind; regras de validação do formulário: formato de email, senha com comprimento ≥8; em caso de falha, exibir mensagem de erro em vermelho..."
Modo de uso da IA Conversacional, iterativo: dar direção geral → ver saída → ajustar Engenharia: primeiro escrever PRD/especificação técnica detalhada → IA gera código baseado na especificação
Envolvimento humano Baixo: depende da criatividade da IA, humano só avalia "se parece certo" Alto: humano primeiro faz design/arquitetura, IA principalmente executa
Cenários típicos Prototipagem rápida, ferramentas pessoais, exploração de UI, código criativo Sistemas de produção, trabalho em equipe, código que precisa ser mantido/testado

3. Comparação dos fluxos de trabalho

Fluxo do Vibe Coding

  1. Ideia vaga: "Quero escrever um crawler para pegar o ranking do Zhihu."
  2. Escrever o primeiro prompt: Pedir diretamente à IA para gerar código.
  3. Executar → Erro → Copiar o erro de volta → IA modifica.
  4. Achar a interface feia → "Deixe aquele botão mais arredondado, mude o fundo para um gradiente azul" → IA altera.
  5. Falta funcionalidade → "Adicione uma função para salvar em CSV" → IA adiciona.
  6. Repetir os passos 3-5 até "parecer bom o suficiente".

Fluxo do Spec Coding

  1. Escrever documento de especificação: Definir entradas/saídas, estruturas de dados, tratamento de erros, requisitos de desempenho, requisitos não funcionais (como logs, rate limiting).
  2. Dividir a especificação em tarefas: Por exemplo, Tarefa 1: Implementar a função fetch_hot_topics() seguindo a assinatura da API na spec.
  3. Fazer a IA implementar cada tarefa: O prompt inclui assinatura da função, comentários, expectativas de casos de teste.
  4. Revisão e verificação manual: Garantir conformidade com a especificação, executar testes unitários.
  5. Integração e regressão.

4. Comparação de prós e contras

Característica Vibe Coding Spec Coding
Velocidade inicial Muito rápida, protótipo em minutos Lenta, precisa escrever documentos e dividir tarefas
Qualidade do código Baixa (pode ser redundante, inconsistente, com bugs ocultos) Alta (legível, testável, alinhado à arquitetura)
Facilidade de manutenção Ruim, outros não entendem "por que foi escrito assim" Boa, especificação serve como documentação
Dependência do LLM Muito alta, trocar de modelo pode mudar completamente a saída Moderada, desde que a especificação seja clara, diferentes modelos podem produzir estruturas semelhantes
Dificuldade de depuração Difícil, não se sabe a lógica do código Fácil, verificar item por item conforme a spec
Adequado para trabalho em equipe Quase impossível Sim (spec serve como contrato de comunicação)
Determinismo da saída Baixo, resultados podem variar a cada conversa Alto, mesma spec produz saída estável

5. Sugestões de uso na prática

"No trabalho, vibe coding e spec coding não são uma escolha binária, mas sim usados de forma híbrida, aplicando a abordagem adequada ao cenário:
- Na fase de exploração (quando a escolha técnica ou o estilo de UI são incertos), use Vibe Coding para validar rapidamente diferentes opções, como 'escreva um componente de cartão com Tailwind para ver o efeito'.
- Assim que a abordagem for decidida, mude imediatamente para Spec Coding: transforme o protótipo bem-sucedido em uma especificação clara (entradas/saídas, condições de contorno, tratamento de erros) e peça à IA ou a um humano para reescrever o código de produção rigorosamente de acordo com a spec.
O modo puro Vibe é adequado apenas para scripts descartáveis ou ferramentas internas; para sistemas que precisam de manutenção a longo prazo e uso por múltiplas pessoas, Spec Coding é um requisito rigoroso."

评论

暂无已展示的评论。

发表评论(匿名)