🍪🤖 Mesurer la pertinence de Claude Code pour coder nos plateformes Ruby on Rails
Temps de lecture : 5 minutes
Hello les petits Biscuits !
Bienvenue sur la 38ème édition de Ruby Biscuit.
Vous êtes maintenant 598 abonnés 🥳
Maintenant Ruby biscuit, c’est aussi votre meilleur allié pour recruter des devs Ruby !
Si vous n’avez pas encore rejoint le club, RDV sur https://recrutement.rubybiscuit.fr
Bonne lecture.
Je suis développeur back-end chez Capsens, et dans le cadre d’une évaluation de la concurrence en matière d’IA, on m’a donné une semaine pour tester le plan Max de Claude Code. Mon objectif principal était de mesurer l’utilité réelle de cet outil dans notre contexte de développement, d’analyser ses performances et de déterminer s’il offrait des gains de temps notables. Ce test visait également à identifier ses forces et ses limitations, afin de mieux comprendre ce qu’il pourrait apporter à notre manière de concevoir des plateformes, en comparaison avec les outils que nous utilisons habituellement.
Disclaimer
Il me semble important de préciser d’emblée le contexte de ce test : nous n’avons pas consacré un temps considérable à l’optimisation du fichier de configuration CLAUDE.md
, et nous utilisons cet outil pour développer des plateformes relativement complexes. Mon retour d’expérience ne prétend donc pas refléter le potentiel maximal de l’outil dans un environnement parfaitement configuré. Notre chercheuse en IA m’a également apporté son aide sur certains aspects, ce qui a probablement influencé positivement certains résultats. Ce retour reflète avant tout mon expérience personnelle dans ces conditions spécifiques d’utilisation.
Mes impressions
À mon sens, Claude Code est un outil jeune qui nécessite une adaptation par rapport à l’écriture de code traditionnelle.
De prime abord, j’ai trouvé l’expérience un peu déroutante, car il m’a fallu fournir des instructions extrêmement précises et bien structurées pour obtenir un résultat satisfaisant. En effet, j’ai constaté que l’outil semble moins tolérant aux imprécisions ou aux formulations vagues, ce qui m’a obligé à décrire les tâches de manière minutieuse et exhaustive. Ce besoin de précision m’a parfois donné l’impression de ralentir mon processus de développement, car je passais plus de temps à affiner les instructions qu’à écrire du code, ce qui m’a semblé être un contretemps en termes d’efficacité.
Dans mon expérience, l’outil a présenté des comportements parfois imprévisibles, tant dans le code généré que dans la gestion des dépendances. Parfois, il installait des dépendances sans aucune demande préalable, ce qui m’a surpris. J’ai également constaté qu’il n’hésitait pas à supprimer du code que je jugeais utile si cela semblait l’arranger. Cela m’a amené à être particulièrement vigilant concernant les solutions proposées, car j’ai appris qu’il était indispensable de toujours vérifier ce qui avait été modifié ou ajouté avant de l’intégrer.
J’ai trouvé l’expérience utilisateur de Claude Code franchement mauvaise. J’ai constamment eu l’impression de faire de la relecture de code d’un développeur junior. De plus, l’intégration avec le terminal m’a semblé usante et rébarbative. Cependant, l’intégration avec VS Code a légèrement amélioré mon expérience en facilitant la gestion du code et en offrant une interface plus familière. Cela m’a notamment permis une meilleure navigation et une prise en charge plus fluide des suggestions de code. Toutefois, j’ai trouvé que cette intégration restait limitée et ne compensait pas entièrement les lacunes de l’outil, notamment en termes de réactivité.
Points positifs
1. Bonne compréhension du contexte back-end
D’après mon expérience, Claude Code démontre une bonne capacité à comprendre le contexte global back-end de l’application. J’ai remarqué qu’il comprend bien comment Ruby on Rails fonctionne et qu’il arrive donc facilement à naviguer à travers l’application pour faire les modifications. Néanmoins, bien que Claude Code soit généralement capable de naviguer efficacement dans la partie back-end, j’ai observé que son comportement peut parfois être moins prévisible. Il m’est arrivé qu’il nécessite un peu plus de contexte ou d’ajustements pour comprendre pleinement certaines spécificités du projet. En ce qui concerne le front, j’ai constaté que l’outil a encore des limitations dans sa capacité à naviguer de manière autonome dans les fichiers nécessaires. Cela dit, je pense qu’il est possible que ces limitations puissent être atténuées avec un paramétrage plus fin du fichier de configuration CLAUDE.md
.
2. Potentiel pour l’automatisation
J’ai identifié que l’outil montre un fort potentiel pour :
La création de tests unitaires avec une couverture de 100%
La génération de tests d’intégration
La création de données complètes de seed pour les bases de données
3. Potentiel pour les traductions
À mes yeux, Claude Code est très bon dans la gestion des traductions. J’ai constaté qu’il maîtrise bien la syntaxe YAML et propose des traductions relativement pertinentes. En configurant le fichier CLAUDE.md
, j’ai pu automatiser l’ensemble du processus : remplacement automatique des textes en dur par des appels I18n.t()
, génération des clés selon les conventions de nommage, et création des fichiers de locale. Cette automatisation a considérablement réduit le risque d’oublis lors de l’ajout de nouvelles fonctionnalités.
Points négatifs
1. Processus chronophage
J’ai observé que :
La génération de code peut être longue et fastidieuse (autour de 20 s par réponse)
Plus le contexte est important, plus le temps de génération augmente
L’outil nécessite des instructions très détaillées, ce qui réduit selon moi le gain de temps de développement
2. Comportements non maîtrisés
J’ai remarqué une tendance à :
Installer des dépendances non demandées
Nécessiter une vigilance constante de ma part sur les actions automatisées
Introduire des bugs nécessitant des corrections
Prendre en compte le
CLAUDE.md
de manière aléatoire
Exemple concret que j’ai rencontré : un test échoue en raison de l’absence d’une gem. Plutôt que de me proposer de l’installer, il tente de contourner le problème. Je lui demande donc d’installer cette gem, ce qu’il fait, puis il relance les tests qui échouent à nouveau, car il n’a fait qu’installer la gem sans l’intégrer dans le fichier. Au lieu d’examiner comment utiliser la gem, il me propose à nouveau la première solution de contournement.
3. Efficacité questionnée
De mon point de vue :
La qualité du code n’est généralement pas meilleure en comparaison avec du code que je produis moi-même
Le gain de temps n’est pas systématique
Claude Code peut même ralentir mon processus dans certains cas, par exemple :
Lorsqu’il génère du code imprécis ou incomplet, nécessitant des corrections manuelles supplémentaires
Lorsqu’il nécessite un paramétrage fin et complexe, comme dans le cas de la configuration des dépendances ou des fichiers I18n
Lorsqu’il faut lui fournir des instructions très détaillées, ce qui me prend plus de temps que d’écrire directement le code moi-même
4. Nécessité de vérifications constantes
J’ai constaté :
L’importance cruciale de demander l’écriture de tests pour l’auto-correction
Le besoin de superviser toutes les modifications apportées
Le risque d’erreurs nécessitant une révision manuelle
Exemple concret que j’ai vécu : j’avais un problème de configuration du gestionnaire d’assets Sprocket. Plutôt que d’essayer de corriger le problème de manière traditionnelle, il m’a proposé de réécrire directement Sprocket.
5. Fatigue intellectuelle et risque de validation automatique
J’ai expérimenté une forme particulière de fatigue cognitive avec l’utilisation prolongée de l’outil. Passer des heures à relire et valider du code généré automatiquement crée chez moi une lassitude qui peut conduire à des validations hâtives. Je trouve cela particulièrement dangereux car cela me pousse à accepter des solutions médiocres ou inappropriées simplement par épuisement mental.
Conclusion
Selon mon expérience, Claude Code est une technologie émergente avec un bon potentiel, mais qui nécessite encore de nombreuses améliorations. J’ai trouvé que l’outil est particulièrement prometteur pour l’automatisation des tâches répétitives comme la création de tests et la génération de code standardisé.
Mes recommandations :
Utilisation ciblée : Je recommande de privilégier Claude Code pour la génération de tests, de seeds et de code répétitif plutôt que pour le développement principal.
Expérience utilisateur : D’après mon expérience, il vaut mieux privilégier l’intégration VS Code qui, bien que limitée, offre une expérience légèrement plus confortable que le terminal.
Approche progressive : Je suggère de commencer par des tâches simples et d’augmenter progressivement la complexité.
Supervision active : Selon moi, il est essentiel de maintenir une vigilance constante sur le code généré et de systématiquement demander des tests. Je déconseille également de généraliser cet outil chez les développeurs juniors.
Vision stratégique : Je considère Claude Code comme un assistant permettant d’explorer des solutions plus ambitieuses plutôt qu’un simple accélérateur de productivité.
En conclusion, de mon point de vue, Claude Code n’est pas encore un remplacement du développement traditionnel, mais plutôt un complément qui, bien utilisé, peut enrichir le processus de développement et permettre d’atteindre des objectifs plus ambitieux.
J’ai le sentiment que l’utilisation excessive de cet outil risque de créer une perte de la connaissance globale de la plateforme. Un développeur qui ne comprend pas intimement son code devient selon moi dépendant de l’outil et perd sa capacité à intervenir efficacement en cas de problème complexe ou d’évolution de l’application.
De plus, il me semble important de noter que le coût financier (abonnements, utilisation API) et écologique (consommation énergétique des modèles IA) reste élevé par rapport aux gains de productivité que j’ai pu constater.
Son adoption doit être réfléchie et progressive, en gardant à l’esprit que l’objectif n’est pas nécessairement de coder plus vite, mais de pouvoir aller plus loin dans les réalisations techniques.
— Jérôme, développeur back-end RoR chez Capsens
🤣
Claude Code n'est que le début d'un énorme projet qui bouleverse déjà les dernières recherches sur les LLMs.
Exemple de ces derniers jours , la fin du RAG !! techniques à l'époque, révolutionnaires, inventées il y a moins de 3 ans , pour cela lire l'article https://www.nicolasbustamante.com/p/the-rag-obituary-killed-by-agents.
Hier soir j'ai profité de Claude Code pour qu'il m'écrive un wrapper ruby à mettre au dessus des tous nouveau subagents pilotables https://docs.claude.com/en/api/agent-sdk/subagents .
En moins d'une heure j'avais le wrapper et des descriptions d'agents pour m'aider à écrire des trames narratives pour un jeu vidéo audio ( c'est un side project) et , j'ai lancé l'outil, qui m'a construit une proposition d'univers (cohérent c'était ma requête , avec Lore , lieu et perso) héroïque-fantasy sauce magic.
Personnellement CC multiplie ma productivité par 3 , en 2 h 30 j'arrive à faire l'équivalent d'une journée d'avant ( avant mai 2025, jour où j'ai eu CC entre les mains pour la première fois).
Si des gens veulent apprendre à s'en servir et profiter de cette technologie pour apporter un meilleur service à leur client, je reste dispo.... 🤑
Jocelyn. 😉