← 返回列表

AI serijos interviu 14: Skirtumas tarp vibe kodavimo ir spec kodavimo?

Tai problema, su kuria susiduria dauguma programuotojų. Vibe Coding ir Spec Coding yra dvi skirtingos darbo paradigmos, naudojant didelius kalbos modelius (LLM) programavimui. Pagrindinis skirtumas: ar AI „įvestis“ yra migloti jausmai, ar tikslūs reikalavimai.


1. Paprastas pavyzdys su maisto gaminimu, paaiškinantis skirtumą tarp vibe kodavimo ir spec kodavimo

  • Vibe Coding = Sakai draugui „Noriu kažko aštraus“, jis pagal jausmą išverda patiekalą, tu paragauji ir sakai „Dar sūriau“, jis įdeda druskos. Skonis gali būti nuostabus, bet kitas draugas gamintų visiškai kitaip.
  • Spec Coding = Parašai receptą: „Pixian fermentuota pupelių pasta 20g, jautienos griežinėliai 150g, saliero stiebų gabaliukai 50g, greitas kepimas ant stiprios ugnies 2 min., prieš išjungiant įberti 3g cukraus“. Skirtingi virėjai pagal šį receptą pagamins vienodą patiekalą.

2. Abiejų sąvokų apibrėžimai

Dimensija Vibe Coding Spec Coding
Alternatyvūs pavadinimai Jausmu varomas programavimas, prompt improvizacija Specifikacija varomas programavimas, dokumentacija pirmiausia
Įvesties forma „Sukurk gražų prisijungimo puslapį, mokslišką“ „Prisijungimo puslapis turi turėti el. pašto / slaptažodžio laukus, prisiminti mane žymimąjį langelį, pateikimo mygtuką; front-end naudoja React + Tailwind; formos tikrinimas: el. pašto formatas, slaptažodžio ilgis ≥8; klaidos rodomos raudonai…“
AI naudojimo būdas Dialoginis, iteracinis: duoti bendrą kryptį → žiūrėti rezultatą → koreguoti Inžinerinis: pirmiausia parašyti detalų PRD / techninę specifikaciją → AI generuoja kodą pagal specifikaciją
Žmogaus dalyvavimas Žemas: pasitikima AI kūrybiškumu, žmogus tik „ar jaučiasi teisingai“ Aukštas: žmogus pirmiausia sukuria dizainą / architektūrą, AI daugiausia vykdo
Tipiniai atvejai Greiti prototipai, asmeniniai įrankiai, UI tyrinėjimai, kūrybinis kodavimas Gamybinės sistemos, komandinis darbas, reikalingas prižiūrimas / testuojamas kodas

3. Darbo eigos palyginimas

Vibe Coding procesas

  1. Migloti idėja: „Noriu parašyti scrap‘erį, kuris gautų Zhihu karščiausius klausimus.“
  2. Rašomi pirmieji prompt'ai: tiesiogiai paprašoma AI sugeneruoti kodą.
  3. Paleidimas → klaida → klaidos pranešimas grąžinamas → AI taiso.
  4. Sąsaja atrodo negražiai → „Padaryk tą mygtuką apvalesnį, foną mėlyną gradientą“ → AI keičia.
  5. Trūksta funkcijų → „Pridėk galimybę išsaugoti į CSV“ → AI prideda.
  6. Kartoti 3-5 žingsnius, kol „jaučiasi, kad beveik gerai“.

Spec Coding procesas

  1. Specifikacijos rašymas: aiškiai apibrėžti įvestis / išvestis, duomenų struktūras, klaidų valdymą, našumo reikalavimus, nefunkcinius reikalavimus (pvz., žurnalavimas, srauto ribojimas).
  2. Specifikacijos padalijimas į užduotis: pvz., 1 užduotis: įgyvendinti funkciją fetch_hot_topics() pagal specifikacijos API parašą.
  3. Kiekvieną užduotį vykdo AI: prompt'e pateikiami funkcijos parašas, komentarai, testų atvejų lūkesčiai.
  4. Žmogaus peržiūra ir patvirtinimas: įsitikinti, kad atitinka specifikaciją, paleisti vienetų testus.
  5. Integracija ir regresija.

4. Privalumų ir trūkumų palyginimas

Savybė Vibe Coding Spec Coding
Įsisavinimo greitis Labai greitai, per kelias minutes sukurtas prototipas Lėtai, reikia rašyti dokumentaciją, skaidyti užduotis
Kodo kokybė Žema (gali būti perteklinis, nenuoseklus, paslėptų klaidų) Aukšta (įskaitomas, testuojamas, atitinka architektūrą)
Priežiūra Bloga, vėliau sunku suprasti, „kodėl parašyta būtent taip“ Gera, specifikacija tampa dokumentacija
Priklausomybė nuo LLM Labai didelė, pakeitus modelį rezultatai gali būti visiškai kitokie Vidutinė, jei specifikacija aiški, skirtingi modeliai pateikia panašią struktūrą
Derinimo sudėtingumas Sunkus, nežinia, iš kur atsiranda kodas Lengvas, galima patikrinti pagal specifikacijos punktus
Tinkamumas komandiniam darbui Beveik neįmanoma Galima (specifikacija tampa komunikacijos sutartimi)
Rezultatų nuspėjamumas Žemas, kiekvienas pokalbis gali nukrypti Aukštas, ta pati specifikacija duoda stabilų rezultatą

5. Praktiniai patarimai

„Darbe vibe kodavimas ir spec kodavimas nėra vienas prieš kitą – jie naudojami kartu, tinkamoje situacijoje pasirenkant tinkamą metodą:
- Tyrinėjimo etape (kai nežinai technologijos ar UI stiliaus), naudok Vibe Coding greitai išbandyti skirtingus variantus, pvz., „parašyk kortelės komponentą su Tailwind, pažiūrėkime kaip atrodo“.
- Kai tik apsisprendi dėl varianto, nedelsiant pereik prie Spec Coding: sėkmingą prototipą apversk į aiškią specifikaciją (įvestys / išvestys, ribinės sąlygos, klaidų valdymas) ir leisk AI ar žmogui pagal specifikaciją perrašyti gamybinį kodą.
Grynas vibe režimas tinka tik vienkartiniams scenarijams ar vidiniams įrankiams; sistemoms, kurias reikia ilgai prižiūrėti ir naudoti keliems žmonėms, spec kodavimas yra būtinas reikalavimas.“

评论

暂无已展示的评论。

发表评论(匿名)