← 返回列表

AI-serie intervju 14: Forskjellen mellom vibe coding og spec coding?

Dette er et problem de fleste programmerere står overfor. Vibe Coding og Spec Coding er to helt forskjellige arbeidsmønstre når man programmerer ved hjelp av store språkmodeller (LLM). Hovedforskjellen er: gir du AI-en en vag følelse, eller en presis spesifikasjon.


1. Forklare forskjellen mellom vibe coding og spec coding med matlaging som eksempel

  • Vibe Coding = Du sier til en venn «jeg har lyst på noe sterkt», vennen lager en rett på slump, du smaker og sier «litt mer salt», og han tilsetter salt. Smaken kan være overraskende god, men en annen venn ville laget noe helt annet.
  • Spec Coding = Du skriver en oppskrift: «20 g Pixian doubanjiang, 150 g biffskiver, 50 g selleristilker, wok på høy varme i 2 minutter, tilsett 3 g sukker før servering». Ulike kokker som følger oppskriften, får svært lik smak.

2. Definisjoner

Dimensjon Vibe Coding Spec Coding
Alias Følelsesdrevet programmering, improvisert prompting Spesifikasjonsdrevet programmering, dokumentasjon først
Inputform «Lag en fin innloggingsside med tech-følelse» «Innloggingssiden skal inneholde e-post/passord-felt, husk meg-avkrysningsboks, send-knapp; frontend bruker React + Tailwind; skjemavalideringsregler: e-postformat, passordlengde ≥ 8; feilmelding i rødt ved feil …»
AI-bruk Dialogbasert, iterativ: gi grov retning → se output → juster Ingeniørmessig: skriv detaljert PRD/teknisk spesifikasjon → AI genererer kode basert på spesifikasjonen
Menneskelig deltakelse Lav: stoler på AI for kreativitet, mennesket sjekker bare «føles det riktig» Høy: mennesket gjør design/arkitektur, AI utfører hovedsakelig
Typisk scenario Rask prototyping, personlige verktøy, UI-utforskning, kreativ koding Produksjonssystemer, teamarbeid, kode som må være vedlikeholdbar/testbar

3. Sammenligning av arbeidsflyt

Vibe Coding-flyt

  1. Vak ide: «Jeg vil lage en webscraper for Zhihu Trending.»
  2. Skriv første prompt: Få AI til å generere kode direkte.
  3. Kjør → feil → lim inn feilmelding → AI fikser.
  4. Synes grensesnittet er stygt → «Gjør knappen rundere, bakgrunn til gradientblå» → AI endrer.
  5. Mangler funksjon → «Legg til funksjon for å lagre til CSV» → AI legger til.
  6. Gjenta 3-5 til «føles bra nok».

Spec Coding-flyt

  1. Skriv spesifikasjonsdokument: Definer input/output, datastrukturer, feilhåndtering, ytelseskrav, ikke-funksjonelle krav (som logging, throttling).
  2. Del spesifikasjonen i oppgaver: F.eks. oppgave 1: Implementer fetch_hot_topics()-funksjonen, følg API-signaturen i spec.
  3. La AI implementere oppgave for oppgave: Prompt inneholder funksjonssignatur, kommentarer, forventede testresultater.
  4. Menneskelig gjennomgang og validering: Samsvar med spesifikasjon, kjør enhetstester.
  5. Integrasjon og regresjon.

4. Fordeler og ulemper

Egenskap Vibe Coding Spec Coding
Hastighet for å komme i gang Veldig rask, prototype på få minutter Treig, må skrive dokumentasjon og dele opp oppgaver
Kodekvalitet Lav (kan være overflødig, inkonsistent, skjulte feil) Høy (lesbar, testbar, følger arkitektur)
Vedlikeholdbarhet Dårlig, senere utviklere forstår ikke «hvorfor det er skrevet slik» Bra, spesifikasjonen fungerer som dokumentasjon
Avhengighet av LLM Svært høy, bytte modell kan gi helt annen output Moderat, så lenge spesifikasjonen er tydelig, kan ulike modeller produsere lignende struktur
Feilsøkingsvansker Vanskelig, vet ikke hvor logikken kommer fra Enkelt, sjekk punkt for punkt mot spec
Egnet for teamarbeid Nesten umulig Mulig (spec som kommunikasjonskontrakt)
Forutsigbarhet i output Lav, resultatet kan variere fra samtale til samtale Høy, samme spec gir stabil output

5. Praktiske råd

«I arbeidslivet vil man ikke velge mellom vibe coding og spec coding, men blande dem, og bruke riktig tilnærming for riktig situasjon:
- I utforskningsfasen (når teknologivalg eller UI-stil er usikker), bruk Vibe Coding for raskt å validere ulike alternativer, for eksempel «skriv en kortkomponent med Tailwind for å se hvordan den ser ut».
- Når løsningen er bestemt, bytt umiddelbart til Spec Coding: reversér den vellykkede prototypen til en klar spesifikasjon (input/output, grenseforhold, feilhåndtering), og la deretter AI eller mennesker skrive produksjonskode strengt etter spec.
Ren Vibe-modus egner seg kun for engangsskript eller interne småverktøy; for systemer som skal vedlikeholdes lenge og brukes av mange, er Spec Coding et hardt krav.»

评论

暂无已展示的评论。

发表评论(匿名)