← 返回列表

Série d'interviews IA 14 : Différence entre vibe coding et spec coding ?

C'est une question que la plupart des programmeurs rencontrent. Vibe Coding et Spec Coding sont deux paradigmes de travail distincts lors de la programmation assistée par grand modèle de langage (LLM). Leur différence fondamentale réside dans ce que vous donnez en entrée à l'IA : une sensation floue ou une spécification précise.


I. Prendre l'exemple de la cuisine pour décrire simplement la différence entre vibe coding et spec coding

  • Vibe Coding = Vous dites à un ami "J'ai envie de manger épicé", il prépare un plat au feeling, vous goûtez et dites "un peu plus salé", il ajoute du sel. Le goût peut être surprenant, mais un autre ami obtiendrait un résultat complètement différent.
  • Spec Coding = Vous écrivez une recette : "20g de pâte de piment Pixian, 150g de tranches de bœuf, 50g de céleri en morceaux, sauté à feu vif pendant 2 minutes, ajouter 3g de sucre avant de retirer du feu". Différents cuisiniers suivant la recette obtiennent un goût très similaire.

II. Définitions des deux

Dimension Vibe Coding Spec Coding
Alias Programmation pilotée par le ressenti, prompt improvisé Programmation pilotée par les spécifications, documentation d'abord
Forme d'entrée "Fais-moi une belle page de connexion, avec un côté technologique" "La page de connexion doit comporter : champ email/mot de passe, case à cocher 'Se souvenir de moi', bouton de soumission ; frontend avec React + Tailwind ; règles de validation du formulaire : format d'email, longueur du mot de passe ≥ 8 ; afficher un message rouge en cas d'échec..."
Utilisation de l'IA Conversationnelle, itérative : donner une direction générale → voir le résultat → ajuster Ingénierique : d'abord rédiger un document de spécification technique détaillé → l'IA génère le code basé sur la spécification
Participation humaine Faible : dépend de la créativité de l'IA, l'humain se contente de juger si "le rendu est bon" Élevée : l'humain conçoit d'abord l'architecture, l'IA exécute principalement
Scénarios typiques Prototypage rapide, petits outils personnels, exploration UI, code créatif Systèmes de production, collaboration d'équipe, code nécessitant maintenabilité et testabilité

III. Comparaison des flux de travail

Processus Vibe Coding

  1. Idée floue : "Je veux écrire un scraper pour récupérer le classement Zhihu."
  2. Écrire le premier prompt : demander directement à l'IA de générer le code.
  3. Exécuter → erreur → coller l'erreur → l'IA la corrige.
  4. Trouver l'interface moche → "Arrondis ce bouton, mets un fond bleu dégradé" → l'IA modifie.
  5. Fonctionnalité manquante → "Ajoute une fonction pour sauvegarder en CSV" → l'IA ajoute.
  6. Boucle 3-5 jusqu'à ce que "on sente que c'est bon".

Processus Spec Coding

  1. Rédiger un document de spécification : préciser entrées/sorties, structures de données, gestion d'erreurs, exigences de performance, exigences non fonctionnelles (logs, limitation de débit).
  2. Diviser la spécification en tâches : ex. Tâche 1 : implémenter la fonction fetch_hot_topics() conforme à la signature d'API dans la spec.
  3. Faire implémenter chaque tâche par l'IA : le prompt contient la signature de fonction, les commentaires, les résultats attendus des tests.
  4. Révision et validation humaine : s'assurer de la conformité à la spécification, exécuter les tests unitaires.
  5. Intégration et régression.

IV. Comparaison des avantages et inconvénients

Caractéristique Vibe Coding Spec Coding
Vitesse de démarrage Très rapide, prototype en quelques minutes Lent, nécessite rédaction de documents et division des tâches
Qualité du code Faible (redondance, incohérence, bugs cachés) Haute (lisible, testable, conforme à l'architecture)
Maintenabilité Mauvaise, les autres ne comprennent pas "pourquoi c'est écrit comme ça" Bonne, la spécification sert de documentation
Dépendance au LLM Très élevée, changer de modèle peut produire un résultat complètement différent Moyenne, tant que la spécification est claire, différents modèles produisent des structures similaires
Difficulté de débogage Difficile, on ne sait pas d'où vient la logique Facile, vérifier point par point selon la spécification
Adapté à la collaboration d'équipe Presque impossible Possible (la spécification sert de contrat de communication)
Déterminisme du résultat Faible, chaque conversation peut dériver Élevé, une même spec produit une sortie stable

V. Recommandations d'utilisation dans la pratique

"Dans le travail, on ne choisit pas entre vibe coding et spec coding, mais on les utilise en combinaison, en choisissant la méthode adaptée au contexte :
- En phase d'exploration (lorsque le choix technique ou le style UI n'est pas encore fixé), utiliser le Vibe Coding pour valider rapidement différentes options, par exemple 'Écris un composant carte avec Tailwind pour voir le rendu'.
- Une fois la solution choisie, passer immédiatement au Spec Coding : transformer le prototype réussi en spécification claire (entrées/sorties, conditions limites, gestion d'erreurs), puis demander à l'IA ou à un humain de réécrire le code de production en respectant strictement la spec.
Le mode purement Vibe ne convient qu'aux scripts jetables ou aux outils internes ; pour les systèmes nécessitant une maintenance à long terme et une utilisation par plusieurs personnes, le Spec Coding est une exigence forte."

评论

暂无已展示的评论。

发表评论(匿名)