← 返回列表

AI-seeria intervjuu 14: vibe coding ja spec coding erinevus?

See on probleem, millega enamik programmeerijaid silmitsi seisab. Vibe Coding ja Spec Coding on kaks erinevat tööparadigmat, mida praegu kasutatakse suurte keelemudelite (LLM) abil programmeerimisel. Nende põhiline erinevus seisneb selles: kas AI-le antud "sisend" on udune tunne või täpne spetsifikatsioon.


1. Lihtne näide toiduvalmistamisega, et kirjeldada vibe coding ja spec coding erinevust

  • Vibe Coding = Sa ütled sõbrale "Ma tahan vürtsikat", sõber teeb tunde järgi roa, sa proovid ja ütled "Natuke soolasem", ta lisab soola. Maitse võib olla vapustav, aga teine sõber teeb täiesti erineva.
  • Spec Coding = Sa kirjutad retsepti: "Pixiani Doubanjiang 20g, veiseliha viilud 150g, sellerivarred 50g, kõrgel kuumusel praadida 2 minutit, enne serveerimist lisada 3g suhkrut". Erinevad kokad järgivad retsepti ja tulemus on väga ühtlane.

2. Mõlema definitsioon

Dimensioon Vibe Coding Spec Coding
Teine nimi Tundepõhine programmeerimine, prompt-improvisatsioon Spetsifikatsioonipõhine programmeerimine, dokumentatsioon ees
Sisendivorm "Tee mulle ilus sisselogimisleht, mis näeb välja tehnoloogiline" "Sisselogimisleht peab sisaldama e-posti/parooli sisestusvälju, 'Jäta mind meelde' märkeruutu, esitamisnuppu; frontend kasutab React + Tailwind; vormi valideerimisreeglid: e-posti formaat, parooli pikkus ≥8; ebaõnnestumisel punane teade..."
AI kasutamisviis Dialoogipõhine, iteratiivne: anna ligikaudne suund → vaata väljundit → kohanda Inseneritöö: kirjuta kõigepealt üksikasjalik PRD/tehniline spetsifikatsioon → AI genereerib spetsifikatsiooni põhjal koodi
Inimese osalus Madal: sõltub AI loovusest, inimene ainult hindab "kas tunne on õige" Kõrge: inimene teeb esmalt disaini/arhitektuuri, AI peamiselt täidab
Tüüpilised stsenaariumid Kiire prototüüpimine, isiklikud tööriistad, UI uurimine, loov kood Tootmissüsteemid, meeskonnatöö, vajab hooldatavat/testitavat koodi

3. Töövoo võrdlus

Vibe Coding protsess

  1. Hägune idee: "Ma tahan kirjutada robotit, et haarata Zhihu trende."
  2. Kirjuta esimene prompt: lase AI-l otse kood genereerida.
  3. Käivita → viga → kleebi viga tagasi → AI parandab.
  4. Tunne, et liides on kole → "Tee see nupp veidi ümaramaks, taustaks gradient sinine" → AI muudab.
  5. Funktsioon puudub → "Lisa veel salvestamise funktsioon CSV-sse" → AI lisab.
  6. Korra sammud 3-5, kuni "tunne on piisavalt hea".

Spec Coding protsess

  1. Kirjuta spetsifikatsiooni dokument: defineeri sisend/väljund, andmestruktuurid, veakäsitlus, jõudlusnõuded, mittefunktsionaalsed nõuded (nt logimine, piiramine).
  2. Jaga spetsifikatsioon ülesanneteks: nt ülesanne 1: implementeeri fetch_hot_topics() funktsioon, järgides spetsifikatsioonis olevat API allkirja.
  3. Lase AI-l iga ülesanne eraldi täita: prompt sisaldab funktsiooni allkirja, kommentaare, testjuhtumite ootusi.
  4. Inimese poolt ülevaatus ja kontroll: veendu, et vastab spetsifikatsioonile, käivita ühiktests.
  5. Integratsioon ja regressioon.

4. Plussid ja miinused

Omadus Vibe Coding Spec Coding
Alustamise kiirus Väga kiire, mõne minutiga prototüüp Aeglane, vaja kirjutada dokumenti, jagada ülesandeid
Koodi kvaliteet Madal (võib olla liiast, ebajärjekindel, peidetud vead) Kõrge (loetav, testitav, vastab arhitektuurile)
Hooldatavus Kehv, hilisemad arendajad ei saa aru "miks nii kirjutati" Hea, spetsifikatsioon on dokumentatsioon
Sõltuvus LLM-ist Väga kõrge, mudeli vahetamine võib anda täiesti erineva väljundi Keskmine, kui spetsifikatsioon on selge, erinevad mudelid annavad sarnase struktuuri
Silumise raskus Raske, ei tea, kust koodi loogika tuleb Lihtne, kontrolli spetsifikatsiooni punkt haaval
Sobivus meeskonnatööks Peaaegu võimatu Võimalik (spetsifikatsioon on suhtluse leping)
Väljundi kindlus Madal, iga dialoogi tulemus võib triivida Kõrge, sama spetsifikatsioon annab stabiilse väljundi

5. Praktilised soovitused kasutamiseks

"Tööl valitakse vibe coding ja spec coding vahel mitte ühte või teist, vaid neid kasutatakse segamini, valides sobiva lahenduse vastavalt olukorrale:
- Uurimisetapis (kui pole kindel tehnoloogiavalik või UI stiil), kasuta Vibe Codingit, et kiiresti erinevaid lahendusi testida, näiteks 'tee Tailwindiga kaardikomponent, et näha, kuidas välja näeb'.
- Kui lahendus on kindel, mine kohe üle Spec Codingile: pane edukas prototüüp tagurpidi kokku selgeks spetsifikatsiooniks (sisend/väljund, piirtingimused, veakäsitlus) ja lase siis AI-l või inimesel rangelt spetsifikatsiooni järgi tootmiskood kirjutada.
Puhas Vibe režiim sobib ainult ühekordseteks skriptideks või sisemisteks tööriistadeks; pikaajalise hoolduse ja mitme kasutaja süsteemide jaoks on Spec Coding kohustuslik."

评论

暂无已展示的评论。

发表评论(匿名)