AI sērijas intervija 14: Vai ir atšķirība starp vibe kodēšanu un spec kodēšanu?
Šī ir problēma, ar ko saskaras lielākā daļa programmētāju. Vibe Coding un Spec Coding ir divas pilnīgi atšķirīgas darba paradigmas, programmējot ar lielo valodu modeļu (LLM) palīdzību. To galvenā atšķirība ir: vai jūsu “ievade” AI ir neskaidra sajūta vai precīza specifikācija.
I. Izmantojot ēdiena gatavošanu kā piemēru, lai vienkārši aprakstītu atšķirības starp vibe kodēšanu un spec kodēšanu
- Vibe Coding = Jūs sakāt draugam “Es gribu ēst pikantu”, draugs pēc sajūtas uzcep trauku, jūs nogaršojat un sakāt “Vēl sāļāk”, viņš pievieno sāli. Garša var būt pārsteidzoša, bet, ja cits draugs cep, rezultāts ir pilnīgi atšķirīgs.
- Spec Coding = Jūs uzrakstāt recepti: “Pixian pupiņu pasta 20g, liellopa gaļas šķēles 150g, seleriju gabaliņi 50g, lielā ugunī ātri cept 2 minūtes, pirms noņemšanas pievienot cukuru 3g”. Dažādi pavāri, kas ievēro recepti, iegūst ļoti līdzīgu garšu.
II. Abu definīcijas
| Dimensija | Vibe Coding | Spec Coding |
|---|---|---|
| Alternatīvie nosaukumi | Sajūtu vadīta programmēšana, uzvedņu improvizācija | Specifikāciju vadīta programmēšana, dokumentācija vispirms |
| Ievades forma | “Palīdzi man izveidot skaistu pieteikšanās lapu, lai tai ir tehnoloģiska sajūta” | “Pieteikšanās lapai jāietver e-pasta/paroles ievades lauki, atcerēties mani izvēles rūtiņa, iesniegšanas poga; priekšgals izmanto React + Tailwind; formas validācijas noteikumi: e-pasta formāts, paroles garums ≥8; kļūmes gadījumā attēlot sarkanu paziņojumu…” |
| AI izmantošanas veids | Dialoga, iteratīvs: dot aptuvenu virzienu → skatīt izvadi → vēlreiz pielāgot | Inženierijas veids: vispirms uzrakstīt detalizētu PRD/tehnisko specifikāciju → AI ģenerē kodu, pamatojoties uz specifikāciju |
| Cilvēka iesaiste | Zema: paļaujas uz AI radošumu, cilvēks tikai atbild par “sajūtu” | Augsta: cilvēks vispirms veic dizainu/arhitektūru, AI galvenokārt izpilda |
| Tipiski scenāriji | Ātru prototipu veidošana, personīgie rīki, UI izpēte, radoša kodēšana | Ražošanas līmeņa sistēmas, komandas darbs, kods, kam nepieciešama uzturējamība/testējamība |
III. Abu darbplūsmu salīdzinājums
Vibe Coding process
- Neskaidra ideja: “Es gribu uzrakstīt tīmekļa skrāpi, lai iegūtu Zhihu karstos sarakstus.”
- Uzrakstīt pirmo uzvedni: tieši likt AI ģenerēt kodu.
- Palaist → kļūda → ielīmēt kļūdu atpakaļ → AI labo.
- Sajūta, ka interfeiss ir neglīts → “Padari to pogu apaļāku, fonu maini uz gradientu zilu” → AI maina.
- Trūkst funkcijas → “Pievieno iespēju saglabāt CSV” → AI pievieno.
- Atkārtot 3-5, līdz “sajūta, ka pietiekami”.
Spec Coding process
- Uzrakstīt specifikācijas dokumentu: precizēt ievadi/izvadi, datu struktūras, kļūdu apstrādi, veiktspējas prasības, nefunkcionālās prasības (piemēram, žurnāli, ierobežojumi).
- Sadalīt specifikāciju uzdevumos: piemēram, 1. uzdevums: realizēt funkciju
fetch_hot_topics(), ievērojot spec API parakstu. - Katram uzdevumam likt AI realizēt: uzvednē iekļaut funkcijas parakstu, komentārus, testa gadījumu prognozes.
- Cilvēka pārskats un validācija: pārliecināties, ka atbilst specifikācijai, palaist vienības testus.
- Integrācija un regresija.
IV. Priekšrocību un trūkumu salīdzinājums
| Īpašība | Vibe Coding | Spec Coding |
|---|---|---|
| Uzsākšanas ātrums | Ļoti ātrs, prototips dažu minūšu laikā | Lēns, nepieciešams rakstīt dokumentāciju, sadalīt uzdevumus |
| Koda kvalitāte | Zema (var būt lieks, nekonsekvents, slēptas kļūdas) | Augsta (lasāms, testējams, atbilst arhitektūrai) |
| Uzturējamība | Slikta, citi nesaprot “kāpēc tas ir uzrakstīts šādi” | Laba, specifikācija ir dokumentācija |
| Atkarība no LLM | Ļoti augsta, mainot modeli izvade var pilnīgi atšķirties | Vidēja, ja specifikācija ir skaidra, dažādi modeļi var radīt līdzīgu struktūru |
| Atkļūdošanas grūtība | Grūti, nezina, no kurienes nāk loģika | Viegli, pārbaudīt pa punktiem saskaņā ar spec |
| Piemērotība komandas darbam | Gandrīz neiespējama | Iespējama (spec ir saziņas līgums) |
| Rezultāta noteiktība | Zema, katras sarunas rezultāts var mainīties | Augsta, tā pati spec rada stabilu izvadi |
V. Praktiski ieteikumi lietošanā
“Darbā vibe kodēšana un spec kodēšana nav izvēle starp diviem, bet tiek izmantotas jaukti, piemērotā scenārijā izvēloties piemērotu pieeju:
- Izpētes fāzē (kad nav skaidra tehnoloģiju izvēle vai UI stils), izmantojiet Vibe Coding, lai ātri pārbaudītu dažādas iespējas, piemēram, ‘uzraksti kartes komponentu, izmantojot Tailwind, lai redzētu, kā tas izskatās’.
- Tiklīdz plāns ir apstiprināts, nekavējoties pārslēdzieties uz Spec Coding: veiksmīgo prototipu pārveidojiet atpakaļ skaidrā specifikācijā (ievades/izvades, robežnosacījumi, kļūdu apstrāde), pēc tam lieciet AI vai cilvēkam stingri saskaņā ar spec pārrakstīt ražošanas līmeņa kodu.
Tīrs Vibe režīms ir piemērots tikai vienreizējām skriptām vai iekšējiem maziem rīkiem; sistēmām, kas jāuztur ilgtermiņā un kurās strādā vairāki cilvēki, Spec Coding ir stingra prasība.”
评论
暂无已展示的评论。
发表评论(匿名)