← 返回列表

Sèrie d'entrevistes AI 14: Diferència entre vibe coding i spec coding?

Aquesta és una pregunta que la majoria de programadors s'enfronten. Vibe Coding i Spec Coding són dues maneres de treballar completament diferents quan es programa amb l'ajuda de models de llenguatge grans (LLM). La diferència clau és: l'"entrada" que dones a la IA és una sensació vaga o una especificació precisa.


I. Exemple amb cuina per descriure la diferència entre vibe coding i spec coding

  • Vibe Coding = dius a un amic "tinc ganes de picant", l'amic fa un plat segons el seu criteri, tu proves i dius "una mica més de sal", ell afegeix sal. Pot ser sorprenent, però un altre cuiner faria un plat completament diferent.
  • Spec Coding = escrius una recepta: "20g de pasta de fesols picant de Pixian, 150g de carn de vedella a rodanxes, 50g d'api tallat, saltar a foc fort 2 minuts, afegir 3g de sucre abans de treure del foc". Diferents cuiners seguint la recepta obtenen un resultat molt consistent.

II. Definició dels dos conceptes

Dimensió Vibe Coding Spec Coding
Àlies Programació guiada per sensacions, improvisació amb prompts Programació guiada per especificacions, documentació primer
Forma d'entrada "Fes una pàgina de login bonica, amb aspecte tecnològic" "La pàgina de login ha de tenir: camps d'email/contrasenya, casella de 'recorda'm', botó d'enviament; frontend amb React + Tailwind; regles de validació: format d'email, contrasenya ≥8 caràcters; en cas d'error, mostrar missatge en vermell..."
Ús de la IA Conversacional, iteratiu: indicar direcció general → veure sortida → ajustar Enginyeril: primer escriure PRD/especificacions tècniques detallades → IA genera codi basat en l'especificació
Participació humana Baixa: es confia en la creativitat de la IA, la persona només jutja "si sembla correcte" Alta: la persona dissenya/arquitectura primer, la IA principalment executa
Escenaris típics Prototip ràpid, eines personals, exploració d'UI, codi creatiu Sistemes de producció, treball en equip, codi mantenible i testeable

III. Comparació de fluxos de treball

Flux de Vibe Coding

  1. Idea vaga: "Vull escriure un scraper per recollir el rànquing de Zhihu."
  2. Escriure el primer prompt: demanar directament a la IA que generi codi.
  3. Executar → error → enganxar l'error → IA corregeix.
  4. La interfície no m'agrada → "Fes el botó més rodó, canvia el fons a blau degradat" → IA modifica.
  5. Falta funcionalitat → "Afegeix una opció per desar en CSV" → IA afegeix.
  6. Repetir 3-5 fins que "sembli prou bo".

Flux de Spec Coding

  1. Escriure document d'especificació: definir clares entrades/sortides, estructures de dades, gestió d'errors, requisits de rendiment, requisits no funcionals (logs, limitació de velocitat).
  2. Desglossar l'especificació en tasques: per exemple, tasca 1: implementar la funció fetch_hot_topics() seguint la signatura API de l'spec.
  3. Fer que la IA implementi cada tasca: el prompt inclou signatura de funció, comentaris, casos de prova esperats.
  4. Revisió i verificació manual: assegurar que compleix l'especificació, executar tests unitaris.
  5. Integració i regressió.

IV. Comparació d'avantatges i inconvenients

Característica Vibe Coding Spec Coding
Velocitat d'inici Molt ràpida, prototip en minuts Lenta, cal escriure documents i dividir tasques
Qualitat del codi Baixa (pot ser redundant, inconsistent, amb errors ocults) Alta (llegible, testeable, coherent amb l'arquitectura)
Mantenibilitat Dolenta, els altres no entenen "per què s'ha escrit així" Bona, l'especificació fa de documentació
Dependència del LLM Molt alta, canviar de model pot donar resultats completament diferents Mitjana, si l'especificació és clara, diferents models produeixen estructures similars
Dificultat de depuració Difícil, no se sap d'on ve la lògica del codi Fàcil, es pot comprovar punt per punt amb l'spec
Apte per a treball en equip Gairebé impossible Sí (l'spec actua com a contracte de comunicació)
Determinisme del resultat Baix, cada conversa pot derivar Alt, amb la mateixa especificació s'obtenen sortides estables

V. Recomanacions pràctiques

"A la feina, no es tria entre vibe coding i spec coding, sinó que es combinen, utilitzant l'adequat segons el context:
- En la fase d'exploració (quan no es té clar l'enfocament tècnic o l'estil de la UI), utilitza Vibe Coding per validar ràpidament diferents opcions, com ara 'fes un component de targeta amb Tailwind per veure com queda'.
- Un cop decidida la solució, canvia immediatament a Spec Coding: converteix el prototip en una especificació clara (entrades/sortides, casos límit, gestió d'errors) i després fes que la IA o un humà reescrigui el codi de producció seguint estrictament l'spec.
El mode Vibe pur només serveix per a scripts d'un sol ús o eines internes; per a sistemes que requereixin manteniment a llarg termini i ús per part de múltiples persones, Spec Coding és un requisit imprescindible."

评论

暂无已展示的评论。

发表评论(匿名)