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
- Nejasna ideja: "Rad bi napisal pajka, ki zajame vročo lestvico Zhihu."
- Napiši prvi poziv: kar pusti AI, da generira kodo.
- Zaženi → napaka → prilepi napako nazaj → AI popravi.
- Občutek, da je vmesnik grd → "Naredi tisti gumb bolj okrogel, ozadje spremeni v modro prelivanje" → AI spremeni.
- Manjka funkcionalnost → "Dodaj funkcijo za shranjevanje v CSV" → AI doda.
- Ponovite korake 3–5, dokler "občutek ni pravi".
Potek Spec Coding
- Napiši specifikacijski dokument: določi vhode/izhode, podatkovne strukture, obravnavo napak, zahteve glede zmogljivosti, nefunkcijske zahteve (npr. beleženje, omejevanje hitrosti).
- Razdeli specifikacijo na naloge: npr. naloga 1: implementiraj funkcijo
fetch_hot_topics(), ki upošteva API podpis iz specifikacije. - Pusti AI, da implementira vsako nalogo po vrsti: poziv vsebuje podpis funkcije, komentarje, pričakovane testne primere.
- Človeški pregled in potrditev: zagotovi, da ustreza specifikaciji, zaženi enotske teste.
- 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.
评论
暂无已展示的评论。
发表评论(匿名)