Le réseau social X a vu passer un document de référence particulièrement stratégique partagé par le compte DataChaz (Source : DataChaz sur X, date exacte non spécifiée dans la requête.
Ce texte émane du célèbre incubateur de startups Y Combinator. Il documente avec rigueur le « vibe coding », c’est à dire l’art de développer des logiciels en s’appuyant massivement sur l’intelligence artificielle. Les anciennes méthodes de codage sont obsolètes face à ces nouveaux outils de productivité. Voici la traduction complète de leurs recommandations pour structurer efficacement nos futurs développements.
À propos, vous savez comment l’Office québécois de la langue française à traduit le terme « Vibe Coding » ? Ils appellent ça la « programmation intuitive » et je dois dire que j’aime beaucoup ça.
Définition
Approche de programmation fondée sur l’expérimentation et l’intuition, qui s’appuie avant tout sur les grands modèles de langage pour générer du code informatique à partir d’instructions formulées en langage naturel.
Guide yc du vibe coding
Processus de planification
- Créer un plan complet : Commencer par travailler avec l’IA pour écrire un plan de mise en œuvre détaillé dans un fichier markdown.
- Revoir et affiner : Supprimer les éléments inutiles, marquer les fonctionnalités comme ne devant pas être faites si elles sont trop complexes.
- Maintenir le contrôle du périmètre : Garder une section séparée pour les idées futures afin de rester concentré.
- Mettre en œuvre de manière incrémentielle : Travailler section par section plutôt que de tenter de tout construire en une seule fois.
- Suivre les progrès : Demander à l’IA de marquer les sections comme terminées après une mise en œuvre réussie.
- Commiter régulièrement : S’assurer que chaque section fonctionnelle est commitée dans Git avant de passer à la suivante.
Stratégies de contrôle de version
- Utiliser Git religieusement : Ne pas se fier uniquement à la fonctionnalité d’annulation des outils d’IA.
- Commencer proprement : Commencer chaque nouvelle fonctionnalité avec un état Git propre.
- Réinitialiser en cas de blocage : Utiliser la commande git reset –hard HEAD si l’IA part dans une mauvaise direction.
- Éviter les problèmes cumulatifs : De multiples tentatives ratées créent des couches de mauvais code.
- Mise en œuvre propre : Quand une solution est enfin trouvée, réinitialiser et la mettre en œuvre proprement.
Cadre de test
- Prioriser les tests de haut niveau : Se concentrer sur les tests d’intégration de bout en bout plutôt que sur les tests unitaires.
- Simuler le comportement de l’utilisateur : Tester les fonctionnalités en simulant quelqu’un qui navigue sur le site ou l’application.
- Attraper les régressions : Les grands modèles de langage font souvent des modifications inutiles à une logique non liée.
- Tester avant de continuer : S’assurer que les tests passent avant de passer à la fonctionnalité suivante.
- Utiliser les tests comme garde fous : Certains fondateurs recommandent de commencer par des cas de test pour fournir des limites claires.
Résolution de bugs efficace
- Tirer parti des messages d’erreur : Copier et coller simplement les messages d’erreur est souvent suffisant pour l’IA.
- Analyser avant de coder : Demander à l’IA d’envisager plusieurs causes possibles.
- Réinitialiser après des échecs : Recommencer à zéro après chaque tentative de correction infructueuse.
- Mettre en œuvre la journalisation : Ajouter une journalisation stratégique pour mieux comprendre ce qui se passe.
- Changer de modèles : Essayer différents modèles d’IA quand l’un d’eux est bloqué.
- Mise en œuvre propre : Une fois le correctif identifié, réinitialiser et le mettre en œuvre sur une base de code propre.
Optimisation des outils ia
- Créer des fichiers d’instructions : Rédiger des instructions détaillées pour l’IA dans des fichiers appropriés (cursor.rules, windsurf.rules, claude.md).
- Documentation locale : Télécharger la documentation des API dans le dossier de projet pour plus de précision.
- Utiliser plusieurs outils : Certains fondateurs font tourner à la fois Cursor et Windsurf simultanément sur le même projet.
- Spécialisation des outils : Cursor est un peu plus rapide pour le travail front end, tandis que Windsurf réfléchit plus longtemps.
- Comparer les résultats : Générer plusieurs solutions et choisir la meilleure.
Développement de fonctionnalités complexes
- Créer des prototypes autonomes : Construire d’abord des fonctionnalités complexes dans une base de code propre.
- Utiliser des implémentations de référence : Indiquer à l’IA des exemples fonctionnels à suivre.
- Limites claires : Maintenir des API externes cohérentes tout en permettant des changements internes.
- Architecture modulaire : Les architectures basées sur des services avec des limites claires fonctionnent mieux que les dépôts uniques.
Considérations sur la pile technologique
- Les frameworks établis excellent : Ruby on Rails fonctionne bien grâce à 20 ans de conventions cohérentes.
- Les données d’entraînement comptent : Les langages plus récents comme Rust ou Elixir peuvent avoir moins de données d’entraînement.
- La modularité est la clé : Les petits fichiers modulaires sont plus faciles à manipuler pour les humains comme pour les IA.
- Éviter les gros fichiers : Ne pas avoir de fichiers contenant des milliers de lignes de code.
Au delà du codage
- Automatisation devops : Utiliser l’IA pour configurer les serveurs, le DNS et l’hébergement.
- Assistance à la conception : Générer des favicons et d’autres éléments de design.
- Création de contenu : Rédiger la documentation et les supports marketing.
- Outil éducatif : Demander à l’IA d’expliquer les implémentations ligne par ligne.
- Utiliser des captures d’écran : Partager visuellement les bugs d’interface utilisateur ou l’inspiration de conception.
- Saisie vocale : Des outils comme Aqua permettent une saisie de 140 mots par minute.
Amélioration continue
- Refactorisation régulière : Une fois les tests en place, refactoriser fréquemment.
- Identifier les opportunités : Demander à l’IA de trouver des candidats à la refactorisation.
- Rester à jour : Essayer chaque nouvelle version de modèle.
- Reconnaître les forces : Différents modèles excellent dans différentes tâches.
Pourquoi ce guide est utile
Le vibe coding peut donner une impression de vitesse incroyable, mais il demande aussi de la méthode. Sans relecture, tests et compréhension minimale de ce qui est produit, on peut créer très vite… y compris des problèmes.
À lire aussi : ma fatigue de l’IA et le besoin de garder du recul.