← 返回列表

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

  1. Neskaidra ideja: “Es gribu uzrakstīt tīmekļa skrāpi, lai iegūtu Zhihu karstos sarakstus.”
  2. Uzrakstīt pirmo uzvedni: tieši likt AI ģenerēt kodu.
  3. Palaist → kļūda → ielīmēt kļūdu atpakaļ → AI labo.
  4. Sajūta, ka interfeiss ir neglīts → “Padari to pogu apaļāku, fonu maini uz gradientu zilu” → AI maina.
  5. Trūkst funkcijas → “Pievieno iespēju saglabāt CSV” → AI pievieno.
  6. Atkārtot 3-5, līdz “sajūta, ka pietiekami”.

Spec Coding process

  1. 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).
  2. Sadalīt specifikāciju uzdevumos: piemēram, 1. uzdevums: realizēt funkciju fetch_hot_topics(), ievērojot spec API parakstu.
  3. Katram uzdevumam likt AI realizēt: uzvednē iekļaut funkcijas parakstu, komentārus, testa gadījumu prognozes.
  4. Cilvēka pārskats un validācija: pārliecināties, ka atbilst specifikācijai, palaist vienības testus.
  5. 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.”

评论

暂无已展示的评论。

发表评论(匿名)