← 返回列表

Colloquio AI Serie 14: Differenza tra vibe coding e spec coding?

Questa è una domanda che molti programmatori si pongono. Vibe Coding e Spec Coding sono due paradigmi di lavoro radicalmente diversi quando si programma con l'aiuto di modelli linguistici di grandi dimensioni (LLM). La loro differenza fondamentale è: l'"input" che dai all'AI è una sensazione vaga o una specifica precisa.


I. Un esempio con la cucina per spiegare la differenza tra vibe coding e spec coding

  • Vibe Coding = Dici a un amico "voglio qualcosa di piccante", lui prepara un piatto a intuito, assaggi e dici "più salato", e lui aggiunge sale. Il risultato può essere sorprendente, ma se lo prepara un altro amico, sarà completamente diverso.
  • Spec Coding = Scrivi una ricetta: "20g di pasta di peperoncino di Pixian, 150g di fette di manzo, 50g di gambi di sedano, saltare in padella a fuoco vivace per 2 minuti, aggiungere 3g di zucchero prima di spegnere". Cuochi diversi seguendo la ricetta ottengono un gusto molto uniforme.

II. Definizioni

Dimensione Vibe Coding Spec Coding
Alias Programmazione guidata dalle sensazioni, improvvisazione su prompt Programmazione guidata dalle specifiche, documentazione prima del codice
Forma di input "Fammi una bella pagina di login, con un tocco tecnologico" "La pagina di login deve includere: campi per email/password, casella 'Ricordami', pulsante di invio; frontend in React + Tailwind; regole di validazione: formato email, lunghezza password ≥ 8; in caso di errore mostrare un messaggio rosso..."
Uso dell'AI Dialogico, iterativo: si dà una direzione generale → si osserva l'output → si aggiusta Ingegneristico: si scrive prima un PRD/specifica tecnica dettagliata → l'AI genera codice basato sulla specifica
Coinvolgimento umano Basso: si dipende dalla creatività dell'AI, l'umano giudica solo "se sembra giusto" Alto: l'umano completa prima la progettazione/l'architettura, l'AI esegue principalmente
Scenario tipico Prototipazione rapida, piccoli strumenti personali, esplorazione UI, scrittura creativa di codice Sistemi pronti per la produzione, collaborazione di squadra, codice manutenibile/testabile

III. Confronto dei flussi di lavoro

Processo Vibe Coding

  1. Idea vaga: "Voglio scrivere un web scraper per la classifica di Zhihu."
  2. Scrivi il primo prompt: chiedi direttamente all'AI di generare il codice.
  3. Esegui → errore → incolla l'errore → l'AI modifica.
  4. L'interfaccia è brutta → "Rendi il bottone più arrotondato, sfondo blu sfumato" → l'AI modifica.
  5. Mancano funzionalità → "Aggiungi la funzione di salvare in CSV" → l'AI aggiunge.
  6. Ripeti i passi 3-5 finché "sembra a posto".

Processo Spec Coding

  1. Scrivi un documento di specifica: definisci input/output, strutture dati, gestione errori, requisiti prestazionali, requisiti non funzionali (es. log, rate limiting).
  2. Dividi la specifica in task: es. Task 1: implementa la funzione fetch_hot_topic(), rispettando la firma API nella specifica.
  3. Fai implementare ogni task all'AI: il prompt include la firma della funzione, commenti, test case attesi.
  4. Revisione e verifica umana: assicurati che sia conforme alla specifica, esegui test unitari.
  5. Integrazione e regressione.

IV. Confronto vantaggi/svantaggi

Caratteristica Vibe Coding Spec Coding
Velocità iniziale Molto alta, prototipo in pochi minuti Bassa, serve scrivere documenti e suddividere task
Qualità del codice Bassa (possibile ridondanza, incoerenza, bug nascosti) Alta (leggibile, testabile, conforme all'architettura)
Manutenibilità Scarsa, chi viene dopo non capisce "perché è stato scritto così" Buona, la specifica funge da documentazione
Dipendenza dall'LLM Altissima, cambiando modello l'output può essere completamente diverso Media, se la specifica è chiara, modelli diversi producono strutture simili
Difficoltà di debugging Difficile, non si sa da dove venga la logica Facile, si controlla punto per punto secondo la specifica
Adatto per collaborazione di squadra Quasi impossibile Possibile (la specifica è il contratto di comunicazione)
Determinismo dell'output Basso, i risultati possono variare a ogni conversazione Alto, stessa specifica produce output stabile

V. Consigli pratici

"Nel lavoro, non si sceglie tra vibe coding e spec coding, ma si usano in modo misto, adottando l'approccio giusto per ogni scenario:
- Nella fase esplorativa (quando non si è certi della scelta tecnica o dello stile UI), usa Vibe Coding per validare rapidamente diverse opzioni, ad esempio 'usa Tailwind per creare un componente card e vediamo l'effetto'.
- Una volta decisa la soluzione, passa immediatamente a Spec Coding: trasforma il prototipo funzionante in una specifica chiara (input/output, casi limite, gestione errori), poi fai riscrivere il codice di produzione dall'AI o da un umano rigorosamente secondo la specifica.
La modalità puramente Vibe è adatta solo per script usa e getta o piccoli strumenti interni; per sistemi da mantenere a lungo e usati da più persone, lo Spec Coding è un requisito imprescindibile."

评论

暂无已展示的评论。

发表评论(匿名)