Table des matières


Créé le: 2025-10-17 ; Révisé le: 2025-10-17

Développons avec Simon - 9 - Utiliser Claude Code, Junie et Copilot Agent

Vidéo (1 heure 03 minutes)

Introduction (00:00:00)

Dans cette vidéo, nous comparons trois agents AI de programmation : Claude Code, Junie ( JetBrains) et GitHub Copilot Agent. Bien qu’ils utilisent tous le même modèle d' IA (Claude Sonnet) en arrière-plan, leurs performances varient selon leur implémentation. Nous testons leur capacité à ajouter une fonctionnalité d’historique des vérifications d’URL dans le projet Acilia.

Introduction aux agents AI et présentation du contexte (00:00:25)

  • Présentation des agents AI pour la programmation : Junie (JetBrains/IntelliJ), GitHub Copilot Agent et Claude Code
  • Tous utilisent Claude Sonnet comme modèle d’IA en arrière-plan
  • Différences d’implémentation : Junie utilise l’indexation d’IntelliJ, tandis que Copilot et Claude Code fouillent dans les fichiers
  • Philosophie d’utilisation : les agents sont des collègues qui aident à faire 80-90% du travail, pas des remplacements de développeurs
  • Méthodologie de travail : première passe de l’agent, revue de code avec des commentaires TODO +, puis itérations successives

Présentation du projet Acilia et de la fonctionnalité à implémenter (00:04:13)

  • Acilia : outil en ligne de commande regroupant diverses fonctionnalités
  • Fonctionnalité existante : vérification d’URL avec notification par courriel en cas d’erreur
  • État actuel : sauvegarde uniquement de la dernière exécution dans url-check-recent.json
  • Fonctionnalité demandée :
    1. Sauvegarder un historique complet dans url-check-history.json
    2. Configurer la durée de conservation (défaut : 7 jours) via url-check set history max days <days>
    3. Créer une commande url-check history <url> affichant l’historique d’un URL en tableau (colonnes : date, statut, détails)
  • Démonstration de l’interface web en mode démon et de l’affichage des résultats en tableau

Préparation des fichiers de contexte pour les agents (00:08:41)

  • Importance de créer des fichiers de contexte pour éviter que l’agent ne scanne tout à chaque tâche
  • Claude Code : commande /init pour créer CLAUDE.md
    • Fichier généré en anglais malgré la demande en français
    • Contient : description du projet, structure, commandes de build, modèle des classes, services, configurations
  • Junie : demande de créer .junie/guidelines.md
    • Fichier généré en français (surprise)
    • Contient : formatage du code, conventions de nommage, structure des classes (une classe publique par fichier)
    • Inclut des informations sur Git/pull requests (pas très pertinentes)
  • Copilot : pas de fichier spécifique requis, lit automatiquement le README

Test avec Claude Code (00:17:16)

  • Première passe :
    • Claude Code crée automatiquement une liste de TODO en anglais (malgré le prompt en français)
    • Demande de permissions pour éditer les fichiers et exécuter le build
    • Temps d’exécution non affiché, mais commun pour tous les agents
    • Résultats : compilation OK, fonctionnalités implémentées correctement
    • Qualité du code : très bonne, mais quelques détails à corriger (ordre alphabétique, URL redondant dans le modèle)
    • 4 TODO + ajoutés pour les ajustements mineurs
  • Deuxième passe :
    • Recherche des TODO + et implémentation des corrections
    • Tous les TODO + traités correctement
    • Tests de compilation et d’exécution : succès
    • Vérification de la sauvegarde de l’historique et de l’affichage : fonctionnel
    • Résultat final : 100% du code en 2 passes

Test avec Junie (JetBrains) (00:37:19)

  • Configuration : mode “brave” pour exécution automatique sans confirmation
  • Première passe :
    • Utilisation de l’indexation IntelliJ pour une recherche plus efficace
    • Implémentation similaire à Claude Code (même LLM en arrière-plan)
    • Différence : logique de validation du paramètre (0 ou moins devient 7) au lieu de mettre 7 par défaut dans le modèle
    • URL redondant présent (comme Claude Code)
    • TODO ajouté pour simplifier la logique (mettre 7 par défaut, enlever la validation complexe)
  • Deuxième passe :
    • Recherche et correction des TODO
    • Problème : logique de validation déplacée dans le service au lieu d’être dans la commande
    • Commentaires superflus ajoutés
    • Nouvelle approche qui complique inutilement le code
  • Troisième passe :
    • Correction de la logique de validation
    • Suppression de commentaires inutiles
    • Résultat : logique de validation reste dans un endroit non optimal
    • Résultat final : 98% du code en 3 passes (ajustement manuel nécessaire pour placer la validation au bon endroit)
  • Note importante : Les résultats peuvent varier à chaque exécution (même agent, même prompt = code différent possible)

Test avec GitHub Copilot Agent (00:49:24)

  • Différences d’interface :
    • Nécessite de choisir manuellement le modèle (Claude Sonnet 4.5)
    • Possibilité d’attacher des fichiers (non utilisé pour ce test)
    • Bug : fichier attaché malgré désactivation explicite
    • Affichage des modifications en temps réel avec acceptation à la pièce ou en bloc
  • Problèmes techniques dans IntelliJ :
    • Conflit de synchronisation fichiers mémoire vs système de fichiers
    • Bug spécifique à IntelliJ (pas de problème dans VS Code)
  • Problèmes d’exécution PowerShell :
    • Copilot utilise PowerShell (Windows) par défaut
    • Tentative d’utiliser && (syntaxe bash) qui ne fonctionne pas dans PowerShell
    • Essai avec & : échec également
    • Plusieurs tentatives infructueuses avant d’exécuter les commandes séparément
    • Échec de l’exécution de Java dans PowerShell
    • Finalement, Copilot abandonne la compilation et espère que le code fonctionne
  • Interruptions fréquentes :
    • Demandes répétées de confirmation pour chaque action
    • Pas d’option “mode brave” comme Junie
    • Pour les tâches longues (>5 min) : demande de continuer manuellement (plusieurs fois)
  • Qualité du code :
    • Implémentation correcte (même LLM que les autres)
    • Documentation plus détaillée dans le README
    • Gestion correcte de la valeur par défaut (7 jours)
    • Suppression de l’URL redondant en deuxième passe
    • Résultat final : 100% du code en 2 passes, mais avec beaucoup d’interruptions

Comparaison finale et recommandations (01:00:47)

  • Claude Code : 100% en 2 passes, fluide
  • Junie : 98% en 3 passes, excellent d’habitude, mais choix de logique questionnable cette fois
  • Copilot : 100% en 2 passes, mais nombreuses interruptions et problèmes techniques (PowerShell)
  • Observation importante : Même LLM (Claude Sonnet) = résultats similaires, mais pas identiques
    • Les différences viennent de l’implémentation de l’agent (indexation vs recherche de fichiers)
    • Variabilité entre les exécutions (même prompt dans le même agent peut donner des codes différents)
  • Recommandations :
    • Pour les petites fonctionnalités : tous sont capables de faire le travail
    • Pas besoin de s’abonner à tous les services
    • Choisir selon ses préférences de workflow
    • Pour les grandes fonctionnalités : découper en plusieurs petites tâches améliore les résultats
    • Importance d’utiliser Git : commit avant chaque tâche, revue de code, commits work-in-progress
  • Workflow recommandé :
    1. Commit initial avant de lancer l’agent
    2. Laisser l’agent faire la première passe
    3. Revue de code avec ajout de TODO + pour les corrections mineures
    4. Demander à l’agent d’implémenter les TODO +
    5. Itérer jusqu’à satisfaction
    6. Commit final ou amend du commit work-in-progress
  • Conclusion : Les agents AI sont des outils efficaces pour déléguer des tâches et augmenter la productivité, à condition de bien comprendre leurs forces et limitations.