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
- Vak ide: «Jeg vil lage en webscraper for Zhihu Trending.»
- Skriv første prompt: Få AI til å generere kode direkte.
- Kjør → feil → lim inn feilmelding → AI fikser.
- Synes grensesnittet er stygt → «Gjør knappen rundere, bakgrunn til gradientblå» → AI endrer.
- Mangler funksjon → «Legg til funksjon for å lagre til CSV» → AI legger til.
- Gjenta 3-5 til «føles bra nok».
Spec Coding-flyt
- Skriv spesifikasjonsdokument: Definer input/output, datastrukturer, feilhåndtering, ytelseskrav, ikke-funksjonelle krav (som logging, throttling).
- Del spesifikasjonen i oppgaver: F.eks. oppgave 1: Implementer
fetch_hot_topics()-funksjonen, følg API-signaturen i spec. - La AI implementere oppgave for oppgave: Prompt inneholder funksjonssignatur, kommentarer, forventede testresultater.
- Menneskelig gjennomgang og validering: Samsvar med spesifikasjon, kjør enhetstester.
- 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.»
评论
暂无已展示的评论。
发表评论(匿名)