← 返回列表

AI serija intervjujev 14: Razlika med vibe kodiranjem in spec kodiranjem?

To je vprašanje, s katerim se sooča večina programerjev. Vibe Coding in Spec Coding sta dve popolnoma različni delovni paradigmi pri programiranju s pomočjo velikih jezikovnih modelov (LLM). Njuna osrednja razlika je: Ali je 'vhod', ki ga daš AI, nejasen občutek ali natančna specifikacija.


1. Preprost opis razlike med vibe in spec kodiranjem na primeru kuhanja

  • Vibe Coding = Prijatelju rečeš "Hočem nekaj pikantnega", prijatelj po občutku skuha jed, ti poskusiš in rečeš "malo bolj slano", on doda sol. Okus je lahko presenetljiv, če pa drug prijatelj kuha, je rezultat popolnoma drugačen.
  • Spec Coding = Napišeš recept: "20 g piksian fižolove omake, 150 g govejih rezin, 50 g zelene, praži na močnem ognju 2 minuti, preden odstavite dodaj 3 g sladkorja." Različni kuharji po receptu skuhajo jedi z zelo podobnim okusom.

2. Definiciji obeh

Vidik Vibe Coding Spec Coding
Druga imena Občutkovno vodeno programiranje, improvizacija pozivov Specifikacijsko vodeno programiranje, dokumentacija na prvem mestu
Oblika vnosa "Naredi lepo prijavno stran, ki naj ima tehnološki občutek" "Prijavna stran mora vsebovati polje za e-pošto/geslo, potrditveno polje Zapomni si me, gumb za oddajo; sprednji del uporablja React + Tailwind; pravila preverjanja obrazca: oblika e-pošte, dolžina gesla ≥8; ob neuspehu prikaži rdeče sporočilo..."
Način uporabe AI Pogovorno, iterativno: podaj približno smer → poglej izhod → nato prilagodi Inženirsko: najprej napiši podroben PRD/tehnično specifikacijo → AI generira kodo na podlagi specifikacije
Človeška vpletenost Nizka: odvisno od AI, človek le preverja "občutek" Visoka: človek najprej naredi načrt/arhitekturo, AI večinoma izvaja
Tipični scenariji Hitri prototipi, osebna orodja, raziskovanje UI, kreativno kodiranje Produkcijski sistemi, timsko sodelovanje, koda, ki zahteva vzdrževanje/testiranje

3. Primerjava delovnih tokov

Potek Vibe Coding

  1. Nejasna ideja: "Rad bi napisal pajka, ki zajame vročo lestvico Zhihu."
  2. Napiši prvi poziv: kar pusti AI, da generira kodo.
  3. Zaženi → napaka → prilepi napako nazaj → AI popravi.
  4. Občutek, da je vmesnik grd → "Naredi tisti gumb bolj okrogel, ozadje spremeni v modro prelivanje" → AI spremeni.
  5. Manjka funkcionalnost → "Dodaj funkcijo za shranjevanje v CSV" → AI doda.
  6. Ponovite korake 3–5, dokler "občutek ni pravi".

Potek Spec Coding

  1. Napiši specifikacijski dokument: določi vhode/izhode, podatkovne strukture, obravnavo napak, zahteve glede zmogljivosti, nefunkcijske zahteve (npr. beleženje, omejevanje hitrosti).
  2. Razdeli specifikacijo na naloge: npr. naloga 1: implementiraj funkcijo fetch_hot_topics(), ki upošteva API podpis iz specifikacije.
  3. Pusti AI, da implementira vsako nalogo po vrsti: poziv vsebuje podpis funkcije, komentarje, pričakovane testne primere.
  4. Človeški pregled in potrditev: zagotovi, da ustreza specifikaciji, zaženi enotske teste.
  5. Integracija in regresijsko testiranje.

4. Primerjava prednosti in slabosti

Značilnost Vibe Coding Spec Coding
Hitrost začetka Zelo hitro, prototip v minutah Počasno, potrebno pisanje dokumentacije in razdelitev nalog
Kakovost kode Nizka (lahko odveč, nekonsistentna, skrite napake) Visoka (berljiva, testabilna, skladna z arhitekturo)
Vzdržljivost Slaba, kasnejši ne razumejo "zakaj je tako napisano" Dobra, specifikacija je dokumentacija
Odvisnost od LLM Zelo visoka, zamenjava modela lahko povzroči popolnoma drugačen izhod Srednja, če je specifikacija jasna, različni modeli lahko dajo podobno strukturo
Težavnost razhroščevanja Težko, ne veš od kod logika Lahko, preveri po specifikaciji postavko za postavko
Primernost za timsko sodelovanje Skoraj nemogoče Da (specifikacija je komunikacijska pogodba)
Določljivost rezultata Nizka, vsak pogovor lahko daje drugačne rezultate Visoka, ista specifikacija daje stabilen izhod

5. Praktični nasveti za uporabo

Pri delu vibe kodiranje in spec kodiranje nista izbiri 'ali-ali', ampak se mešano uporabljata – v ustreznih situacijah uporabimo ustrezen pristop:
- V fazi raziskovanja (ko nisi prepričan o tehnološki izbiri ali slogu UI) uporabi Vibe Coding za hitro preverjanje različnih možnosti, npr. 'napiši s Tailwindom komponento kartice, da vidim, kako izgleda'.
- Ko je rešitev določena, takoj preklopi na Spec Coding: uspešen prototip pretvori v jasno specifikacijo (vhodi/izhodi, robni pogoji, obravnava napak), nato pusti AI ali človeku, da strogo po specifikaciji napiše produkcijsko kodo.
Čisti Vibe način je primeren le za enkratne skripte ali interna orodja; za sisteme, ki jih je treba dolgoročno vzdrževati in v katerih sodeluje več ljudi, je Spec Coding nuja.

评论

暂无已展示的评论。

发表评论(匿名)