Tu veux les meilleurs outils IA avant les autres ?
On teste et on décrypte les nouveaux outils IA chaque soir, en 5 min. Gratuit.
Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.
Choisis ton rythme
Gratuit · Pas de spam · Désabonnement en 1 clic
Phases d'adoption de l'IA
Lors du Pragmatic Summit, la discussion a débuté par une exploration approfondie des étapes que traversent les développeurs de logiciels lorsqu'ils intègrent des outils de codage basés sur l'intelligence artificielle. Le parcours commence souvent par l'utilisation de ChatGPT pour obtenir des réponses à des questions spécifiques. Progressivement, les développeurs passent à des agents de codage plus avancés, capables de générer des portions de code. Un tournant significatif se produit lorsque ces agents commencent à produire plus de code que le développeur lui-même. Pour l'auteur de la discussion, ce moment clé s'est produit il y a environ six mois.
Une évolution radicale a été observée il y a environ trois semaines : les développeurs ne lisent plus le code généré. Par exemple, StrongDM a annoncé la semaine dernière une approche où ni l'écriture ni la lecture de code ne sont nécessaires, ce qui soulève des questions sur la responsabilité et la sécurité, surtout pour une entreprise spécialisée dans les logiciels de sécurité.
Faire confiance à la sortie de l'IA
Un autre sujet crucial abordé était la confiance que l'on peut accorder aux résultats fournis par l'IA. Dans le passé, travailler dans une grande entreprise impliquait de faire confiance aux services développés par d'autres équipes, en se basant sur leur documentation sans nécessairement vérifier leur code. Cette analogie est utilisée pour illustrer la confiance que l'on peut accorder à une IA. Opus 4.5 est un exemple d'outil qui a su gagner cette confiance, notamment pour des tâches spécifiques comme la création d'une API JSON. L'auteur se sent désormais très confiant que pour les classes de problèmes déjà rencontrées, cet outil ne fera pas d'erreurs. Lorsqu'il demande à l'IA de construire une API qui interroge une base de données et renvoie les données paginées, il obtient systématiquement la bonne réponse.
Développement piloté par les tests avec des agents
Le développement piloté par les tests (TDD) est une méthode qui a été revisitée avec l'aide des agents de codage. Chaque session de codage commence par l'exécution de tests, souvent via la commande uv run pytest. L'utilisation du TDD rouge-vert est simplifiée par les agents, qui comprennent cette approche et l'appliquent efficacement. Bien que le TDD ait pu sembler laborieux par le passé, l'automatisation par les agents le rend plus acceptable.
Certains développeurs omettent encore d'écrire des tests, ce qui est considéré comme une erreur. Les tests, qui étaient autrefois perçus comme une surcharge de travail, sont désormais facilités par les agents, rendant leur absence injustifiable. L'auteur a récemment écrit davantage sur le TDD pour les agents de codage dans un article intitulé Red/green TDD. Il admet avoir détesté le TDD test-first tout au long de sa carrière, le trouvant fastidieux et ralentissant son travail. Cependant, laisser les agents s'en charger est acceptable, même si cela implique qu'ils passent du temps sur des tests qui ne fonctionnent pas.
Tests manuels et Showboat
L'importance des tests manuels a été soulignée, malgré leur apparente contradiction avec l'automatisation. Les tests automatisés ne garantissent pas toujours le bon fonctionnement d'un serveur web. Pour pallier cela, des outils comme Showboat ont été développés. Showboat génère un document markdown des tests manuels effectués, offrant une vue d'ensemble des vérifications réalisées et des résultats obtenus. L'auteur explique qu'il demande à ses agents de démarrer le serveur en arrière-plan et d'utiliser curl pour tester l'API créée. Cette méthode permet souvent de découvrir de nouveaux bugs que les tests automatisés n'ont pas couverts.
Développement guidé par la conformité
Un projet récent a démontré l'efficacité du développement guidé par la conformité. En cherchant à ajouter des fonctionnalités de téléchargement de fichiers à Datasette, une suite de tests a été construite pour plusieurs frameworks web, dont Go, Node.js, Django et Starlette. Cette approche a permis de créer une implémentation conforme aux standards, illustrant la puissance de cette méthode. L'auteur a pu rétroconcevoir six implémentations d'un standard pour obtenir un nouveau standard, qu'il a ensuite utilisé pour implémenter dans Datasette.
La qualité du code est-elle importante ?
La qualité du code dépend fortement du contexte. Pour des projets éphémères, la qualité peut être secondaire. Cependant, pour des projets à long terme, elle devient cruciale. Les agents de codage peuvent produire du code de qualité variable, et il incombe aux développeurs de décider de l'améliorer ou non. L'agent peut être utilisé pour effectuer des refactorisations que le développeur pourrait négliger par manque de temps. L'auteur souligne que si un agent produit 2 000 lignes de mauvais code et que le développeur choisit de l'ignorer, c'est un choix délibéré. Cependant, en repérant un petit refactoring à la fin qui prendrait une heure, il préfère laisser l'agent s'en charger pendant qu'il va promener le chien.
Modèles et gabarits de code
Les agents de codage excellent dans la cohérence. En utilisant des modèles prédéfinis, ils peuvent maintenir une uniformité dans la base de code. Cela facilite l'intégration continue et assure que les nouveaux ajouts respectent les standards établis. L'auteur commence la plupart de ses projets en clonant un modèle, ce qui place les tests au bon endroit et configure l'intégration continue GitHub. Même avoir juste un ou deux tests dans le style préféré signifie que l'agent écrira des tests dans ce même style. Il souligne l'importance de maintenir une base de code de haute qualité, car l'agent y ajoutera alors de manière qualitative.
Injection de prompt et le trifecta létal
L'utilisation de modèles de langage (LLMs) dans le développement logiciel externalise certaines décisions. Cependant, ces modèles sont vulnérables à des manipulations, similaires à l'injection SQL. Contrairement à l'injection SQL, il est difficile de distinguer les données des instructions dans les LLMs, rendant la sécurisation plus complexe. L'auteur a nommé ce problème en référence à l'injection SQL, car le problème initial résidait dans la combinaison de texte de confiance et de texte non fiable. Cependant, il reconnaît que ce nom était un mauvais choix, car il n'existe pas de moyen fiable de paramétrer les requêtes avec les LLMs.
Sécuriser les agents de codage
La sécurité des agents de codage est un défi, surtout lorsqu'ils sont exécutés sur des machines locales. Le sandboxing est essentiel pour limiter les dommages potentiels en cas de dysfonctionnement ou d'instructions malveillantes. Des solutions comme Claude Code pour le web, qui fonctionnent dans des environnements contrôlés, offrent une sécurité accrue en exécutant des tâches dans des conteneurs gérés par des tiers comme Anthropic. L'auteur utilise Claude sur son téléphone car il fonctionne dans un conteneur sécurisé, permettant de lancer une VM Linux, de récupérer un dépôt git et de résoudre des problèmes en toute sécurité.




