← 返回列表

AI interjúsorozat 14: Mi a különbség a vibe coding és a spec coding között?

Ez a legtöbb programozó számára ismert probléma. A Vibe Coding és a Spec Coding két teljesen eltérő munkamódszer, amikor nagy nyelvi modell (LLM) segítségével programozunk. A lényeges különbség az, hogy az AI-nak adott „bemenet” homályos érzés vagy pontos specifikáció.


1. A főzés példáján keresztül egyszerűen leírva a vibe coding és spec coding közötti különbséget

  • Vibe Coding = Azt mondod a barátodnak: „Csípőset akarok enni.” A barátod érzésre készít egy ételt. Belekóstolsz, és azt mondod: „Még egy kicsit sósabb.” Ő még sóz. Az íz lehet lenyűgöző, de ha más barát készíti, teljesen más lesz.
  • Spec Coding = Pontos receptet írsz: „Pixian doubanjiang 20 g, marhahús szelet 150 g, zellerdarabok 50 g, nagy lángon gyorssütés 2 perc, tálalás előtt 3 g cukor.” Bármelyik szakács ezt követve elkészíti, az íz nagyon hasonló lesz.

2. A két fogalom meghatározása

Dimenzió Vibe Coding Spec Coding
Más néven Érzésvezérelt programozás, prompt improvizáció Specifikációvezérelt programozás, dokumentáció-először
Bemeneti forma „Segíts létrehozni egy menő bejelentkező oldalt, ami futurisztikus” „A bejelentkező oldal tartalmazzon e-mail/jelszó mezőket, 'Emlékezz rám' jelölőnégyzetet, beküldő gombot; frontend React + Tailwind; űrlapellenőrzési szabályok: e-mail formátum, jelszó hossz ≥8; hiba esetén piros jelzés...”
AI használatának módja Dialógus-alapú, iteratív: megadod a nagyjábóli irányt → megnézed a kimenetet → finomhangolsz Mérnöki jellegű: először részletes PRD/műszaki specifikációt írsz → az AI a specifikáció alapján generál kódot
Emberi részvétel mértéke Alacsony: az AI kreativitására hagyatkozol, az ember csak annyit érzékel, hogy „jó-e az érzés” Magas: az ember először elkészíti a tervezést/architektúrát, az AI főleg a végrehajtást végzi
Tipikus forgatókönyvek Gyors prototípus, személyes eszközök, UI felfedezés, kreatív kódírás Éles rendszerek, csapatmunka, karbantartható/tesztelhető kódot igénylő feladatok

3. A két munkafolyamat összehasonlítása

Vibe Coding folyamat

  1. Homályos ötlet: „Szeretnék írni egy webscrapert, ami a Zhihu forró témáit gyűjti.”
  2. Első prompt megírása: Közvetlenül megkéred az AI-t, hogy generálja a kódot.
  3. Futtatás → hiba → a hiba visszamásolása → AI módosítja.
  4. Úgy érzed, csúnya a felület → „Tedd kerekebbé a gombot, a hátteret pedig cseréld le átmenetes kékre” → AI módosít.
  5. Hiányzik egy funkció → „Adj hozzá egy opciót, hogy CSV-be mentse” → AI hozzáad.
  6. 3-5 lépés ismétlése amíg „jónak érzed”.

Spec Coding folyamat

  1. Specifikációs dokumentum írása: Pontosan meghatározod a bemenetet/kimenetet, adatszerkezeteket, hibakezelést, teljesítménykövetelményeket, nem funkcionális igényeket (pl. naplózás, sebességkorlátozás).
  2. Specifikáció feladatokra bontása: Pl. 1. feladat: fetch_hot_topics() függvény megvalósítása, a specifikációban szereplő API aláírással.
  3. Feladatonként megkéred az AI-t a megvalósításra: A prompt tartalmazza a függvény aláírását, kommenteket, tesztesetek elvárásait.
  4. Emberi ellenőrzés és validálás: Megbizonyosodsz, hogy megfelel a specifikációnak, futtatod az egységteszteket.
  5. Integráció és regressziós tesztelés.

4. Előnyök és hátrányok összehasonlítása

Tulajdonság Vibe Coding Spec Coding
Elsajátítási sebesség Nagyon gyors, percek alatt prototípus Lassú, dokumentációírás, feladatokra bontás szükséges
Kódminőség Alacsony (lehet redundáns, inkonzisztens, rejtett hibák) Magas (olvasható, tesztelhető, architektúrának megfelelő)
Karbantarthatóság Rossz, a későbbiek nem értik, „miért így van megírva” Jó, a specifikáció dokumentációként is szolgál
LLM-től való függőség Nagyon magas, modellváltás esetén teljesen eltérő kimenet Közepes, ha a specifikáció világos, különböző modellek is hasonló struktúrát produkálnak
Hibakeresés nehézsége Nehéz, nem lehet tudni, honnan jön a logika Könnyű, specifikációnként soronként ellenőrizhető
Csapatmunkára alkalmas Szinte lehetetlen Igen (a specifikáció kommunikációs szerződés)
Kimenet determináltsága Alacsony, minden dialógus más eredményt hozhat Magas, ugyanaz a specifikáció stabil kimenetet ad

5. Gyakorlati használati javaslatok

„A munkában a vibe coding és a spec coding között nem kell választanunk, hanem vegyesen használjuk őket, a megfelelő helyzetben a megfelelő megközelítést alkalmazva:
- A feltáró szakaszban (amikor nem biztos a technológiai választás vagy az UI stílus) használjuk a Vibe Coding-ot a különböző lehetőségek gyors kipróbálására, például 'Írj egy kártyakomponenst Tailwinddel, hogy megnézzük, hogy néz ki.'
- Amint a terv elkészült, azonnal váltsunk Spec Coding-ra: a sikeres prototípusból készítsünk visszafelé egy tiszta specifikációt (bemenet/kimenet, határesetek, hibakezelés), majd az AI vagy egy ember a specifikáció alapján írja újra a gyártási kódot.
Tiszta Vibe mód csak egyszeri szkriptekhez vagy belső eszközökhöz alkalmas; hosszú távon karbantartandó, több ember által használt rendszerek esetén a Spec Coding kötelező.”

评论

暂无已展示的评论。

发表评论(匿名)