← 返回列表

AI serija intervju 14: Razlika između vibe coding i spec coding?

Ovo je problem s kojim se suočava većina programera. Vibe Coding i Spec Coding su dva potpuno različita radna paradigma kada se programira uz pomoć velikih jezičkih modela (LLM). Njihova ključna razlika je: da li je vaš 'unos' AI-ju nejasan osjećaj ili precizna specifikacija.


1. Jednostavan opis razlike između vibe coding i spec coding na primjeru kuhanja

  • Vibe Coding = Kažete prijatelju "Želim nešto ljuto", on po osjećaju isprži jelo, probate i kažete "još malo slano", on doda sol. Okus može biti odličan, ali drugi prijatelj bi ispržio potpuno drugačije.
  • Spec Coding = Napišete recept: "Pixian douban 20g, govedina u kriškama 150g, celer u komadima 50g, brzo prženje na jakoj vatri 2 minute, prije skidanja s vatre dodati 3g šećera". Različiti kuhari po receptu dobiju visoko konzistentan okus.

2. Definicije oba pristupa

Dimenzija Vibe Coding Spec Coding
Alternativni naziv Programiranje vođeno osjećajem, improvizacija pomoću prompta Programiranje vođeno specifikacijom, dokumentacija na prvom mjestu
Oblik unosa "Napravi mi lijepu login stranicu, sa tehnološkim osjećajem" "Login stranica treba sadržavati polja za email/lozinku, checkbox 'Zapamti me', dugme za potvrdu; frontend koristi React + Tailwind; pravila validacije obrasca: format emaila, dužina lozinke ≥8; pri grešci prikazati crvenu poruku..."
Način korištenja AI-ja Dijaloški, iterativno: dati opći smjer → pogledati izlaz → prilagoditi Inženjerski: prvo napisati detaljan PRD/tehničku specifikaciju → AI generira kod na osnovu specifikacije
Ljudski angažman Nizak: oslanjanje na AI za kreativnost, čovjek samo procjenjuje 'da li je osjećaj dobar' Visok: čovjek prvo završi dizajn/arhitekturu, AI uglavnom izvršava
Tipični scenariji Brzi prototipovi, lični alati, UI istraživanje, kreativno kodiranje Produkcioni sistemi, timski rad, potreba za održivim/testabilnim kodom

3. Poređenje radnih tokova

Vibe Coding tok

  1. Nejasna ideja: "Želim napisati crawler za preuzimanje trending tema sa Zhihu."
  2. Napisati prvi prompt: direktno tražiti AI da generira kod.
  3. Pokrenuti → greška → zalijepiti grešku nazad → AI ispravlja.
  4. Osjećaj da je interfejs ružan → "Zaokruži to dugme, promijeni pozadinu u plavi gradijent" → AI mijenja.
  5. Funkcionalnost nedostaje → "Dodaj mogućnost čuvanja u CSV" → AI dodaje.
  6. Ponavljati korake 3-5 dok ne bude "osjećaj da je dovoljno dobro".

Spec Coding tok

  1. Napisati specifikacioni dokument: jasno definisati ulaz/izlaz, strukture podataka, obradu grešaka, zahtjeve performansi, nefunkcionalne zahtjeve (npr. logovanje, ograničenje brzine).
  2. Podijeliti specifikaciju na zadatke: npr. Zadatak 1: implementirati funkciju fetch_hot_topics() prema API potpisu iz specifikacije.
  3. Pustiti AI da realizuje svaki zadatak: prompt uključuje potpis funkcije, komentare, očekivane test slučajeve.
  4. Ljudska provjera i validacija: osigurati usklađenost sa specifikacijom, pokrenuti jedinične testove.
  5. Integracija i regresija.

4. Poređenje prednosti i mana

Karakteristika Vibe Coding Spec Coding
Brzina početka Vrlo brzo, prototip za nekoliko minuta Sporo, potrebno pisati dokumentaciju, razbijati zadatke
Kvaliteta koda Niska (moguće redundantan, nedosljedan, skriveni bugovi) Visoka (čitljiv, testabilan, u skladu s arhitekturom)
Održivost Loša, novi programeri ne razumiju "zašto je ovako napisano" Dobra, specifikacija je dokumentacija
Zavisnost od LLM Vrlo visoka, promjena modela može potpuno promijeniti izlaz Srednja, ako je specifikacija jasna, različiti modeli mogu proizvesti sličnu strukturu
Težina debugovanja Teško, ne zna se odakle logika koda Lako, provjeriti stavku po stavku prema specifikaciji
Pogodnost za timski rad Gotovo nemoguće Moguće (specifikacija kao komunikacijski ugovor)
Determinizam izlaza Nizak, rezultati dijaloga mogu varirati Visok, ista specifikacija daje stabilan izlaz

5. Praktične preporuke za korištenje

Na poslu, vibe coding i spec coding se ne biraju isključivo, već se kombinovano koriste, primjenjujući odgovarajući pristup u odgovarajućoj situaciji:
- U fazi istraživanja (kada niste sigurni u tehnološki izbor ili UI stil), koristite Vibe Coding za brzu provjeru različitih opcija, npr. "napiši karticu komponentu pomoću Tailwinda da vidim kako izgleda".
- Čim se opcija odredi, odmah prebacite na Spec Coding: obrnuto organizujte uspješni prototip u jasnu specifikaciju (ulaz/izlaz, granični uslovi, obrada grešaka), a zatim pustite AI ili čovjeka da striktno po specifikaciji napiše produkcijski kod.
Čisti Vibe način je prikladan samo za jednokratne skripte ili interne alate; za sisteme koji zahtijevaju dugoročno održavanje i više korisnika, Spec Coding je obavezan.

评论

暂无已展示的评论。

发表评论(匿名)