← 返回列表

KI-Serie Interview 14: Unterschied zwischen Vibe Coding und Spec Coding?

Das ist ein Problem, mit dem die meisten Programmierer konfrontiert sind. Vibe Coding und Spec Coding sind zwei grundlegend unterschiedliche Arbeitsparadigmen beim Programmieren mit großen Sprachmodellen (LLMs). Der Kernunterschied besteht darin: Ob die „Eingabe“ an die KI ein vages Gefühl oder eine präzise Spezifikation ist.


1. Einfache Beschreibung des Unterschieds zwischen Vibe Coding und Spec Coding am Beispiel des Kochens

  • Vibe Coding = Du sagst zu einem Freund: „Ich möchte etwas Scharfes essen.“ Der Freund brät nach Gefühl ein Gericht. Du probierst und sagst: „Etwas salziger.“ Er fügt Salz hinzu. Das Ergebnis kann überraschend gut sein, aber ein anderer Freund würde etwas völlig anderes kochen.
  • Spec Coding = Du schreibst ein Rezept: „20 g Pixian-Doubanjiang (fermentierte Bohnenpaste), 150 g Rindfleischstreifen, 50 g Selleriestücke, 2 Minuten scharf anbraten, vor dem Servieren 3 g Zucker hinzufügen.“ Verschiedene Köche, die dem Rezept folgen, erhalten ein sehr ähnliches Gericht.

2. Definitionen der beiden

Aspekt Vibe Coding Spec Coding
Alias Gefühlsgesteuertes Programmieren, Prompt-Improvisation Spezifikationsgesteuertes Programmieren, Dokumentation zuerst
Eingabeform „Erstelle mir eine schöne Login-Seite mit einem futuristischen Look.“ „Die Login-Seite muss E-Mail-/Passwort-Eingabefelder, ein Kontrollkästchen ‚Angemeldet bleiben‘ und einen Senden-Button enthalten; Frontend mit React + Tailwind; Formularvalidierungsregeln: E-Mail-Format, Passwortlänge ≥ 8; bei Fehler rote Hinweise anzeigen …“
KI-Nutzung Dialogisch, iterativ: grobe Richtung vorgeben → Ausgabe prüfen → nachjustieren Engineering-orientiert: Zuerst detaillierte PRD/technische Spezifikation schreiben → KI generiert Code basierend auf Spezifikation
Menschliche Beteiligung Niedrig: KI überlässt Kreativität, Mensch prüft nur „fühlt es sich richtig an?“ Hoch: Mensch erledigt Design/Architektur, KI führt hauptsächlich aus
Typische Szenarien Schnelles Prototyping, persönliche Tools, UI-Erkundung, kreatives Programmieren Produktionssysteme, Teamarbeit, Code, der wartbar/testbar sein muss

3. Arbeitsablaufvergleich

Vibe Coding Ablauf

  1. Vage Idee: „Ich möchte einen Crawler schreiben, der die Zhihu-Trendliste abruft.“
  2. Ersten Prompt schreiben: Die KI direkt Code generieren lassen.
  3. Ausführen → Fehler → Fehler zurückkopieren → KI korrigiert.
  4. UI gefällt nicht → „Mach den Button runder und den Hintergrund zu einem blauen Verlauf“ → KI ändert.
  5. Funktion fehlt → „Füge eine Funktion zum Speichern in CSV hinzu“ → KI fügt hinzu.
  6. Wiederhole Schritte 3–5, bis es sich „richtig anfühlt“.

Spec Coding Ablauf

  1. Spezifikationsdokument erstellen: Ein-/Ausgaben, Datenstrukturen, Fehlerbehandlung, Leistungsanforderungen, nicht-funktionale Anforderungen (wie Logging, Ratenbegrenzung) festlegen.
  2. Spezifikation in Aufgaben aufteilen: Z.B. Aufgabe 1: Implementiere die Funktion fetch_hot_topics() gemäß der API-Signatur in der Spezifikation.
  3. Aufgaben nacheinander von der KI umsetzen lassen: Der Prompt enthält Funktionssignatur, Kommentare und erwartete Testergebnisse.
  4. Manuelle Überprüfung und Validierung: Sicherstellen, dass die Spezifikation eingehalten wird, Unit-Tests ausführen.
  5. Integration und Regressionstests.

4. Vor- und Nachteile

Merkmal Vibe Coding Spec Coding
Einstiegsgeschwindigkeit Sehr schnell, Prototyp in Minuten Langsam, erfordert Dokumentation und Aufgabenzerlegung
Codequalität Niedrig (redundant, inkonsistent, versteckte Bugs möglich) Hoch (lesbar, testbar, architekturkonform)
Wartbarkeit Schlecht, Nachfolger verstehen nicht „warum so geschrieben“ Gut, Spezifikation dient als Dokumentation
Abhängigkeit vom LLM Sehr hoch, Modellwechsel kann völlig andere Ausgaben liefern Mittel, solange Spezifikation klar, liefern verschiedene Modelle ähnliche Strukturen
Schwierigkeit beim Debuggen Schwierig, da Logik der Codegenerierung unbekannt Einfach, Spezifikation Punkt für Punkt prüfen
Teamarbeit Kaum möglich Möglich (Spezifikation als Kommunikationsvertrag)
Ergebnisdeterminiertheit Niedrig, Ergebnisse können pro Dialog variieren Hoch, gleiche Spezifikation erzeugt stabile Ausgabe

5. Praktische Anwendungsempfehlungen

„Im Arbeitsalltag wird man nicht zwischen Vibe Coding und Spec Coding wählen, sondern beides kombinieren und in geeigneten Szenarien die passende Methode anwenden:
- In der Explorationsphase (wenn die Technologieauswahl oder das UI-Design noch unsicher sind) verwendet man Vibe Coding, um verschiedene Ansätze schnell zu validieren, z. B. ‚Schreibe eine Kartenkomponente mit Tailwind, um zu sehen, wie sie aussieht.‘
- Sobald die Entscheidung gefallen ist, wechselt man sofort zu Spec Coding: Man arbeitet den erfolgreichen Prototypen rückwärts zu einer klaren Spezifikation um (Ein-/Ausgaben, Randbedingungen, Fehlerbehandlung) und lässt dann die KI oder einen Menschen den Produktionscode streng nach Spezifikation neu schreiben.
Der reine Vibe-Modus eignet sich nur für einmalige Skripte oder interne Tools; für Systeme, die langfristig gewartet werden und von mehreren Personen genutzt werden, ist Spec Coding eine harte Anforderung.“

评论

暂无已展示的评论。

发表评论(匿名)