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
- Homályos ötlet: „Szeretnék írni egy webscrapert, ami a Zhihu forró témáit gyűjti.”
- Első prompt megírása: Közvetlenül megkéred az AI-t, hogy generálja a kódot.
- Futtatás → hiba → a hiba visszamásolása → AI módosítja.
- Ú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.
- Hiányzik egy funkció → „Adj hozzá egy opciót, hogy CSV-be mentse” → AI hozzáad.
- 3-5 lépés ismétlése amíg „jónak érzed”.
Spec Coding folyamat
- 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).
- 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. - 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.
- Emberi ellenőrzés és validálás: Megbizonyosodsz, hogy megfelel a specifikációnak, futtatod az egységteszteket.
- 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ő.”
评论
暂无已展示的评论。
发表评论(匿名)