← 返回列表

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

  1. Idee vagă: „Vreau să scriu un crawler care să extragă trendingul de pe Zhihu.”
  2. Scriere primului prompt: Direct AI generează cod.
  3. Execuție → Eroare → Lipirea erorii înapoi → AI modifică.
  4. Pare urât interfața → „Rotunjește butonul, fundal albastru gradient” → AI modifică.
  5. Funcție lipsă → „Adaugă și funcția de salvare în CSV” → AI adaugă.
  6. Se repetă pașii 3-5 până când „senzația este suficient de bună”.

Procesul Spec Coding

  1. 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ă).
  2. Împărțirea specificației în sarcini: De exemplu, sarcina 1: implementarea funcției fetch_hot_topics() respectând semnătura API din spec.
  3. Realizarea sarcinilor pe rând: Promptul conține semnătura funcției, comentarii, testele așteptate.
  4. Revizuire umană și validare: Se verifică conformitatea cu specificația, se rulează teste unitare.
  5. 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ă.”

评论

暂无已展示的评论。

发表评论(匿名)