Skip to content

Lab 2.1 : L'Architecte

Module : 2.1 - Plan Mode et Analyse | ← SlidesDurée : 30 minutes Projet Exemple : hackathon-starter

Objectifs d'Apprentissage

À la fin de ce lab, vous serez capable de :

  • Utiliser Plan Mode pour une analyse en lecture seule
  • Créer des plans de refactoring détaillés avant d'écrire du code
  • Identifier les risques et les dépendances dans un changement proposé
  • Documenter des stratégies d'implémentation étape par étape

Prérequis

  • Labs du Jour 1 terminés
  • Projet hackathon-starter configuré

Qu'est-ce que Plan Mode ?

Plan Mode est un mode lecture seule où Claude peut :

  • Explorer le codebase
  • Analyser les dépendances
  • Créer des plans étape par étape
  • Identifier les risques

Mais ne peut pas :

  • Modifier des fichiers
  • Exécuter des commandes (sauf opérations de lecture sécurisées)
  • Faire des commits

Quand Utiliser Plan Mode

Utilisez-le quand le changement touchera >3 fichiers ou prendra >1 heure.

Configuration

bash
# Naviguez vers le projet exemple
cd sample-projects/hackathon-starter

# Démarrez Claude en Plan Mode
claude --permission-mode plan

Ou depuis une session existante :

/plan

Tâche 1 : Identifier une Cible de Refactoring

Durée : 5 minutes

Trouvez quelque chose dans le codebase qui nécessite un refactoring.

Prompts à essayer :

Quelles sont les parties les plus complexes ou difficiles à maintenir de ce codebase ?
Y a-t-il des "God classes" ou des modules qui font trop de choses ?
Quels fichiers ont le plus de lignes de code ?

Bons candidats :

  • Fichiers contrôleurs volumineux (>300 lignes)
  • Modules avec de nombreuses responsabilités
  • Fichiers avec une complexité cyclomatique élevée

Critères de réussite :

  • [ ] Cible de refactoring identifiée
  • [ ] Comprendre pourquoi elle nécessite un refactoring

Tâche 2 : Créer un Plan de Refactoring

Durée : 15 minutes

Demandez à Claude de créer un plan détaillé.

Prompts à essayer :

Crée un plan pour refactorer le contrôleur utilisateur en modules plus petits à responsabilité unique.
Quelle serait l'approche la plus sûre pour diviser la configuration passport en stratégies d'authentification séparées ?
Comment devrais-je aborder l'extraction de la fonctionnalité email dans un service séparé ?

Votre plan devrait inclure :

  • Analyse de l'état actuel
  • Changements proposés (étape par étape)
  • Dépendances à mettre à jour
  • Risques potentiels
  • Stratégie de test

Critères de réussite :

  • [ ] Plan de refactoring en plusieurs étapes reçu
  • [ ] Le plan inclut une analyse des dépendances
  • [ ] Les risques sont identifiés

Tâche 3 : Affiner le Plan

Durée : 10 minutes

Posez des questions de suivi pour améliorer le plan.

Prompts à essayer :

Qu'est-ce qui casserait si nous faisions l'étape 2 avant l'étape 1 ?
Y a-t-il des cas limites que nous devrions gérer ?
Quels tests devrions-nous écrire avant de commencer ce refactoring ?
Peux-tu décomposer l'étape 3 en sous-étapes plus petites ?

Critères de réussite :

  • [ ] Le plan a été affiné avec plus de détails
  • [ ] Cas limites identifiés
  • [ ] La stratégie de test est claire

Exemple de Structure de Plan

Un bon plan de refactoring ressemble à ceci :

markdown
# Plan de Refactoring : Diviser UserController

## État Actuel
- UserController gère : auth, profil, paramètres, admin
- 450 lignes, 15 méthodes
- Fort couplage avec passport.js

## Changements Proposés

### Étape 1 : Extraire AuthController
1. Créer controllers/auth.js
2. Déplacer les méthodes login, logout, signup
3. Mettre à jour les imports dans routes/index.js
4. Vérifier que les tests passent

### Étape 2 : Extraire ProfileController
...

## Risques
- La gestion des sessions dépend de l'ordre d'authentification
- Certaines méthodes partagent des helpers privés

## Stratégie de Test
- Exécuter la suite de tests existante après chaque étape
- Ajouter des tests d'intégration pour le flux d'authentification

Questions Courantes en Plan Mode

Type de QuestionExemple
Portée« Combien de fichiers cela affectera-t-il ? »
Risque« Qu'est-ce qui pourrait mal tourner ? »
Ordre« Quelle est la séquence la plus sûre ? »
Tests« Quels tests dois-je faire en premier ? »
Rollback« Comment annuler si ça échoue ? »

Conseils pour Réussir

  1. Soyez spécifique sur l'objectif - « Améliorer la maintenabilité » est vague ; « Diviser en fichiers de <100 lignes » est spécifique
  2. Renseignez-vous sur les dépendances - Les changements se propagent ; comprenez le rayon d'impact
  3. Demandez des stratégies de test - Comment saurez-vous si vous avez cassé quelque chose ?
  4. Obtenez des estimations de temps - Demandez à Claude combien de temps chaque étape pourrait prendre

Astuce Pro : Les Listes To Do Persistent à Travers la Compaction

Lors de l'utilisation de Plan Mode, demandez explicitement à Claude de créer une liste To Do complète :

Crée une liste To Do complète pour ce plan de refactoring.

Pourquoi c'est important :

  • Les plans et les listes To Do persistent à travers la compaction du contexte
  • Même dans des sessions très longues (50+ minutes), votre liste de tâches reste intacte
  • Cela empêche Claude de perdre le fil des changements multi-étapes

TIP

Commencez avec Plan Mode + une liste To Do détaillée pour toute tâche qui prendra plus de 30 minutes.


Livrables

À la fin de ce lab, vous devriez avoir :

  1. Un plan de refactoring écrit (sauvegardé dans un fichier ou des notes)
  2. Une compréhension des dépendances et des risques
  3. Une stratégie de test avant l'implémentation

Prochaines Étapes

Après avoir terminé ce lab, passez au Lab 2.2 : Construction du Filet de Sécurité pour générer des tests avant le refactoring.

Claude for Coders Training Course