← 返回列表

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

Ovo je problem sa kojim se suočava većina programera. Vibe Coding i Spec Coding su dve potpuno različite radne paradigme u programiranju uz pomoć velikih jezičkih modela (LLM). Njihova ključna razlika leži u: da li je „ulaz“ koji dajete AI nejasna senzacija ili precizna specifikacija.


1. Jednostavan primer sa kuvanjem

  • Vibe Coding = Kažete prijatelju „Hoću nešto ljuto“, on po osećaju spremi jelo, probate i kažete „Još malo soli“, on doda. Može biti odlično, ali ako drugi prijatelj sprema, biće potpuno drugačije.
  • Spec Coding = Napišete recept: „Pasta od pasulja 20g, goveđe meso 150g, celer 50g, brzo pržiti 2 minuta, pre serviranja dodati 3g šećera“. Različiti kuvari po receptu prave isto jelo.

2. Definicije

Domena Vibe Coding Spec Coding
Alternativni naziv Osećajno vođeno programiranje, improvizacija sa promptovima Specifikacijom vođeno programiranje, dokumentacija prva
Oblik unosa „Napravi mi lepu stranicu za prijavu, sa tehnološkim izgledom“ „Stranica za prijavu treba da sadrži polje za email/lozinku, checkbox za zapamti me, dugme za potvrdu; frontend koristi React + Tailwind; pravila validacije: format emaila, dužina lozinke ≥8; pri grešci prikazati crvenu poruku…“
Način korišćenja AI Dijaloški, iterativni: dati okvirni smer → videti izlaz → prilagoditi Inženjerski: prvo napisati detaljnu PRD/tehničku specifikaciju → AI generiše kod na osnovu specifikacije
Učešće čoveka Nisko: oslanja se na AI da bude kreativan, čovek samo procenjuje „da li je u redu“ Visoko: čovek prvo završi dizajn/arhitekturu, AI uglavnom izvršava
Tipični scenariji Brzi prototipovi, lični alati, UI istraživanje, kreativno kodiranje Sistemi za produkciju, timski rad, kod koji treba da bude održiv i testabilan

3. Poređenje tokova rada

Proces Vibe Coding

  1. Nejasna ideja: „Želim da napišem skrejper, da povučem popularne teme sa Zhihu.“
  2. Napisati prvi prompt: direktno tražiti AI da generiše kod.
  3. Pokrenuti → greška → zalepiti grešku nazad → AI menja.
  4. Osećaj da je interfejs ružan: „Učini to dugme malo zaobljenijim, pozadinu promeni u gradijent plave“ → AI menja.
  5. Nedostaje funkcija: „Dodaj funkciju za čuvanje u CSV“ → AI dodaje.
  6. Ponavljati korake 3-5 dok se ne oseti da je „dovoljno dobro“.

Proces Spec Coding

  1. Napisati dokument specifikacije: definisati ulaz/izlaz, strukture podataka, obradu grešaka, zahteve performansi, nefunkcionalne zahteve (npr. logovanje, ograničenje protoka).
  2. Podeliti specifikaciju na zadatke: npr. Zadatak 1: implementirati funkciju fetch_hot_topics(), koja se pridržava API potpisa iz specifikacije.
  3. Za svaki zadatak tražiti AI da implementira: prompt uključuje potpis funkcije, komentare, očekivane test primere.
  4. Ručni pregled i validacija: osigurati usklađenost sa specifikacijom, pokrenuti jedinične testove.
  5. Integracija i regresiono testiranje.

4. Poređenje prednosti i mana

Karakteristika Vibe Coding Spec Coding
Brzina početka Veoma brzo, prototip za nekoliko minuta Sporo, potrebno je pisati dokumentaciju, razbijati zadatke
Kvalitet koda Nizak (može biti redundantan, nekonzistentan, skrivene greške) Visok (čitljiv, testabilan, u skladu sa arhitekturom)
Održivost Loša, kasniji čitaoci ne razumeju „zašto je napisano ovako“ Dobra, specifikacija je dokumentacija
Zavisnost od LLM Veoma visoka, promena modela može potpuno promeniti izlaz Srednja, sve dok je specifikacija jasna, različiti modeli mogu proizvesti sličnu strukturu
Težina otklanjanja grešaka Teška, ne zna se odakle logika koda Laka, provera stavku po stavku prema specifikaciji
Pogodnost za timski rad Skoro nemoguća Moguća (specifikacija kao ugovor za komunikaciju)
Determinisanost izlaza Niska, svaki dijalog može odlutati Visoka, ista specifikacija daje stabilan izlaz

5. Praktični saveti za korišćenje

„U radu, vibe coding i spec coding se ne biraju kao 'jedno ili drugo', već se kombinuju, koristeć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 da brzo testirate različite opcije, na primer 'napiši karticu komponentu sa Tailwind-om da vidim kako izgleda'.
- Kada se opcija odabere, odmah pređite na Spec Coding: preokrenite uspešni prototip u jasnu specifikaciju (ulaz/izlaz, granični uslovi, obrada grešaka), a zatim neka AI ili čovek striktno prema specifikaciji napišu produkcijski kod.
Čisti Vibe mod je pogodan samo za jednokratne skripte ili interne alate; za sisteme koji se dugo održavaju i koje koristi više ljudi, Spec Coding je obavezan.“

评论

暂无已展示的评论。

发表评论(匿名)