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
- Idea vaga: "Vull escriure un scraper per recollir el rànquing de Zhihu."
- Escriure el primer prompt: demanar directament a la IA que generi codi.
- Executar → error → enganxar l'error → IA corregeix.
- La interfície no m'agrada → "Fes el botó més rodó, canvia el fons a blau degradat" → IA modifica.
- Falta funcionalitat → "Afegeix una opció per desar en CSV" → IA afegeix.
- Repetir 3-5 fins que "sembli prou bo".
Flux de Spec Coding
- Escriure document d'especificació: definir clares entrades/sortides, estructures de dades, gestió d'errors, requisits de rendiment, requisits no funcionals (logs, limitació de velocitat).
- Desglossar l'especificació en tasques: per exemple, tasca 1: implementar la funció
fetch_hot_topics()seguint la signatura API de l'spec. - Fer que la IA implementi cada tasca: el prompt inclou signatura de funció, comentaris, casos de prova esperats.
- Revisió i verificació manual: assegurar que compleix l'especificació, executar tests unitaris.
- 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."
评论
暂无已展示的评论。
发表评论(匿名)