← 返回列表

AI-serieintervju 14: Skillnaden mellan vibe coding och spec coding

Detta är en fråga som de flesta programmerare ställs inför. Vibe Coding och Spec Coding är två helt olika arbetsparadigm när man använder stora språkmodeller (LLM) för att programmera. Den centrala skillnaden är: ger du AI:n en vag känsla eller en exakt specifikation som input.


1. En enkel skillnad mellan vibe coding och spec coding med matlagning som exempel

  • Vibe Coding = Du säger till en vän "Jag vill ha något starkt", vännen improviserar en rätt, du smakar och säger "Lite mer salt", han tillsätter salt. Smaken kan vara fantastisk, men en annan vän skulle tillaga en helt annan rätt.
  • Spec Coding = Du skriver ett recept: "20 g Pixian doubanjiang, 150 g nötköttsskivor, 50 g selleristjälkar, woka på hög värme i 2 minuter, tillsätt 3 g socker före servering". Olika kockar som följer receptet får en mycket likartad smak.

2. Definitioner

Dimension Vibe Coding Spec Coding
Alternativa namn Känslodriven programmering, prompt-improvisation Specifikationsdriven programmering, dokumentation först
Inputform "Skapa en snygg inloggningssida med en teknisk känsla" "Inloggningssidan ska innehålla e-post/lösenordsfält, en 'Kom ihåg mig'-kryssruta och en skicka-knapp; frontend med React + Tailwind; formvalideringsregler: e-postformat, lösenordslängd ≥ 8; vid fel, visa röd varning..."
AI-användning Dialogbaserad, iterativ: ange ungefärlig riktning → se output → justera Ingenjörsmässig: skriv detaljerad PRD/teknisk specifikation → AI genererar kod baserat på specifikationen
Mänsklig inblandning Låg: förlitar sig på AI:s kreativitet, människan avgör bara "känns det rätt" Hög: människan gör design/arkitektur, AI utför mest
Typiska scenarier Snabb prototyp, personliga verktyg, UI-utforskning, kreativ kodning Produktionssystem, teamarbete, kod som måste vara underhållbar/testbar

3. Jämförelse av arbetsflöden

Vibe Coding-flöde

  1. Vag idé: "Jag vill skriva en crawler som hämtar Zhihus hetlistor."
  2. Skriv första prompten: Be AI:n generera kod direkt.
  3. Kör → fel → klistra in felet → AI fixar.
  4. Känns gränssnittet fult → "Gör knappen rundare, ändra bakgrunden till en blå gradient" → AI ändrar.
  5. Saknar funktion → "Lägg till funktionen att spara till CSV" → AI lägger till.
  6. Upprepa steg 3-5 tills "det känns okej".

Spec Coding-flöde

  1. Skriv specifikationsdokument: Definiera input/output, datastrukturer, felhantering, prestandakrav, icke-funktionella krav (t.ex. loggning, rate limiting).
  2. Dela upp specifikationen i uppgifter: T.ex. uppgift 1: Implementera funktionen fetch_hot_topics() enligt API-signaturen i specen.
  3. Låt AI implementera uppgift för uppgift: Prompts innehåller funktionssignatur, kommentarer, förväntade testfall.
  4. Manuell granskning och validering: Säkerställ att specifikationen följs, kör enhetstester.
  5. Integration och regressionstestning.

4. För- och nackdelar

Egenskap Vibe Coding Spec Coding
Starttid Mycket snabb, prototyp på några minuter Långsam, kräver dokumentation och uppdelning
Kodkvalitet Låg (kan vara redundant, inkonsekvent, dolda buggar) Hög (läsbar, testbar, arkitekturenlig)
Underhållbarhet Dålig, senare utvecklare förstår inte "varför det är skrivet så" Bra, specifikationen är dokumentation
Beroende av LLM Mycket högt, byte av modell kan ge helt annan output Måttligt, så länge specifikationen är tydlig kan olika modeller producera liknande struktur
Felsökningssvårighet Svårt, man vet inte var logiken kommer ifrån Lätt, kontrollera punkt för punkt enligt specen
Lämplig för teamarbete Nästan omöjligt Ja (specifikationen fungerar som kommunikationskontrakt)
Förutsägbarhet Låg, resultatet kan variera varje gång Hög, samma spec ger stabil output

5. Praktiska rekommendationer

"I arbetslivet väljer man inte mellan vibe coding och spec coding, utan använder en blandning och väljer rätt metod för rätt situation:
- I utforskningsfasen (när man är osäker på teknikval eller UI-stil) använder man Vibe Coding för att snabbt testa olika alternativ, till exempel 'Skriv en kortkomponent med Tailwind för att se hur det ser ut'.
- När man väl bestämt sig för en lösning byter man omedelbart till Spec Coding: omvandla den lyckade prototypen till en tydlig specifikation (input/output, gränsvillkor, felhantering) och låt sedan AI eller en utvecklare skriva produktionsredo kod enligt specen.
Ren Vibe-läge passar bara för engångsskript eller interna verktyg; för system som ska underhållas länge och användas av många är Spec Coding ett hårt krav."

评论

暂无已展示的评论。

发表评论(匿名)