Interviu AI Seria 14: Diferența dintre vibe coding și spec coding?
Acesta este un lucru cu care se confruntă majoritatea programatorilor. Vibe Coding și Spec Coding sunt două paradigme de lucru fundamental diferite atunci când se programează cu ajutorul modelelor lingvistice mari (LLM). Diferența principală constă în: inputul pe care îl dai AI-ului este o senzație vagă sau un specificație precisă.
I. Să luăm gătitul ca exemplu pentru a descrie pe scurt diferența dintre vibe coding și spec coding
- Vibe Coding = Spui unui prieten „Vreau ceva picant”, prietenul gătește din senzație un preparat, guști și spui „Mai sărat”, el adaugă sare. Gustul poate fi uimitor, dar dacă un alt prieten gătește, iese complet diferit.
- Spec Coding = Scrii o rețetă: „pasta de ardei iute 20g, felii de vită 150g, bucăți de țelină 50g, sotat la foc mare 2 minute, înainte de servire adaugă 3g zahăr”. Diferiți bucătari gătesc după rețetă, gustul este foarte consistent.
II. Definițiile ambelor
| Dimensiune | Vibe Coding | Spec Coding |
|---|---|---|
| Alt nume | Programare bazată pe senzații, improvizație pe prompt | Programare bazată pe specificații, documentație în prealabil |
| Forma de intrare | „Creează-mi o pagină de login frumoasă, cu aspect modern” | „Pagina de login trebuie să conțină câmpuri pentru email/parolă, checkbox pentru ținere minte, buton de trimitere; frontend React + Tailwind; reguli de validare: format email, lungime parolă ≥8; la eșec se afișează un indicat roșu…” |
| Mod de utilizare AI | Conversațional, iterativ: se dă o direcție generală → se vede outputul → se ajustează | Ingineresc: se scrie mai întâi un document detaliat de cerințe/specificații tehnice → AI generează cod pe baza specificației |
| Implicarea umană | Ridicată: se bazează pe creativitatea AI, omul doar decide „dacă se simte bine” | Înaltă: omul face mai întâi designul/arhitectura, AI execută în principal |
| Scenarii tipice | Prototipare rapidă, unelte personale, explorare UI, cod creativ | Sisteme de producție, colaborare în echipă, cod care necesită mentenanță/testare |
III. Compararea fluxurilor de lucru
Procesul Vibe Coding
- Idee vagă: „Vreau să scriu un crawler care să extragă trendingul de pe Zhihu.”
- Scriere primului prompt: Direct AI generează cod.
- Execuție → Eroare → Lipirea erorii înapoi → AI modifică.
- Pare urât interfața → „Rotunjește butonul, fundal albastru gradient” → AI modifică.
- Funcție lipsă → „Adaugă și funcția de salvare în CSV” → AI adaugă.
- Se repetă pașii 3-5 până când „senzația este suficient de bună”.
Procesul Spec Coding
- Scriere document de specificații: Se precizează input/output, structuri de date, gestionarea erorilor, cerințe de performanță, cerințe non-funcționale (de ex. logare, limitare de viteză).
- Împărțirea specificației în sarcini: De exemplu, sarcina 1: implementarea funcției
fetch_hot_topics()respectând semnătura API din spec. - Realizarea sarcinilor pe rând: Promptul conține semnătura funcției, comentarii, testele așteptate.
- Revizuire umană și validare: Se verifică conformitatea cu specificația, se rulează teste unitare.
- Integrare și regresie.
IV. Comparația avantajelor și dezavantajelor
| Caracteristică | Vibe Coding | Spec Coding |
|---|---|---|
| Viteză de începere | Foarte rapidă, prototip în câteva minute | Lentă, necesită documentație și împărțire în sarcini |
| Calitatea codului | Scăzută (poate fi redundant, inconsistent, buguri ascunse) | Ridicată (lizibil, testabil, conform arhitecturii) |
| Mentenanța | Slabă, următorii nu înțeleg „de ce s-a scris așa” | Bună, specificația este documentația |
| Dependența de LLM | Foarte mare, schimbarea modelului poate duce la output complet diferit | Medie, atâta timp cât specificația este clară, modele diferite pot produce structuri similare |
| Dificultatea depanării | Dificilă, nu știi de unde vine logica | Ușoară, se verifică pe fiecare specificație |
| Potrivire pentru colaborare în echipă | Aproape imposibilă | Posibilă (specificația ca contract de comunicare) |
| Determinismul outputului | Scăzut, rezultatul poate varia de la o conversație la alta | Ridicat, aceeași specificație produce output stabil |
V. Sfaturi practice de utilizare
„La muncă, vibe coding și spec coding nu sunt o alegere exclusivă, ci se utilizează mixt, în funcție de scenariul potrivit:
- În faza de explorare (când nu ești sigur de alegerea tehnologică sau stilul UI), folosește Vibe Coding pentru a valida rapid diferite opțiuni, de exemplu „scrie un component card cu Tailwind să văd cum arată”.
- Odată ce soluția este stabilită, treci imediat la Spec Coding: transformă prototipul reușit într-o specificație clară (input/output, condiții limită, gestionarea erorilor), apoi lasă AI-ul sau omul să rescrie codul de producție strict conform specificației.
Modul pur Vibe este potrivit doar pentru scripturi de unică folosință sau unelte interne; pentru sisteme care trebuie menținute pe termen lung sau utilizate de mai multe persoane, Spec Coding este o cerință strictă.”
评论
暂无已展示的评论。
发表评论(匿名)