← 返回列表

AI Συνέντευξη 14: Διαφορά μεταξύ vibe coding και spec coding;

Αυτό είναι ένα πρόβλημα που αντιμετωπίζουν οι περισσότεροι προγραμματιστές. Vibe Coding και Spec Coding είναι δύο εντελώς διαφορετικές παραδειγματικές προσεγγίσεις στον προγραμματισμό με τη βοήθεια μεγάλων γλωσσικών μοντέλων (LLM). Η βασική τους διαφορά είναι: το "είσοδο" που δίνεις στο AI είναι ασαφές συναίσθημα ή ακριβείς προδιαγραφές.


1. Ας εξηγήσουμε τη διαφορά μεταξύ vibe coding και spec coding με μια αναλογία μαγειρικής

  • Vibe Coding = Λες σε έναν φίλο "Θέλω να φάω κάτι πικάντικο", αυτός μαγειρεύει ένα πιάτο με βάση το ένστικτό του, το δοκιμάζεις και λες "Λίγο ακόμα αλάτι", και προσθέτει αλάτι. Η γεύση μπορεί να είναι εξαιρετική, αλλά αν το μαγειρέψει άλλος φίλος, το αποτέλεσμα θα είναι εντελώς διαφορετικό.
  • Spec Coding = Γράφεις μια συνταγή: "20g πάστα τσίλι Pixian, 150g φέτες βοδινού, 50g κομμάτια σέλινου, σοτάρισμα σε δυνατή φωτιά για 2 λεπτά, πρόσθεσε 3g ζάχαρη πριν το σερβίρισμα". Διαφορετικοί σεφ ακολουθούν τη συνταγή και η γεύση είναι σε μεγάλο βαθμό συνεπής.

2. Ορισμοί

Διάσταση Vibe Coding Spec Coding
Εναλλακτική ονομασία Προγραμματισμός με βάση το συναίσθημα, αυτοσχεδιασμός με prompt Προγραμματισμός με βάση προδιαγραφές, τεκμηρίωση πρώτα
Μορφή εισόδου "Φτιάξε μου μια όμορφη σελίδα σύνδεσης με τεχνολογική αίσθηση" "Η σελίδα σύνδεσης πρέπει να περιλαμβάνει πεδία email/κωδικού, πλαίσιο ελέγχου 'Remember Me', κουμπί υποβολής· frontend με React + Tailwind· κανόνες επικύρωσης φόρμας: μορφή email, μήκος κωδικού ≥8· σε περίπτωση αποτυχίας, εμφάνιση κόκκινου μηνύματος…"
Τρόπος χρήσης AI Διαλογικός, επαναληπτικός: δίνεις γενική κατεύθυνση → βλέπεις αποτέλεσμα → κάνεις μικρορυθμίσεις Μηχανικός: γράφεις λεπτομερές PRD/τεχνικές προδιαγραφές → το AI παράγει κώδικα βάσει αυτών
Συμμετοχή ανθρώπου Χαμηλή: εξάρτηση από τη δημιουργικότητα του AI, ο άνθρωπος απλά ελέγχει αν "αισθάνεται σωστά" Υψηλή: ο άνθρωπος ολοκληρώνει τον σχεδιασμό/αρχιτεκτονική, το AI κυρίως εκτελεί
Τυπικές περιπτώσεις Γρήγορη δημιουργία πρωτοτύπων, προσωπικά εργαλεία, εξερεύνηση UI, δημιουργικός κώδικας Συστήματα παραγωγής, ομαδική συνεργασία, κώδικας που απαιτεί συντήρηση/δοκιμές

3. Σύγκριση ροών εργασίας

Διαδικασία Vibe Coding

  1. Ασαφής ιδέα: "Θέλω να γράψω ένα web scraper για να πάρω τα hot topics από το Zhihu."
  2. Γράψε το πρώτο prompt: Ζήτησε απευθείας από το AI να δημιουργήσει κώδικα.
  3. Εκτέλεση → Σφάλμα → Επικόλλησε το σφάλμα πίσω → Το AI το διορθώνει.
  4. Η διεπαφή φαίνεται άσχημη → "Κάνε το κουμπί πιο στρογγυλό, άλλαξε το φόντο σε gradient μπλε" → Το AI αλλάζει.
  5. Λείπει λειτουργία → "Πρόσθεσε λειτουργία αποθήκευσης σε CSV" → Το AI την προσθέτει.
  6. Επανάληψη βημάτων 3-5 μέχρι να "αισθάνεσαι ότι είναι αρκετά καλό".

Διαδικασία Spec Coding

  1. Σύνταξη εγγράφου προδιαγραφών: Καθόρισε είσοδο/έξοδο, δομές δεδομένων, διαχείριση σφαλμάτων, απαιτήσεις απόδοσης, μη λειτουργικές απαιτήσεις (π.χ. logging, rate limiting).
  2. Διάσπαση προδιαγραφών σε εργασίες: Π.χ. Εργασία 1: Υλοποίηση συνάρτησης fetch_hot_topics() σύμφωνα με την υπογραφή API της προδιαγραφής.
  3. Εκτέλεση κάθε εργασίας από το AI: Το prompt περιλαμβάνει υπογραφή συνάρτησης, σχόλια, αναμενόμενα αποτελέσματα δοκιμών.
  4. Ανθρώπινη αναθεώρηση και επαλήθευση: Βεβαιώσου ότι συμμορφώνεται με τις προδιαγραφές, εκτέλεσε unit tests.
  5. Ενσωμάτωση και regression test.

4. Σύγκριση πλεονεκτημάτων/μειονεκτημάτων

Χαρακτηριστικό Vibe Coding Spec Coding
Ταχύτητα εκκίνησης Πολύ γρήγορη, πρωτότυπο σε λεπτά Αργή, απαιτεί γράψιμο τεκμηρίωσης, διάσπαση εργασιών
Ποιότητα κώδικα Χαμηλή (μπορεί να είναι περιττός, ασυνεπής, με κρυφά bugs) Υψηλή (εύκολος στην ανάγνωση, δοκιμάσιμος, συνεπής με αρχιτεκτονική)
Συντηρησιμότητα Κακή, οι επόμενοι δεν καταλαβαίνουν "γιατί γράφτηκε έτσι" Καλή, οι προδιαγραφές αποτελούν τεκμηρίωση
Εξάρτηση από LLM Πολύ υψηλή, αλλαγή μοντέλου μπορεί να αλλάξει ριζικά το αποτέλεσμα Μέτρια, εφόσον οι προδιαγραφές είναι σαφείς, διαφορετικά μοντέλα μπορούν να παράγουν παρόμοια δομή
Δυσκολία εντοπισμού σφαλμάτων Δύσκολη, δεν είναι γνωστό από πού προήλθε η λογική Εύκολη, έλεγχος κατά προδιαγραφή
Καταλληλότητα για ομαδική συνεργασία Σχεδόν αδύνατη Δυνατή (οι προδιαγραφές αποτελούν συμβόλαιο επικοινωνίας)
Προβλεψιμότητα αποτελέσματος Χαμηλή, το αποτέλεσμα μπορεί να διαφέρει σε κάθε συνομιλία Υψηλή, ίδιες προδιαγραφές παράγουν σταθερό αποτέλεσμα

5. Προτάσεις για πραγματική χρήση

"Στην εργασία, το vibe coding και το spec coding δεν είναι δίλημμα, αλλά συνδυάζονται, χρησιμοποιώντας την κατάλληλη προσέγγιση ανά περίσταση:
- Στη φάση εξερεύνησης (όταν η τεχνολογική επιλογή ή το UI δεν είναι σίγουρα), χρησιμοποίησε Vibe Coding για γρήγορη δοκιμή διαφορετικών προσεγγίσεων, π.χ. 'Γράψε ένα component κάρτας με Tailwind για να δω πώς φαίνεται'.
- Μόλις η προσέγγιση καθοριστεί, μετάβασε αμέσως σε Spec Coding: μετέτρεψε το επιτυχημένο πρωτότυπο σε σαφείς προδιαγραφές (είσοδο/έξοδο, οριακές συνθήκες, διαχείριση σφαλμάτων) και ζήτησε από το AI ή έναν άνθρωπο να ξαναγράψει τον κώδικα παραγωγής αυστηρά σύμφωνα με τις προδιαγραφές.
Η αμιγώς Vibe λειτουργία είναι κατάλληλη μόνο για εφάπαξ scripts ή εσωτερικά εργαλεία· για συστήματα που απαιτούν μακροπρόθεσμη συντήρηση και χρησιμοποιούνται από πολλούς, το Spec Coding είναι απαραίτητο."

评论

暂无已展示的评论。

发表评论(匿名)