{"id":78738,"date":"2025-11-26T11:51:48","date_gmt":"2025-11-26T19:51:48","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=78738"},"modified":"2026-01-12T12:15:45","modified_gmt":"2026-01-12T20:15:45","slug":"jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr","status":"publish","type":"post","link":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/","title":{"rendered":"J\u2019ai Appris \u00c0 Ma Grand-M\u00e8re \u00c0 Coder Le Vibe (Voici Ce Qui S\u2019est Pass\u00e9)"},"content":{"rendered":"<div class=\"tldr-block\" style=\"display: none;\">\n\t<div class=\"svg\">\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 119.25 37.8\">\n\t<g>\n\t\t<g>\n\t\t\t<path fill=\"#ffffff\" d=\"M23.4,6.93h-8.1v24.57h-7.2V6.93H0V0h23.4v6.93Z\" \/>\n\t\t\t<path fill=\"#ffffff\" d=\"M45,24.57v6.93h-18.45V0h7.2v24.57h11.25Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M90.9,15.75c0,8.91-6.61,15.75-15.3,15.75h-12.6V0h12.6c8.68,0,15.3,6.84,15.3,15.75ZM83.97,15.75c0-5.4-3.42-8.82-8.37-8.82h-5.4v17.64h5.4c4.95,0,8.37-3.42,8.37-8.82Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M105.57,21.15h-3.42v10.35h-7.2V0h12.6c5.98,0,10.8,4.81,10.8,10.8,0,3.87-2.34,7.38-5.81,9.13l6.71,11.56h-7.74l-5.94-10.35ZM102.15,14.85h5.4c1.98,0,3.6-1.75,3.6-4.05s-1.62-4.05-3.6-4.05h-5.4v8.1Z\" \/>\n\t\t<\/g>\n\t\t<path\n\t\t\tfill=\"#0173ec\"\n\t\t\td=\"M53.97,37.8h-5.4l1.8-13.27h7.2l-3.6,13.27ZM49.02,12.55c0-2.34,1.93-4.27,4.27-4.27s4.27,1.94,4.27,4.27-1.93,4.27-4.27,4.27-4.27-1.94-4.27-4.27Z\"\n\t\t \/>\n\t<\/g>\n<\/svg>\n\t<\/div>\n\t<div class=\"tldr-wrap\">\n\t\t\n\n<ul class=\"wp-block-list\">\n<li>La programmation par Vibe permet \u00e0 tout le monde de construire des applications fonctionnelles en conversant avec l&#8217;IA, mais <a href=\"https:\/\/cset.georgetown.edu\/publication\/cybersecurity-risks-of-ai-generated-code\/\">48%<\/a> du code g\u00e9n\u00e9r\u00e9 par l&#8217;IA contient des failles de s\u00e9curit\u00e9.<\/li>\n\n\n\n<li>Apprendre \u00e0 ma grand-m\u00e8re \u00e0 construire une application de suivi de jardin a montr\u00e9 exactement o\u00f9 la programmation par Vibe r\u00e9ussit et \u00e9choue catastrophiquement.<\/li>\n\n\n\n<li>La violation de l&#8217;application <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tea_(app)\">TEA de 2025<\/a> a expos\u00e9 comment le d\u00e9veloppement rapide sans r\u00e9vision de s\u00e9curit\u00e9 cr\u00e9e des applications qui fonctionnent magnifiquement tout en cachant des vuln\u00e9rabilit\u00e9s.<\/li>\n\n\n\n<li>Tu peux construire des prototypes rapidement. Les rendre pr\u00eats pour la production n\u00e9cessite de l&#8217;expertise.<\/li>\n\n\n<\/ul>\n\n\n\n\n\t<\/div>\n<\/div>\n\n<p>Ma grand-m\u00e8re a g\u00e9r\u00e9 des tableurs d&#8217;inventaire pour une entreprise de textile pendant 40 ans. Elle calcule les remises compos\u00e9es dans sa t\u00eate plus rapidement que la plupart des gens avec des calculatrices, mais elle n&#8217;a aucune exp\u00e9rience en codage.&nbsp;<\/p>\n\n\n<p>Quand j&#8217;ai sugg\u00e9r\u00e9 de construire ensemble une application de suivi de jardin utilisant l&#8217;IA, son scepticisme a \u00e9t\u00e9 presque instantan\u00e9.<\/p>\n\n\n<p>Deux heures apr\u00e8s, elle avait une application web fonctionnelle jusqu&#8217;\u00e0 ce que nous demandions une chose de plus, et l&#8217;application a plant\u00e9. C&#8217;est une histoire trop fr\u00e9quente du codage \u00e0 l&#8217;instinct.&nbsp;<\/p>\n\n\n<p>Maintenant, j&#8217;ai un cadre de compr\u00e9hension de ce que le codage de vibe offre r\u00e9ellement par rapport \u00e0 ce qu&#8217;il promet, afin que tu puisses regarder au-del\u00e0 du battage marketing et utiliser r\u00e9ellement le produit.&nbsp;<\/p>\n\n\n<h2 id=\"h-first-what-is-vibe-coding\" class=\"wp-block-heading\">D&#8217;abord, Qu&#8217;est-Ce Que Le Vibe Coding ?<\/h2>\n\n\n<p>Vibe coding consiste \u00e0 <strong>construire des logiciels en d\u00e9crivant ce que tu veux en anglais simple et \u00e0 laisser l&#8217;IA \u00e9crire le code pour toi.&nbsp;<\/strong><\/p>\n\n\n<p>L&#8217;ancien directeur de l&#8217;IA chez Tesla et cofondateur d&#8217;OpenAI, Andrej Karpathy, a invent\u00e9 le terme en f\u00e9vrier 2025 lorsqu&#8217;il a <a href=\"https:\/\/x.com\/karpathy\/status\/1886192184808149383?lang=en\">tweet\u00e9<\/a> : &#8220;<em>Il y a un nouveau type de codage que j&#8217;appelle &#8216;vibe coding&#8217;, o\u00f9 tu te laisses compl\u00e8tement aller aux vibes, embrasses les exponentielles, et oublies m\u00eame que le code existe<\/em>.&#8221;&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1291\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding.webp\" alt=\"Tweet d'Andrej Karpathy d\u00e9crivant l'approche de codage par ambiance o\u00f9 il repose fortement sur des assistants de codage IA et le copier-coller plut\u00f4t que de comprendre le code.\" class=\"wp-image-77857 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-300x242.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-1024x826.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-768x620.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-1536x1239.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-600x484.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-1200x968.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-730x589.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-1460x1178.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-784x633.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-1568x1265.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01_what_is_vibe_coding-877x708.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1291;\" \/><\/figure>\n\n\n<p>Le post a explos\u00e9 avec plus de 5 millions de vues, capturant une approche de d\u00e9veloppement qui se r\u00e9pandait d\u00e9j\u00e0 dans la communaut\u00e9 tech.&nbsp;<\/p>\n\n\n<p>Au lieu d&#8217;apprendre des langages de programmation et de lutter avec la syntaxe, tu dis simplement \u00e0 une IA ce que tu veux construire. L&#8217;IA g\u00e9n\u00e8re le code. Tu deviens un chef de produit plut\u00f4t qu&#8217;un programmeur, concentr\u00e9 sur ce que l&#8217;application doit faire au lieu de comment la faire fonctionner.<\/p>\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n<h3 class=\"wp-block-heading\" id=\"h-why-does-vibe-coding-matter-now\">Pourquoi Le Codage Vibe Est-Il Important Maintenant ?<\/h3>\n\n\n<p><a href=\"https:\/\/www.mckinsey.com\/capabilities\/people-and-organizational-performance\/our-insights\/five-fifty-the-skillful-corporation\">87 % des entreprises<\/a> font face \u00e0 des p\u00e9nuries de talents ou s&#8217;attendent \u00e0 en rencontrer dans les prochaines ann\u00e9es, selon McKinsey.<a href=\"https:\/\/qubit-labs.com\/it-talent-gap-still-growing\/\">&nbsp;<\/a><\/p>\n\n\n<p>Les outils de codage IA tels que Bolt.new, Lovable, Replit Agent et Cursor promettent de r\u00e9soudre ce probl\u00e8me en am\u00e9liorant la productivit\u00e9 des d\u00e9veloppeurs existants et en permettant aux non-d\u00e9veloppeurs de tester rapidement leurs id\u00e9es.<\/p>\n\n\n<p>Les chiffres confirment le battage m\u00e9diatique :<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>En mars 2025, Y Combinator a r\u00e9v\u00e9l\u00e9 que <a href=\"https:\/\/techcrunch.com\/2025\/03\/06\/a-quarter-of-startups-in-ycs-current-cohort-have-codebases-that-are-almost-entirely-ai-generated\/\">25% de leur promotion hiver 2025<\/a> avaient 95% de leurs bases de code g\u00e9n\u00e9r\u00e9es par l&#8217;IA.<\/li>\n\n\n\n<li>En avril 2025, le PDG de Microsoft, Satya Nadella, a r\u00e9v\u00e9l\u00e9 que <a href=\"https:\/\/www.cnbc.com\/2025\/04\/29\/satya-nadella-says-as-much-as-30percent-of-microsoft-code-is-written-by-ai.html\">20 \u00e0 30%<\/a> de la base de code \u00e9tait \u00e9crite par l&#8217;IA.<\/li>\n\n\n\n<li>Un quart des startups <a href=\"https:\/\/techcrunch.com\/2025\/03\/06\/a-quarter-of-startups-in-ycs-current-cohort-have-codebases-that-are-almost-entirely-ai-generated\/\">dans la cohorte actuelle de YC<\/a> ont des bases de code presque enti\u00e8rement g\u00e9n\u00e9r\u00e9es par l&#8217;IA.<\/li>\n\n\n\n<li>Le PDG de Google, Sundar Pichai, a rapport\u00e9 des chiffres similaires, affirmant que <a href=\"https:\/\/blog.google\/inside-google\/message-ceo\/alphabet-earnings-q3-2024\/#search:~:text=Today%2C%20more%20than%20a%20quarter%20of%20all%20new%20code%20at%20Google%20is%20generated%20by%20AI%2C%20then%20reviewed%20and%20accepted%20by%20engineers.%20This%20helps%20our%20engineers%20do%20more%20and%20move%20faster\">plus de 25% du code de Google<\/a> sont g\u00e9n\u00e9r\u00e9s par l&#8217;IA.<\/li>\n\n\n<\/ul>\n\n\n<p>Nous sommes pass\u00e9s de la simple autocompl\u00e9tion \u00e0 la r\u00e9daction de applications compl\u00e8tes avec un minimum d&#8217;intervention humaine.&nbsp;<\/p>\n\n\n<p>Mais les m\u00eames fonctionnalit\u00e9s qui rendent la programmation de vibe accessible, comme l&#8217;entr\u00e9e en langage naturel, la g\u00e9n\u00e9ration autonome de code et la gestion automatique de la complexit\u00e9, cr\u00e9ent de s\u00e9rieux probl\u00e8mes lorsque ton application doit \u00e9voluer au-del\u00e0 de cette premi\u00e8re version.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-can-you-actually-build-with-vibe-coding\">Que Peux-Tu R\u00e9ellement Construire Avec Vibe Coding ?<\/h3>\n\n\n<p>Quand tu peux r\u00e9ellement construire avec le codage de vibe d\u00e9pend de trois choses :<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Quelle complexit\u00e9 ton application doit avoir<\/li>\n\n\n\n<li>Si tu peux d\u00e9tecter du mauvais code et des failles de s\u00e9curit\u00e9<\/li>\n\n\n\n<li>Si tu sais quand arr\u00eater d&#8217;ajouter des fonctionnalit\u00e9s<\/li>\n\n\n<\/ul>\n\n\n<p>Si les exigences de ton application sont simples, et que tu peux identifier les lacunes techniques et r\u00e9sister \u00e0 l&#8217;ajout de fonctionnalit\u00e9s inutiles, le codage vibe peut t&#8217;aider \u00e0 obtenir rapidement des r\u00e9sultats fonctionnels.<\/p>\n\n\n<p>Cependant, \u00e0 mesure que la complexit\u00e9 augmente ou si tu as besoin de construire des applications de production, la r\u00e9vision professionnelle et la planification architecturale deviennent incontournables.<\/p>\n\n\n<p>L&#8217;exp\u00e9rience de ma grand-m\u00e8re dans la cr\u00e9ation d&#8217;une application de suivi de jardin a clairement montr\u00e9 o\u00f9 se situent ces limites.<\/p>\n\n\n<h2 id=\"h-what-happened-in-hour-one-simple-instructions-worked\" class=\"wp-block-heading\">Que S&#8217;est-Il Pass\u00e9 Dans La Premi\u00e8re Heure ? Des Instructions Simples Ont Fonctionn\u00e9<\/h2>\n\n\n<p>Il existe au moins une douzaine de plateformes de codage AI comme Bolt, Lovable, OpenAI Code, Claude Code, Google Opal, etc.&nbsp;<\/p>\n\n\n<p>Nous avons commenc\u00e9 avec l&#8217;<a href=\"https:\/\/developers.openai.com\/codex\/ide\/\">extension OpenAI Codex dans VS Code<\/a> car j&#8217;avais d\u00e9j\u00e0 un abonnement, mais je recommanderais de commencer avec Bolt.new, Lovable, ou Vercel pour une exp\u00e9rience de codage plus visuelle.&nbsp;<\/p>\n\n\n<p>Notre premi\u00e8re proposition :<em> &#8220;Cr\u00e9e un application de suivi de jardin o\u00f9 je peux enregistrer ce que j\u2019ai plant\u00e9, quand je l\u2019ai plant\u00e9, et combien j\u2019ai r\u00e9colt\u00e9. Inclus une mani\u00e8re de voir quelles plantes ont le mieux perform\u00e9 chaque saison.&#8221;<\/em><\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1525\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex.webp\" alt=\"IDE de Cursor AI montrant un plan en plusieurs \u00e9tapes pour construire une application de suivi de jardin avec une liste de t\u00e2ches et une interface de chat pour l'assistance IA.\" class=\"wp-image-77858 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-300x286.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-1024x976.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-768x732.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-1536x1464.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-600x572.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-1200x1144.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-730x696.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-1460x1392.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-784x747.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-1568x1495.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_our_first_prompt_codex-877x836.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1525;\" \/><\/figure>\n\n\n<p><strong>Cette invite a fonctionn\u00e9 car elle contenait trois \u00e9l\u00e9ments cruciaux :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Structure claire des donn\u00e9es<\/strong> (nom de la plante, date de plantation, quantit\u00e9 r\u00e9colt\u00e9e, saison)<\/li>\n\n\n\n<li><strong>R\u00e9sultat d\u00e9fini<\/strong> (comparaison des performances par saison)<\/li>\n\n\n\n<li><strong>Contexte d&#8217;utilisation sp\u00e9cifique<\/strong> (suivi de jardin personnel)<\/li>\n\n\n<\/ul>\n\n\n<p>En quelques minutes, Codex a g\u00e9n\u00e9r\u00e9 une application compl\u00e8te. Elle disposait d&#8217;une base de donn\u00e9es SQLite avec des tables pour <em>plantes, plantations et r\u00e9coltes<\/em>, des points de terminaison d&#8217;API REST pour les op\u00e9rations CRUD, un frontend Python avec des tables de donn\u00e9es et des formulaires de saisie, et un style de base avec CSS.<\/p>\n\n\n<p>Il contenait m\u00eame des donn\u00e9es de d\u00e9monstration par d\u00e9faut.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1301\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default.webp\" alt=\"Interface de l'application Garden Tracker montrant quatre fiches de plantes avec des d\u00e9tails pour la Fraise, le Concombre, la Tomate et le Basilic incluant les dates de plantation et les enregistrements de r\u00e9colte.\" class=\"wp-image-77859 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-300x244.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-1024x833.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-768x624.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-1536x1249.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-600x488.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-1200x976.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-730x594.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-1460x1187.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-784x637.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-1568x1275.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/03_generated_application_demo_data_by_default-877x713.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1301;\" \/><\/figure>\n\n\n<p>L&#8217;application web <em>semblait<\/em> bonne. C&#8217;est le superpouvoir du codage vibe et son plus grand danger. Mais avant de plonger l\u00e0-dedans, laisse-moi expliquer ce qui se passe r\u00e9ellement derri\u00e8re la r\u00e9flexion de Codex. J&#8217;ai jou\u00e9 avec l&#8217;application, compris ce que nous avions et ce dont nous avions besoin.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-happened-behind-the-interface\">Ce Qui S&#8217;est Pass\u00e9 Derri\u00e8re L&#8217;Interface<\/h3>\n\n\n<p>Le code g\u00e9n\u00e9r\u00e9 a pris des d\u00e9cisions architecturales pour une application \u00e0 utilisateur unique. Le sch\u00e9ma de la base de donn\u00e9es pouvait g\u00e9rer facilement de nouvelles entr\u00e9es. L&#8217;API suivait les conventions RESTful. Les composants du frontend \u00e9taient s\u00e9par\u00e9s logiquement.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"802\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface.webp\" alt=\"\u00c9diteur Visual Studio Code affichant du code TypeScript pour une application de suivi de jardin avec le fichier models.ts ouvert montrant les interfaces Plant et PlantLog.\" class=\"wp-image-77860 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-300x150.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-1024x513.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-768x385.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-1536x770.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-600x301.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-1200x602.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-730x366.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-1460x732.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-784x393.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-1568x786.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/04_what_happened_behind_the_interface-877x440.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/802;\" \/><\/figure>\n\n\n<p>Cependant, j&#8217;ai remarqu\u00e9 qu&#8217;il ne prenait pas en compte les consid\u00e9rations de s\u00e9curit\u00e9 critiques par d\u00e9faut. Il n&#8217;y avait aucune validation des entr\u00e9es, aucune couche d&#8217;authentification, aucune limitation de taux, aucune consid\u00e9ration des vuln\u00e9rabilit\u00e9s d&#8217;injection SQL, et aucune encryption.<\/p>\n\n\n<p><strong>L&#8217;architecture de l&#8217;agent IA supposait un utilisateur unique de confiance dans un environnement contr\u00f4l\u00e9.<\/strong><\/p>\n\n\n<p>\u00c9tant donn\u00e9 que c&#8217;\u00e9tait un projet pour ma grand-m\u00e8re et personne d&#8217;autre, ces omissions sont des risques g\u00e9rables. Cependant, pour quiconque envisage de coder une application web multi-utilisateurs, ce sont des risques de s\u00e9curit\u00e9 critiques qui ne peuvent tout simplement pas \u00eatre ignor\u00e9s.&nbsp;<\/p>\n\n\n<p>Je vois souvent des discussions \u00e0 ce sujet sur Reddit ou PostStatus : les d\u00e9veloppeurs it\u00e8rent avec succ\u00e8s sur du code g\u00e9n\u00e9r\u00e9 par IA car ils identifient ces lacunes et mettent en place des couches de s\u00e9curit\u00e9 appropri\u00e9es. Les utilisateurs non techniques voient une application fonctionnelle et supposent qu&#8217;elle est pr\u00eate pour la production.<\/p>\n\n\n<h2 id=\"h-what-happened-in-hour-two-feature-creep-became-obvious\" class=\"wp-block-heading\">Que S&#8217;est-Il Pass\u00e9 \u00e0 la Deuxi\u00e8me Heure ? L&#8217;Extension Des Fonctionnalit\u00e9s Est Devenue \u00c9vidente<\/h2>\n\n\n<p>L&#8217;application a fonctionn\u00e9 comme pr\u00e9vu, et ce moment d\u00e9cisif a aid\u00e9 ma grand-m\u00e8re \u00e0 prendre confiance. Elle a commenc\u00e9 \u00e0 penser \u00e0 des am\u00e9liorations. C&#8217;est l\u00e0 que les limites du codage des ambiances deviennent \u00e9videntes.<\/p>\n\n\n<p>Nous avons essay\u00e9 une demande de fonctionnalit\u00e9 : <em>&#8220;Ajouter la capacit\u00e9 de t\u00e9l\u00e9charger des photos de chaque plante afin que je puisse voir \u00e0 quoi elles ressemblaient \u00e0 diff\u00e9rents stades de croissance.&#8221;<\/em><\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1298\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex.webp\" alt=\"Interface de Curseur IA montrant les progr\u00e8s dans la mise en \u0153uvre de la fonctionnalit\u00e9 de t\u00e9l\u00e9chargement de photos pour les plantes avec d\u00e9composition des t\u00e2ches et statut d'ach\u00e8vement.\" class=\"wp-image-77861 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-300x243.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-1024x831.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-768x623.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-1536x1246.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-600x487.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-1200x974.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-730x592.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-1460x1184.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-784x636.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-1568x1272.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/05_feature_request_codex-877x711.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1298;\" \/><\/figure>\n\n\n<p>Cette demande apparemment simple a d\u00e9clench\u00e9 une cascade de complexit\u00e9 architecturale.<\/p>\n\n\n<p><strong>Modifications requises du sch\u00e9ma de base de donn\u00e9es et des modules d&#8217;application :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Nouvelle table de photos avec les colonnes : id, plant_id (cl\u00e9 \u00e9trang\u00e8re), photo_url, upload_date, growth_stage<\/li>\n\n\n\n<li>D\u00e9finition de la relation entre les plantes et les photos (un-\u00e0-plusieurs)<\/li>\n\n\n\n<li>Strat\u00e9gie de migration pour les donn\u00e9es existantes<\/li>\n\n\n<\/ul>\n\n\n<p><strong>Modifications du backend n\u00e9cessaires\u00a0:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Point de terminaison de t\u00e9l\u00e9chargement de fichier avec gestion de formulaire multipart<\/li>\n\n\n\n<li>Solution de stockage de fichier (syst\u00e8me de fichiers local vs. stockage cloud)<\/li>\n\n\n\n<li>Nouveaux points de terminaison API pour les op\u00e9rations CRUD de photos<\/li>\n\n\n\n<li>Mettre \u00e0 jour les points de terminaison de plantes existants pour inclure les donn\u00e9es de photos<\/li>\n\n\n<\/ul>\n\n\n<p><strong>Modifications du frontend requises :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Composant d&#8217;entr\u00e9e de fichier avec glisser-d\u00e9poser<\/li>\n\n\n\n<li>Fonctionnalit\u00e9 d&#8217;aper\u00e7u d&#8217;image<\/li>\n\n\n\n<li>Affichage de la galerie photo pour chaque plante<\/li>\n\n\n\n<li>Mise \u00e0 jour des fiches de plantes existantes pour afficher des miniatures<\/li>\n\n\n\n<li>\u00c9tats de chargement pour la progression du t\u00e9l\u00e9chargement<\/li>\n\n\n<\/ul>\n\n\n<p>OpenAI Codex a tent\u00e9 d&#8217;ex\u00e9cuter tout simultan\u00e9ment. Le dernier mod\u00e8le GPT5-Codex-High a r\u00e9ussi \u00e0 faire fonctionner cela dans environ ~5 minutes apr\u00e8s avoir entr\u00e9 l&#8217;invite.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1774\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity.webp\" alt=\"Page de d\u00e9tail de la plante Garden Tracker pour le concombre montrant l'historique des r\u00e9coltes avec deux entr\u00e9es, r\u00e9colte totale de 5,60 lbs, et section de t\u00e9l\u00e9chargement de photo.\" class=\"wp-image-77862 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-271x300.webp 271w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-924x1024.webp 924w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-768x852.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-1385x1536.webp 1385w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-600x665.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-1200x1331.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-730x809.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-1460x1619.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-784x869.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-1568x1739.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_codex_cascade_of_architectural_complexity-877x972.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1774;\" \/><\/figure>\n\n\n<p>Le probl\u00e8me est qu&#8217;il a cr\u00e9\u00e9 un code bogu\u00e9 et non s\u00e9curis\u00e9. Voici ce qui s&#8217;est cass\u00e9 :<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>La structure de la table des <em>plantes<\/em> originale a chang\u00e9<\/li>\n\n\n\n<li>Les composants de frontend qui r\u00e9f\u00e9ren\u00e7aient l&#8217;ancien sch\u00e9ma ont cess\u00e9 de fonctionner<\/li>\n\n\n\n<li>Des conflits CSS entre les nouveaux composants photo et l&#8217;interface utilisateur existante (comme visible sur la capture d&#8217;\u00e9cran) sont apparus<\/li>\n\n\n<\/ul>\n\n\n<p>Et puis il y avait le probl\u00e8me de surdimensionnement : Codex a g\u00e9n\u00e9r\u00e9 un syst\u00e8me complexe avec un traitement d&#8217;image inutile et des donn\u00e9es prises pour chaque photo, etc.&nbsp;<\/p>\n\n\n<p>Chaque tentative de correction introduisait de nouveaux probl\u00e8mes. Mettre \u00e0 jour le sch\u00e9ma de la base de donn\u00e9es, casser l&#8217;API. R\u00e9parer l&#8217;API, casser le frontend. R\u00e9soudre les probl\u00e8mes du frontend, d\u00e9couvrir de nouveaux bugs backend. La base de code qui fonctionnait parfaitement avec 200 lignes de code s&#8217;\u00e9tendait maintenant sur 1 500 lignes avec des d\u00e9pendances interconnect\u00e9es.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-the-non-extensible-architecture-trap\">Le Pi\u00e8ge de l&#8217;Architecture Non Extensible<\/h3>\n\n\n<p>L&#8217;architecture de l&#8217;application a \u00e9t\u00e9 optimis\u00e9e pour <em>seulement<\/em> ce que nous avons demand\u00e9 lors de la premi\u00e8re heure. Avec le codage de vibe, tu dois \u00eatre tr\u00e8s sp\u00e9cifique, et c\u2019est la partie difficile pour les non-d\u00e9veloppeurs.<\/p>\n\n\n<p>Tu ne saurais pas ce que signifie une architecture extensible si l&#8217;IA l&#8217;impl\u00e9mentait.<\/p>\n\n\n<p>Si tu as une application simple pr\u00eate et que tu as ensuite besoin de l&#8217;\u00e9tendre, une architecture non extensible signifierait de r\u00e9\u00e9crire le code depuis le d\u00e9but pour l&#8217;IA.&nbsp;<\/p>\n\n\n<p><strong>Suppositions architecturales d\u00e8s la premi\u00e8re heure :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Conception de table unique (raisonnable pour des donn\u00e9es simples)<\/li>\n\n\n\n<li>Requ\u00eates directes de l&#8217;API \u00e0 la base de donn\u00e9es (rapide pour les op\u00e9rations lourdes en lecture)<\/li>\n\n\n\n<li>D\u00e9finitions de composants inline (acceptable pour de petites interfaces utilisateur)<\/li>\n\n\n\n<li>Aucune s\u00e9paration entre la logique m\u00e9tier et l&#8217;acc\u00e8s aux donn\u00e9es (convenable pour un CRUD simple)<\/li>\n\n\n<\/ul>\n\n\n<p><strong>Pourquoi ces hypoth\u00e8ses sont devenues des contraintes :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Le design de table unique emp\u00eachait une mod\u00e9lisation relationnelle appropri\u00e9e pour les photos<\/li>\n\n\n\n<li>Les requ\u00eates directes n\u00e9cessitaient des r\u00e9\u00e9critures compl\u00e8tes lorsque le sch\u00e9ma changeait<\/li>\n\n\n\n<li>Les composants int\u00e9gr\u00e9s signifiaient que les changements se propageaient \u00e0 travers tout le code<\/li>\n\n\n\n<li>L&#8217;absence de couche de logique m\u00e9tier signifiait que chaque fonctionnalit\u00e9 touchait directement la base de donn\u00e9es<\/li>\n\n\n<\/ul>\n\n\n<p>Nous avions d\u00e9pass\u00e9 le point de non-retour. Trop de code existait pour abandonner. Chaque tentative de correction consommait plus de jetons en essayant de sauver une architecture qui ne pouvait pas supporter les nouvelles exigences.<\/p>\n\n\n<h2 id=\"h-what-happened-in-hour-three-token-exhaustion-and-barely-functional-code-emerged\" class=\"wp-block-heading\">Que S&#8217;est-il Pass\u00e9 \u00e0 la Troisi\u00e8me Heure ? \u00c9puisement des Jetons et Code \u00e0 Peine Fonctionnel Apparu<\/h2>\n\n\n<p>Apr\u00e8s que la fonctionnalit\u00e9 de t\u00e9l\u00e9chargement de photo ait fonctionn\u00e9, nous avons tent\u00e9 des am\u00e9liorations suppl\u00e9mentaires.<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;Ajouter des cat\u00e9gories pour les types de plantes (l\u00e9gumes, herbes, fleurs)&#8221;<\/li>\n\n\n\n<li>&#8220;Afficher les recommandations de plantation en fonction de la saison&#8221;<\/li>\n\n\n\n<li>&#8220;Me permettre de marquer des plantes comme favorites&#8221;<\/li>\n\n\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1030\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code.webp\" alt=\"Curseur IA montrant la finalisation de la construction de l'application de suivi de jardin avec des fonctionnalit\u00e9s ajout\u00e9es incluant des cat\u00e9gories de plantes, des recommandations saisonni\u00e8res, et des favoris avec le code visible.\" class=\"wp-image-77863 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-300x193.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-1024x659.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-768x494.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-1536x989.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-600x386.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-1200x773.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-730x470.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-1460x940.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-784x505.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-1568x1009.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_token_exhaustion_and_barely_functional_code-877x565.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1030;\" \/><\/figure>\n\n\n<p>Chaque demande suivait le m\u00eame mod\u00e8le : Codex essayait une mise en \u0153uvre approfondie pour des demandes apparemment simples, introduisait des changements majeurs, cr\u00e9ait des solutions surdimensionn\u00e9es et consommait des milliers de jetons en essayant de corriger les bugs r\u00e9sultants.<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"932\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1024x932.webp\" alt=\"Tableau de bord Garden Tracker montrant les recommandations saisonni\u00e8res, la liste des plantes avec l\u00e9gumes et actions, et votre section de plantations avec les cartes Concombre et Basilic.\" class=\"wp-image-77864 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1024x932.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-300x273.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-768x699.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1536x1399.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-600x546.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1200x1093.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-730x665.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1460x1330.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-784x714.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-1568x1428.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations-877x799.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementations.webp 1600w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/932;\" \/><\/figure>\n\n\n<p>L&#8217;appli fonctionne tr\u00e8s bien, et ma grand-m\u00e8re \u00e9tait satisfaite du r\u00e9sultat.&nbsp;<\/p>\n\n\n<p>En tant que d\u00e9veloppeur, cependant, je pouvais clairement voir que nous \u00e9tions sur la derni\u00e8re jambe en termes de code. Quelques fonctionnalit\u00e9s de plus et l&#8217;application serait un d\u00e9sordre.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"620\" height=\"421\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/IMAGE-9.png\" alt=\"M\u00e8me de Bob l'\u00e9ponge montrant Patrick frustr\u00e9 devant l'ordinateur avec le texte \u00c7a fonctionne ? et Non, c'est cass\u00e9, mais ne le casse pas.\" class=\"wp-image-77865 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/IMAGE-9.png.webp 620w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/IMAGE-9-300x204.png 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/IMAGE-9-600x407.png.webp 600w\" data-sizes=\"(max-width: 620px) 100vw, 620px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 620px; --smush-placeholder-aspect-ratio: 620\/421;\" \/><\/figure>\n\n\n<p>via <a href=\"https:\/\/imgflip.com\/i\/tc9hy\">Imgflip<\/a><\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-why-is-this-such-a-common-problem\">Pourquoi Est-Ce Un Probl\u00e8me Si Courant ?<\/h3>\n\n\n<p>Les agents de codage sont simplement de grands mod\u00e8les de langage \u00ab sollicit\u00e9s \u00bb pour produire du code.&nbsp;<\/p>\n\n\n<p>Donc ils ont tous les probl\u00e8mes que les grands mod\u00e8les de langage ont, y compris :<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Ne pas \u00eatre pr\u00e9cis sur ce qui est attendu d&#8217;eux<\/li>\n\n\n\n<li>Inventer des appels de fonction al\u00e9atoires (hallucinations)<\/li>\n\n\n\n<li>\u00c9crire du code compliqu\u00e9 pour des objectifs simples<\/li>\n\n\n<\/ul>\n\n\n<p>De plus, \u00e0 mesure que l&#8217;historique des discussions s&#8217;accumule, les agents de codage atteignent leurs <a href=\"https:\/\/www.ibm.com\/think\/topics\/context-window\">limites de fen\u00eatre de contexte<\/a>.&nbsp;<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>D\u00e9cisions d&#8217;architecture originales et leur justification<\/li>\n\n\n\n<li>Modifications ult\u00e9rieures et leurs interd\u00e9pendances<\/li>\n\n\n\n<li>Bugs actuels et leurs causes principales<\/li>\n\n\n\n<li>Fonctionnalit\u00e9s souhait\u00e9es pour les nouvelles fonctionnalit\u00e9s<\/li>\n\n\n<\/ul>\n\n\n<p>Chaque nouvelle consigne \u00e9tait interpr\u00e9t\u00e9e isol\u00e9ment sans une compr\u00e9hension compl\u00e8te de l&#8217;histoire de l&#8217;architecture. L&#8217;IA proposait des solutions qui avaient du sens pour des fonctionnalit\u00e9s individuelles mais cr\u00e9aient des conflits syst\u00e9miques lors de l&#8217;int\u00e9gration avec le code existant.<\/p>\n\n\n<p>Ce <a href=\"https:\/\/www.reddit.com\/r\/ClaudeAI\/comments\/1kivv0w\/the_ultimate_vibe_coding_guide\/\">guide sur Reddit souligne<\/a> : <em>&#8220;Quand la discussion devient tr\u00e8s grande, il suffit d&#8217;ouvrir une nouvelle. La fen\u00eatre de contexte de l&#8217;IA est limit\u00e9e. Si la discussion est tr\u00e8s grande, elle oubliera tout ce qui est ant\u00e9rieur, oubliera tous les motifs et designs, et commencera \u00e0 produire de mauvais r\u00e9sultats.&#8221;<\/em><\/p>\n\n\n<p>Mais ouvrir une nouvelle discussion signifiait perdre tout le contexte de ce qui existait. Fournir ce contexte consommait des jetons. M\u00eame avec un contexte \u00ab r\u00e9sum\u00e9 \u00bb, nous manquons encore de d\u00e9tails importants en ce qui concerne le code.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-we-faced-the-tea-app-problem-at-a-smaller-scale\">Nous Avons Rencontr\u00e9 le Probl\u00e8me de l&#8217;App TEA \u00e0 une \u00c9chelle R\u00e9duite<\/h3>\n\n\n<p>L&#8217;application TEA a d\u00e9montr\u00e9 ce mod\u00e8le exact d&#8217;\u00e9chec \u00e0 l&#8217;\u00e9chelle de production. Lanc\u00e9e en 2023 en tant que plateforme de s\u00e9curit\u00e9 pour femmes, elle a rapidement atteint 1,6 million d&#8217;utilisatrices.&nbsp;<\/p>\n\n\n<p><strong>Ensuite, en juillet 2025, il a \u00e9chou\u00e9 de mani\u00e8re catastrophique :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>La Fuite :<\/strong> Des chercheurs en s\u00e9curit\u00e9 ont d\u00e9couvert un Bucket Firebase non s\u00e9curis\u00e9 contenant 72 000 images d&#8217;utilisateurs, dont 13 000 selfies de v\u00e9rification et pi\u00e8ces d&#8217;identit\u00e9 gouvernementales. Une seconde base de donn\u00e9es a expos\u00e9 1,1 million de messages priv\u00e9s.<\/li>\n\n\n\n<li><strong>Les D\u00e9faillances Techniques :<\/strong> Cl\u00e9s API cod\u00e9es en dur dans le code source, Bucket Firebase accessible publiquement sans authentification, absence de protections en temps r\u00e9el, et absence de couche de r\u00e9vision de s\u00e9curit\u00e9. Des experts ont li\u00e9 ces vuln\u00e9rabilit\u00e9s \u00e0 des pratiques de codage ax\u00e9es sur la vitesse de d\u00e9ploiement des fonctionnalit\u00e9s, \u00e9clipsant l&#8217;architecture de s\u00e9curit\u00e9.<\/li>\n\n\n\n<li><strong>Le R\u00e9sultat :<\/strong> Un internaute anonyme de 4chan a d\u00e9couvert et partag\u00e9 des outils de t\u00e9l\u00e9chargement. Des actions en justice de classe ont \u00e9t\u00e9 d\u00e9pos\u00e9es dans les 48 heures. La plateforme a \u00e9t\u00e9 ferm\u00e9e. Co\u00fbt moyen de la violation : 4,88 millions de dollars.<\/li>\n\n\n<\/ul>\n\n\n<p>L&#8217;\u00e9chec de TEA suit le m\u00eame sch\u00e9ma que celui que nous avons exp\u00e9riment\u00e9 \u00e0 une \u00e9chelle si minuscule, ce qui me fait me demander pourquoi les gens ne v\u00e9rifient pas le code g\u00e9n\u00e9r\u00e9 par IA.&nbsp;<\/p>\n\n\n<p>Nous avions une impl\u00e9mentation initiale qui fonctionnait bien ; cependant, l&#8217;ajout de fonctionnalit\u00e9s a compliqu\u00e9 l&#8217;architecture, les consid\u00e9rations de s\u00e9curit\u00e9 ont \u00e9t\u00e9 n\u00e9glig\u00e9es pour les nouvelles fonctionnalit\u00e9s, et des vuln\u00e9rabilit\u00e9s syst\u00e9miques ont \u00e9t\u00e9 involontairement laiss\u00e9es ouvertes \u00e0 l&#8217;exploitation.<\/p>\n\n\n<h2 id=\"h-how-to-vibe-code-without-experiencing-the-same-problems-we-did\" class=\"wp-block-heading\">Comment Coder Avec Vibe Sans Rencontrer Les M\u00eames Probl\u00e8mes Que Nous<\/h2>\n\n\n<p>Si tu n&#8217;es pas d\u00e9veloppeur, il est impossible d&#8217;\u00e9viter compl\u00e8tement les probl\u00e8mes. Cependant, il existe des moyens de minimiser les probl\u00e8mes.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-start-with-ruthless-feature-minimalism\">1. Commencez Avec Un Minimalisme Fonctionnel Implacable<\/h3>\n\n\n<p>D\u00e9finis l&#8217;ensemble minimal de fonctionnalit\u00e9s avant d&#8217;\u00e9crire la premi\u00e8re invite, mais r\u00e9siste toujours \u00e0 la tentation d&#8217;ajouter des fonctionnalit\u00e9s pendant le d\u00e9veloppement initial.<\/p>\n\n\n<p><strong>Cadre de d\u00e9limitation efficace :<\/strong><\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Liste toutes les fonctionnalit\u00e9s souhait\u00e9es<\/li>\n\n\n\n<li>Identifie les 3 \u00e0 5 fonctionnalit\u00e9s qui valident ton hypoth\u00e8se principale<\/li>\n\n\n\n<li>Construis uniquement ces fonctionnalit\u00e9s dans la premi\u00e8re version<\/li>\n\n\n\n<li>Lance, valide et it\u00e8re<\/li>\n\n\n<\/ol>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Ne donne pas des instructions comme, &#8216;Construis-moi toute cette fonctionnalit\u00e9.&#8217; L&#8217;IA va halluciner et produire un code terrible. D\u00e9compose toute fonctionnalit\u00e9 en au moins 3 \u00e0 5 demandes s\u00e9quentielles.<\/em><\/p>\n\n\n<\/blockquote>\n\n\n<p>Si tu ne peux pas identifier l&#8217;ensemble minimal de fonctionnalit\u00e9s, utilise le \u00ab\u00a0<strong>Mode Plan<\/strong>\u00a0\u00bb ou le \u00ab\u00a0<strong>Mode Chat<\/strong>\u00a0\u00bb disponible dans la plupart des outils de codage IA.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1715\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode.webp\" alt=\"Interface Claude Code montrant un \u00e9tat vide avec un personnage en pixel art et une invite \u00e0 taper \/model pour s\u00e9lectionner l'outil de codage IA.\" class=\"wp-image-77866 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-280x300.webp 280w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-955x1024.webp 955w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-768x823.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-1433x1536.webp 1433w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-600x643.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-1200x1286.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-730x782.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-1460x1565.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-784x840.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-1568x1681.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10_claude_plan_mode-877x940.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1715;\" \/><\/figure>\n\n\n<p>Cela te permet de dire \u00e0 l&#8217;agent ce que tu veux en langage naturel et permet \u00e0 l&#8217;IA de d\u00e9terminer comment diviser l&#8217;application en fonctionnalit\u00e9s ou fichiers individuels.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-commit-to-git-after-every-working-feature\">2. Valide Sur Git Apr\u00e8s Chaque Fonctionnalit\u00e9 Op\u00e9rationnelle<\/h3>\n\n\n<p>Pour un non-d\u00e9veloppeur, le contr\u00f4le de version peut sembler compliqu\u00e9, mais c\u2019est un ajout n\u00e9cessaire. Git est un outil de contr\u00f4le de version qui cr\u00e9e des points de restauration lorsque l&#8217;ajout de fonctionnalit\u00e9s perturbe les fonctionnalit\u00e9s existantes.&nbsp;<\/p>\n\n\n<p><strong>Workflow Git pour le codage vibe :<\/strong><\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Initialise le d\u00e9p\u00f4t avant la premi\u00e8re invite<\/li>\n\n\n\n<li>Valide apr\u00e8s la premi\u00e8re version fonctionnelle<\/li>\n\n\n\n<li>Cr\u00e9e une nouvelle branche pour chaque ajout de fonctionnalit\u00e9<\/li>\n\n\n\n<li>Valide fr\u00e9quemment pendant le d\u00e9veloppement de la fonctionnalit\u00e9<\/li>\n\n\n\n<li>Teste minutieusement avant de fusionner avec la branche principale<\/li>\n\n\n<\/ol>\n\n\n<p>Tu peux demander \u00e0 l&#8217;agent de codage de ton choix de le faire pour toi si tu n&#8217;es pas \u00e0 l&#8217;aise avec les <a href=\"https:\/\/www.dreamhost.com\/blog\/git-commands\/\">commandes Git<\/a>.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-design-for-extension-in-initial-prompts\">3. Conception Pour L&#8217;Extension Dans Les Invites Initiales<\/h3>\n\n\n<p>Ta premi\u00e8re instruction d\u00e9finit la base de code. Des instructions simples te donneront seulement une application fonctionnelle jusqu&#8217;\u00e0 ce que tu commences \u00e0 demander de nouvelles fonctionnalit\u00e9s.&nbsp;<\/p>\n\n\n<p>Demande plut\u00f4t une architecture extensible d\u00e8s le d\u00e9but.&nbsp;<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Phrase d&#8217;introduction inefficace :<\/strong> &#8220;Construis un app de suivi de jardin o\u00f9 je peux enregistrer ce que j&#8217;ai plant\u00e9 et r\u00e9colt\u00e9.&#8221;<\/li>\n\n\n\n<li><strong>Phrase d&#8217;introduction efficace :<\/strong> &#8220;Construis une application de suivi de jardin avec un sch\u00e9ma de base de donn\u00e9es extensible qui peut int\u00e9grer des fonctionnalit\u00e9s futures. Utilise une architecture modulaire o\u00f9 les composants du frontend, les points de terminaison de l&#8217;API et l&#8217;acc\u00e8s \u00e0 la base de donn\u00e9es sont s\u00e9par\u00e9s. Inclut une documentation claire du sch\u00e9ma et de la structure de l&#8217;API pour les modifications futures.&#8221;<\/li>\n\n\n<\/ul>\n\n\n<p>Cela augmente initialement l&#8217;utilisation des jetons. Cependant, lorsque tu commences \u00e0 ajouter de nouvelles fonctionnalit\u00e9s, l&#8217;IA n&#8217;aura pas besoin de gaspiller des jetons pour refactoriser l&#8217;ancien code afin de traiter les demandes.&nbsp;<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-4-choose-tools-based-on-architectural-stability\">4. Choisis Les Outils Bas\u00e9s Sur La Stabilit\u00e9 Architecturale<\/h3>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Bolt.new, Replit agent, et Lovable :<\/strong> Excellent pour les prototypes \u00e0 session unique et le d\u00e9ploiement facile. Peu adapt\u00e9 pour les ajouts de fonctionnalit\u00e9s multi-sessions. L&#8217;architecture devient progressivement plus fragile \u00e0 chaque modification.<\/li>\n\n\n\n<li><strong>Claude\/OpenAI\/Gemini coding agents :<\/strong> Parfois utiles pour le codage complexe, mais peuvent sembler plus compliqu\u00e9s compar\u00e9s aux applications web visuelles que nous avons vues auparavant.<\/li>\n\n\n\n<li><strong>DreamHost Liftoff :<\/strong> Excellent comme fondation WordPress avec des sch\u00e9mas d&#8217;extensibilit\u00e9 \u00e9prouv\u00e9s. L&#8217;architecture WordPress est con\u00e7ue pour la modification et l&#8217;ajout de plugins. Cela r\u00e9sout le probl\u00e8me d&#8217;architecture non extensible en commen\u00e7ant avec une fondation extensible \u00e9prouv\u00e9e au combat.<\/li>\n\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-5-implement-security-from-hour-one\">5. Impl\u00e9menter La S\u00e9curit\u00e9 D\u00e8s La Premi\u00e8re Heure<\/h3>\n\n\n<p>Comme pour l&#8217;extensibilit\u00e9, tu veux int\u00e9grer la s\u00e9curit\u00e9 d\u00e8s la premi\u00e8re sollicitation. Donc, en plus de demander une architecture extensible et modulaire, tu veux \u00e9galement ajouter des composants orient\u00e9s s\u00e9curit\u00e9 au prompt initial.<\/p>\n\n\n<p><strong>Voici un exemple de comment j&#8217;ajouterais de la s\u00e9curit\u00e9 dans la premi\u00e8re invite :<\/strong> <em>&#8220;Construis une application de suivi de jardin avec le hachage de mot de passe bcrypt, la validation des entr\u00e9es sur tous les champs, des requ\u00eates SQL param\u00e9tr\u00e9es pour pr\u00e9venir les attaques par injection, une limitation de d\u00e9bit sur tous les points de terminaison de l&#8217;API, et des secrets stock\u00e9s dans des variables d&#8217;environnement jamais expos\u00e9es au code frontend.&#8221;<\/em><\/p>\n\n\n<p><strong>Si tu d\u00e9veloppes une application orient\u00e9e client, voici quelques points \u00e0 garder \u00e0 l&#8217;esprit :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Ne fais jamais confiance aux donn\u00e9es du client\u2014valide et assainis c\u00f4t\u00e9 serveur<\/li>\n\n\n\n<li>Garde les secrets dans les variables d&#8217;environnement<\/li>\n\n\n\n<li>V\u00e9rifie les permissions pour chaque action<\/li>\n\n\n\n<li>Utilise des messages d&#8217;erreur g\u00e9n\u00e9riques\u2014des logs d\u00e9taill\u00e9s uniquement pour les d\u00e9veloppeurs<\/li>\n\n\n\n<li>Impl\u00e9mente des v\u00e9rifications de propri\u00e9t\u00e9 pour pr\u00e9venir l&#8217;acc\u00e8s non autoris\u00e9 aux donn\u00e9es<\/li>\n\n\n\n<li>Prot\u00e8ge les API avec des limites de taux<\/li>\n\n\n<\/ul>\n\n\n<p>Comprendre <a href=\"https:\/\/www.dreamhost.com\/blog\/guide-to-generative-ai\/\">comment fonctionne l&#8217;IA g\u00e9n\u00e9rative<\/a> t&#8217;aide \u00e0 reconna\u00eetre quand l&#8217;IA fait des suppositions de s\u00e9curit\u00e9 qui cr\u00e9ent des vuln\u00e9rabilit\u00e9s.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-6-know-when-to-start-fresh-vs-continue\">6. Savoir Quand Recommencer \u00c0 Z\u00e9ro Ou Continuer<\/h3>\n\n\n<p>Reconnais les signes indiquant que continuer gaspillera des jetons.<\/p>\n\n\n<p><strong>Commencer \u00e0 neuf quand :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>La consommation de jetons d\u00e9passe les 300k sans fonctionnalit\u00e9s op\u00e9rationnelles<\/li>\n\n\n\n<li>Chaque correction de bug introduit deux nouveaux bugs<\/li>\n\n\n\n<li>Les modifications architecturales compromettent plusieurs fonctionnalit\u00e9s existantes<\/li>\n\n\n\n<li>L&#8217;historique du chat d\u00e9passe les 30 \u00e9changes<\/li>\n\n\n\n<li>Tu ne peux pas expliquer l&#8217;architecture actuelle de la base de code<\/li>\n\n\n<\/ul>\n\n\n<p><strong>Continue quand :<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Les nouvelles fonctionnalit\u00e9s s&#8217;int\u00e8grent proprement au code existant<\/li>\n\n\n\n<li>Les corrections de bugs r\u00e9solvent les probl\u00e8mes sans effets secondaires<\/li>\n\n\n\n<li>La consommation de tokens reste dans les budgets<\/li>\n\n\n\n<li>L&#8217;architecture reste compr\u00e9hensible<\/li>\n\n\n<\/ul>\n\n\n<p>Quand l&#8217;IA se trompe et prend la mauvaise direction, revenir, modifier l&#8217;invite et renvoyer serait bien mieux que de compl\u00e9ter ce code merdique.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-7-review-with-ai-security-analysis\">7. Revue Avec Analyse de S\u00e9curit\u00e9 IA<\/h3>\n\n\n<p>Apr\u00e8s avoir construit les fonctionnalit\u00e9s principales, copie la base de code compl\u00e8te vers Gemini 2.5 Pro pour une analyse de s\u00e9curit\u00e9 compl\u00e8te. Je pr\u00e9f\u00e8re ce mod\u00e8le de langage en raison de sa large fen\u00eatre de contexte de deux millions de jetons, ce qui te permet de d\u00e9placer toute la base de code dedans.&nbsp;<\/p>\n\n\n<p><strong>Invite \u00e0 la r\u00e9vision de s\u00e9curit\u00e9 :<\/strong> <em>&#8220;Agis comme un expert en s\u00e9curit\u00e9. Analyse ce code source complet pour d\u00e9tecter les vuln\u00e9rabilit\u00e9s. Identifie les risques d&#8217;injection SQL, les vuln\u00e9rabilit\u00e9s XSS, les faiblesses d&#8217;authentification, les d\u00e9fauts d&#8217;autorisation, l&#8217;exposition des identifiants et tout probl\u00e8me du Top 10 de l&#8217;OWASP. Fournis des emplacements de code sp\u00e9cifiques et des recommandations de rem\u00e9diation.&#8221;<\/em><\/p>\n\n\n<p>Cela \u00e9quivaut \u00e0 une \u00e9valuation de s\u00e9curit\u00e9 professionnelle pour une fraction du co\u00fbt.&nbsp;<\/p>\n\n\n<p>Il est insuffisant pour un d\u00e9ploiement en production, mais il identifie les d\u00e9fauts catastrophiques dans les prototypes avant qu&#8217;ils n&#8217;atteignent les utilisateurs.<\/p>\n\n\n<h2 id=\"h-when-does-vibe-coding-make-business-sense\" class=\"wp-block-heading\">Quand Le Codage Vibe A-t-il Un Sens Commercial ?<\/h2>\n\n\n<p>Tu n&#8217;as pas besoin de renoncer compl\u00e8tement \u00e0 coder avec vibe juste parce que cela ne permet pas de cr\u00e9er des applications compliqu\u00e9es pour le moment. Voici quelques cas o\u00f9 je pense qu&#8217;un prototype ou une application cod\u00e9e avec vibe a vraiment du sens.<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Validation Rapide des Concepts :<\/strong> Construis des prototypes en quelques heures pour tester l&#8217;int\u00e9r\u00eat du march\u00e9. Le co\u00fbt moyen de validation est pass\u00e9 de 15 000 $ \u00e0 plus de 100 000 $ \u00e0 moins de 500 $. Utilise le codage vibe pour r\u00e9pondre \u00e0 : &#8220;Les clients veulent-ils cela assez pour l&#8217;utiliser ?&#8221;<\/li>\n\n\n\n<li><strong>Automatisation des Processus Internes :<\/strong> Fournis des outils \u00e0 ton \u00e9quipe o\u00f9 tu contr\u00f4les l&#8217;acc\u00e8s et acceptes une tol\u00e9rance au risque plus \u00e9lev\u00e9e car le rayon d&#8217;impact reste limit\u00e9. Les outils internes peuvent \u00e9voluer vers la s\u00e9curit\u00e9 au lieu de la n\u00e9cessiter d\u00e8s le premier jour.<\/li>\n\n\n\n<li><strong>Sp\u00e9cification Pr\u00e9-D\u00e9veloppement :<\/strong> Comprends les exigences avant <a href=\"https:\/\/www.dreamhost.com\/blog\/how-to-hire-web-developer\/\">d&#8217;embaucher des d\u00e9veloppeurs<\/a> pour r\u00e9duire les co\u00fbteux malentendus. Les prototypes cod\u00e9s vibe servent de documents d&#8217;exigences interactifs.<\/li>\n\n\n\n<li><strong>MVP pour la Lev\u00e9e de Fonds :<\/strong> D\u00e9montre la fonctionnalit\u00e9 aux investisseurs tout en \u00e9tant transparent sur la maturit\u00e9 technique. De nombreuses startups utilisent des MVP cod\u00e9s vibe pour s\u00e9curiser des fonds de d\u00e9marrage, puis reconstruisent correctement avec des \u00e9quipes professionnelles.<\/li>\n\n\n<\/ul>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-when-professional-development-becomes-non-negotiable\">Quand Le D\u00e9veloppement Professionnel Devient Incontournable<\/h3>\n\n\n<p>Les applications orient\u00e9es client traitant des donn\u00e9es d&#8217;utilisateurs requi\u00e8rent une \u00e9valuation de s\u00e9curit\u00e9 professionnelle. Le co\u00fbt d&#8217;une mise en \u0153uvre incorrecte de la s\u00e9curit\u00e9 d\u00e9passe toutes les \u00e9conomies r\u00e9alis\u00e9es par la programmation intuitive.<\/p>\n\n\n<p>Certaines situations o\u00f9 tu as besoin d&#8217;une r\u00e9vision professionnelle incluent&nbsp;:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Authentification multi-utilisateur<\/li>\n\n\n\n<li>Traitement des paiements<\/li>\n\n\n\n<li>Stockage des informations personnelles<\/li>\n\n\n\n<li>D\u00e9ploiement public<\/li>\n\n\n\n<li>Situations impliquant des exigences de conformit\u00e9 (telles que GDPR, CCPA, HIPAA)<\/li>\n\n\n<\/ul>\n\n\n<p>Le PDG de Microsoft a r\u00e9v\u00e9l\u00e9 que <a href=\"https:\/\/www.cnbc.com\/2025\/04\/29\/satya-nadella-says-as-much-as-30percent-of-microsoft-code-is-written-by-ai.html\">30 % du code de l&#8217;entreprise<\/a> est d\u00e9sormais g\u00e9n\u00e9r\u00e9 par l&#8217;IA. Google a rapport\u00e9 des <a href=\"https:\/\/abc.xyz\/investor\/events\/event-details\/2025\/2025-Q1-Earnings-Call\/\">chiffres similaires<\/a>. Les deux entreprises maintiennent des processus d&#8217;examen de s\u00e9curit\u00e9 approfondis, des tests automatis\u00e9s et une supervision humaine.&nbsp;<\/p>\n\n\n<p>Le d\u00e9ploiement en production n\u00e9cessite des garanties similaires, quelle que soit la m\u00e9thode de g\u00e9n\u00e9ration de code.<\/p>\n\n\n<p>Comprendre <a href=\"https:\/\/www.dreamhost.com\/blog\/will-ai-replace-developers\/\">si l&#8217;IA remplacera les d\u00e9veloppeurs<\/a> aide \u00e0 d\u00e9finir des attentes r\u00e9alistes sur ce que tu peux construire et d\u00e9ployer seul. Explore les <a href=\"https:\/\/www.dreamhost.com\/blog\/best-online-resources-learn-to-code\/\">meilleures ressources en ligne pour apprendre \u00e0 coder<\/a> afin de combler le foss\u00e9 entre les prototypes de codage ambiance et les syst\u00e8mes pr\u00eats \u00e0 la production.<\/p>\n\n\n<h2 id=\"h-faqs-about-vibe-coding\" class=\"wp-block-heading\">FAQ Sur Le Codage Vibe<\/h2>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-is-vibe-coding-and-how-is-it-different-from-traditional-programming\">Qu&#8217;est-ce que le coding vibe, et en quoi est-il diff\u00e9rent de la programmation traditionnelle ?<\/h3>\n\n\n<p>Le vibe coding est le processus de cr\u00e9ation d&#8217;applications en d\u00e9crivant les exigences en anglais simple \u00e0 une IA, qui g\u00e9n\u00e8re le code pour toi. Contrairement \u00e0 la programmation traditionnelle, qui exige la connaissance des langages de programmation, le vibe coding se concentre sur la gestion de produit et l&#8217;intention plut\u00f4t que sur le codage manuel.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-can-non-developers-build-production-ready-apps-using-vibe-coding\">Les non-d\u00e9veloppeurs peuvent-ils cr\u00e9er des applications pr\u00eates pour la production en utilisant la programmation Vibe ?<\/h3>\n\n\n<p>Alors que le codage par vibe permet aux non-d\u00e9veloppeurs de prototyper rapidement des applications fonctionnelles, la plupart des codes g\u00e9n\u00e9r\u00e9s par IA manquent de la s\u00e9curit\u00e9 et de la robustesse n\u00e9cessaires pour un d\u00e9ploiement en production. Cela dit, les prototypes cod\u00e9s par vibe sont excellents pour la validation de concepts.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-are-the-biggest-risks-of-using-ai-generated-code-for-app-development\">Quels sont les plus grands risques de l&#8217;utilisation de code g\u00e9n\u00e9r\u00e9 par IA pour le d\u00e9veloppement d&#8217;applications ?<\/h3>\n\n\n<p>Les risques les plus significatifs incluent les failles de s\u00e9curit\u00e9 (comme l&#8217;absence de validation, d&#8217;authentification, de limitation de taux et de protection contre les injections SQL), une architecture non extensible et l&#8217;accumulation de fonctionnalit\u00e9s qui conduit \u00e0 des syst\u00e8mes fragiles ou d\u00e9fectueux. La br\u00e8che de l&#8217;application TEA est un exemple de d\u00e9veloppement rapide sans r\u00e9vision de s\u00e9curit\u00e9 ad\u00e9quate, entra\u00eenant des cons\u00e9quences catastrophiques.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-when-does-it-make-sense-to-use-vibe-coding-for-real-business-projects\">Quand est-il judicieux d&#8217;utiliser le codage Vibe pour de r\u00e9els projets commerciaux ?<\/h3>\n\n\n<p>La programmation Vibe est id\u00e9ale pour les prototypes rapides, les outils internes, la sp\u00e9cification pr\u00e9-d\u00e9veloppement (collecte des exigences) et les MVP pour la lev\u00e9e de fonds. Cependant, pour les applications orient\u00e9es client ou celles qui traitent des donn\u00e9es sensibles, investis toujours dans un d\u00e9veloppement professionnel et des revues de s\u00e9curit\u00e9.<\/p>\n\n\n<h2 id=\"h-the-bottom-line-know-your-architectural-limits\" class=\"wp-block-heading\">L&#8217;Essentiel : Connais Tes Limites Architecturales<\/h2>\n\n\n<p>Ma grand-m\u00e8re maintient son suivi de jardin simplifi\u00e9 pour usage personnel. Elle a \u00e9galement ajout\u00e9 des analyses fonctionnelles (le bouton de la barre de navigation ne menait nulle part auparavant) pour voir comment son jardin se porte.&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1572\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics.webp\" alt=\"Tableau de bord montrant les analyses de performance des plantes avec deux saisons de donn\u00e9es, mettant en \u00e9vidence 22 r\u00e9coltes de basilic au printemps et 5,6 livres de concombres en \u00e9t\u00e9\" class=\"wp-image-77867 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-300x295.webp 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-1024x1006.webp 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-768x755.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-1536x1509.webp 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-600x590.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-1200x1179.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-730x717.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-1460x1434.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-784x770.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-1568x1541.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_functional_analytics-877x862.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1572;\" \/><\/figure>\n\n\n<p>Cela fonctionne comme une application mono-utilisateur. Si tu construis une plateforme pour plusieurs clients, tu pourrais toujours cr\u00e9er des prototypes cod\u00e9s sur l&#8217;ambiance, des MVPs, etc., pour lancer le projet. Mais se reposer uniquement sur le codage d&#8217;ambiance sans comprendre ce qui se passe revient simplement \u00e0 r\u00e9p\u00e9ter l&#8217;histoire de l&#8217;application TEA.&nbsp;<\/p>\n\n\n<p>Vibe coding d\u00e9mocratise la cr\u00e9ation de logiciels tout en introduisant de nouvelles responsabilit\u00e9s. Tu peux construire des applications en 30 minutes. Cependant, tu dois comprendre les limites architecturales, les implications de s\u00e9curit\u00e9 et les mod\u00e8les de consommation de jetons avant de les distribuer aux utilisateurs.<\/p>\n\n\n<p>L&#8217;avenir appartient aux constructeurs qui comprennent l&#8217;\u00e9cart entre le prototype et la production.&nbsp;<\/p>\n\n\n<p>Pr\u00eat \u00e0 construire ta premi\u00e8re application web ? Commence avec <a href=\"https:\/\/www.dreamhost.com\/features\/ai-website-builder\/\">DreamHost Liftoff<\/a> pour une programmation sous WordPress avec une architecture extensible, un h\u00e9bergement g\u00e9r\u00e9, une infrastructure de s\u00e9curit\u00e9, et une scalabilit\u00e9 \u00e9prouv\u00e9e d\u00e8s le premier jour. Construis rapidement. \u00c9tends en toute s\u00e9curit\u00e9. Poss\u00e8de ton code.<\/p>\n\n\n\n<div class=\"article-cta-shared article-cta-small article-cta--product\">\n\t<div class=\"tr-img-wrap-outer jsLoading\"><img decoding=\"async\" class=\"js-img-lazy \" src=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/lazy-loading-transparent.webp\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/product-cta-pro-services-design-877x586.webp 1x, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/product-cta-pro-services-design.webp 2x\"  \/><\/div>\n\n\t<a href='https:\/\/www.dreamhost.com\/pro-services\/design\/' class='link-top' target='_blank' rel='noopener noreferrer'>\n\t\t<span>Pro Services &#8211; Design<\/span>\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\" width=\"15\"><path d=\"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg>\n\t<\/a>\n\n\t<div class=\"content-btm\">\n\t\t<h2 class=\"h2--md\">\n\t\t\tBeautiful Websites, Designed From Scratch\n\t\t<\/h2>\n\t\t<p class=\"p--md\">\n\t\t\tStand out from the crowd with a modern WordPress website that\u2019s 100% unique to you.\n\t\t<\/p>\n\n\t\t        <a\n            href=\"https:\/\/www.dreamhost.com\/pro-services\/design\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            See More                    <\/a>\n\n\t<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Ma grand-m\u00e8re a g\u00e9r\u00e9 des tableurs d&#8217;inventaire pour une entreprise de textile pendant 40 ans. Elle calcule les remises compos\u00e9es dans sa t\u00eate plus rapidement que la plupart des gens avec des calculatrices, mais elle n&#8217;a aucune exp\u00e9rience en codage. Quand j&#8217;ai sugg\u00e9r\u00e9 de construire ensemble une application de suivi de jardin en utilisant l&#8217;IA, son scepticisme a \u00e9t\u00e9 presque instantan\u00e9. Deux heures plus tard, elle avait un site web fonctionnel [\u2026]<\/p>\n","protected":false},"author":1058,"featured_media":77870,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_metadesc":"","toc_headlines":"[[\"h-first-what-is-vibe-coding\",\"D'abord, Qu'est-Ce Que Le Vibe Coding ?\"],[\"h-what-happened-in-hour-one-simple-instructions-worked\",\"Que S'est-Il Pass\u00e9 Dans La Premi\u00e8re Heure ? Des Instructions Simples Ont Fonctionn\u00e9\"],[\"h-what-happened-in-hour-two-feature-creep-became-obvious\",\"Que S'est-Il Pass\u00e9 \u00e0 la Deuxi\u00e8me Heure ? L'Extension Des Fonctionnalit\u00e9s Est Devenue \u00c9vidente\"],[\"h-what-happened-in-hour-three-token-exhaustion-and-barely-functional-code-emerged\",\"Que S'est-il Pass\u00e9 \u00e0 la Troisi\u00e8me Heure ? \u00c9puisement des Jetons et Code \u00e0 Peine Fonctionnel Apparu\"],[\"h-how-to-vibe-code-without-experiencing-the-same-problems-we-did\",\"Comment Coder Avec Vibe Sans Rencontrer Les M\u00eames Probl\u00e8mes Que Nous\"],[\"h-when-does-vibe-coding-make-business-sense\",\"Quand Le Codage Vibe A-t-il Un Sens Commercial ?\"],[\"h-faqs-about-vibe-coding\",\"FAQ Sur Le Codage Vibe\"],[\"h-the-bottom-line-know-your-architectural-limits\",\"L'Essentiel : Connais Tes Limites Architecturales\"]]","hide_toc":false,"footnotes":""},"categories":[14973],"tags":[],"class_list":["post-78738","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-fr"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>J\u2019ai Appris \u00c0 Ma Grand-M\u00e8re \u00c0 Coder Le Vibe (Voici Ce Qui S\u2019est Pass\u00e9) - DreamHost Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"J\u2019ai Appris \u00c0 Ma Grand-M\u00e8re \u00c0 Coder Le Vibe (Voici Ce Qui S\u2019est Pass\u00e9)\" \/>\n<meta property=\"og:description\" content=\"Ma grand-m\u00e8re a g\u00e9r\u00e9 des tableurs d&#039;inventaire pour une entreprise de textile pendant 40 ans. Elle calcule les remises compos\u00e9es dans sa t\u00eate plus rapidement que la plupart des gens avec des calculatrices, mais elle n&#039;a aucune exp\u00e9rience en codage. Quand j&#039;ai sugg\u00e9r\u00e9 de construire ensemble une application de suivi de jardin en utilisant l&#039;IA, son scepticisme a \u00e9t\u00e9 presque instantan\u00e9. Deux heures plus tard, elle avait un site web fonctionnel [\u2026]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-26T19:51:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-12T20:15:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"1095\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Ian Hernandez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ian Hernandez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"J\u2019ai Appris \u00c0 Ma Grand-M\u00e8re \u00c0 Coder Le Vibe (Voici Ce Qui S\u2019est Pass\u00e9) - DreamHost Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/","og_locale":"en_US","og_type":"article","og_title":"J\u2019ai Appris \u00c0 Ma Grand-M\u00e8re \u00c0 Coder Le Vibe (Voici Ce Qui S\u2019est Pass\u00e9)","og_description":"Ma grand-m\u00e8re a g\u00e9r\u00e9 des tableurs d'inventaire pour une entreprise de textile pendant 40 ans. Elle calcule les remises compos\u00e9es dans sa t\u00eate plus rapidement que la plupart des gens avec des calculatrices, mais elle n'a aucune exp\u00e9rience en codage. Quand j'ai sugg\u00e9r\u00e9 de construire ensemble une application de suivi de jardin en utilisant l'IA, son scepticisme a \u00e9t\u00e9 presque instantan\u00e9. Deux heures plus tard, elle avait un site web fonctionnel [\u2026]","og_url":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2025-11-26T19:51:48+00:00","article_modified_time":"2026-01-12T20:15:45+00:00","og_image":[{"width":1460,"height":1095,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp","type":"image\/webp"}],"author":"Ian Hernandez","twitter_card":"summary_large_image","twitter_creator":"@dreamhost","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Ian Hernandez","Est. reading time":"22 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/#article","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/"},"author":{"name":"Ian Hernandez","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96"},"headline":"J\u2019ai Appris \u00c0 Ma Grand-M\u00e8re \u00c0 Coder Le Vibe (Voici Ce Qui S\u2019est Pass\u00e9)","datePublished":"2025-11-26T19:51:48+00:00","dateModified":"2026-01-12T20:15:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/"},"wordCount":5090,"publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp","articleSection":["IA"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/","name":"J\u2019ai Appris \u00c0 Ma Grand-M\u00e8re \u00c0 Coder Le Vibe (Voici Ce Qui S\u2019est Pass\u00e9) - DreamHost Blog","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/#primaryimage"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp","datePublished":"2025-11-26T19:51:48+00:00","dateModified":"2026-01-12T20:15:45+00:00","breadcrumb":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/#primaryimage","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095_blog_hero_how_to_vibe_code-1.webp","width":1460,"height":1095,"caption":"I Taught My Grandma To Vibe Code (What Happened)"},{"@type":"BreadcrumbList","@id":"https:\/\/www-dev.dreamhost.com\/blog\/fr\/jai-appris-a-ma-grand-mere-a-coder-le-vibe-voici-ce-qui-sest-passe-fr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"J\u2019ai Appris \u00c0 Ma Grand-M\u00e8re \u00c0 Coder Le Vibe (Voici Ce Qui S\u2019est Pass\u00e9)"}]},{"@type":"WebSite","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website","url":"https:\/\/www-dev.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www-dev.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www-dev.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96","name":"Ian Hernandez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","caption":"Ian Hernandez"},"description":"Ian is a Product Designer based in Los Angeles, California. He is responsible for driving brand and product design at DreamHost, developing and maintaining our internal design system, and writing frontend code when he can. In his free time, he enjoys walking his dog, learning history, and discovering new music online and irl. Connect with him on LinkedIn: https:\/\/www.linkedin.com\/in\/ianhernandez23\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/author\/ianh\/"}]}},"lang":"fr","translations":{"fr":78738,"es":77777,"en":77844,"de":78687,"it":78701,"pt":78730,"pl":78752,"nl":78760,"uk":78899,"ru":78968},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/78738","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/1058"}],"replies":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/comments?post=78738"}],"version-history":[{"count":3,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/78738\/revisions"}],"predecessor-version":[{"id":78879,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/78738\/revisions\/78879"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/77870"}],"wp:attachment":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=78738"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=78738"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=78738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}