Classified page 5 newspaper selective focus photography

Comment analyser rapidement la structure d’un projet ?

Comment analyser rapidement la structure d’un projet complexe ? Que ce soit pour un nouveau projet avec des dossiers imbriqués ou une arborescence difficile à comprendre, je vous propose une méthode efficace combinant script bash et analyse IA pour décortiquer n’importe quelle structure de projet.

🐌 Analyse manuelle de structure de projet : les limites

La méthode traditionnelle ? Explorer manuellement les dossiers et essayer de comprendre la logique. Mais soyons honnêtes, c’est :

  • Chronophage
  • Pas très efficace
  • Risqué (on peut rater des éléments importants)

🤖 Analyser structure projet avec l’IA : outils existants

Il existe déjà des outils en ligne pour analyser des repos GitHub (comme https://gitingest.com/)

Avec plusieurs limites :

  • Ne marchent pas sur les projets privés
  • Pas de découpe en plusieurs fichiers
  • Pas la main sur le fichier de sortie

Mais tout est possible :

  • Utilisation en ligne directement
  • Via Docker
  • En ligne de commande

Ce type d’outil va créer un fichier texte du projet :

  • arbo + le contenu des fichiers

L’intérêt c’est d’avoir un fichier unique (ou plusieurs si tu découpes) à donner à un LLM.

Une autre solution ?

Soit tu vas créer ton propre script bash qui va faire la même chose que gitingest => en soit pas très compliqué. Et tu auras l’avantage de contrôler tout : comment tu schématises l’arbo du projet, la séparation entre les fichiers, les fichiers à exclure, la découpe intégré, etc. (si ça intéresse je pourrai faire un article dédié)

Soit le contenu t’importe peu et ce que tu veux comprendre c’est uniquement la structure du projet.

Car « normalement » la structure permet de donner une idée du contenu et ce qui peut être intéressant c’est le contenu diverge par rapport à la structure utilisée.

Dans ce cas, je te propose une approche en 2 étapes :

  1. Générer un fichier texte listant toute l’arborescence avec un script bash
  2. Faire analyser ce fichier par une IA (ChatGPT, Claude, etc.)

Les avantages

Cette méthode permet de :

  • Documenter la structure
  • Identifier des pistes d’amélioration
  • Repérer les incohérences
  • Comparer avec des patterns standards
  • Préparer une restructuration si nécessaire

Point important

L’analyse sera pertinente si :

  • Tes fichiers sont nommés logiquement
  • Ta structure suit une certaine logique (même personnelle)
  • L’arborescence n’est pas totalement anarchique 💣💣💣

Et je le rappele, on analyse UNIQUEMENT la structure et pas le contenu dans ce contexte.

💻 Script bash pour analyser la structure de projet automatiquement

#!/bin/bash
# Description : Script pour générer une liste structurée des fichiers et dossiers

# Vérification des arguments
if [ $# -ne 1 ]; then
    echo "Usage: $0 <chemin_du_dossier>"
    exit 1
fi

# Configuration des exclusions (à personnaliser selon les besoins)
EXCLUSIONS=(
    ".git"
    "node_modules"
    "*.log"
    "*.tmp"
    "vendor"
)

# Création de la chaîne d'exclusion pour find
EXCLUDE_PATTERN=""
for item in "${EXCLUSIONS[@]}"; do
    EXCLUDE_PATTERN="$EXCLUDE_PATTERN -not -path '*/$item/*' -not -name '$item'"
done

# Chemin absolu du dossier à analyser
TARGET_DIR=$(cd "$1" && pwd)

# Nom du fichier de sortie (dans le répertoire courant)
OUTPUT_FILE="structure_$(date +%Y%m%d_%H%M%S).txt"

# Vérification si le dossier existe
if [ ! -d "$TARGET_DIR" ]; then
    echo "Erreur: Le dossier $TARGET_DIR n'existe pas"
    exit 1
fi

# Fonction pour obtenir le type d'élément
get_type() {
    if [ -d "$1" ]; then
        echo "[DIR]"
    elif [ -f "$1" ]; then
        echo "[FILE]"
    else
        echo "[OTHER]"
    fi
}

{
    echo "Structure du dossier: $TARGET_DIR"
    echo "Généré le: $(date)"
    echo "----------------------------------------"
    echo

    # Utilisation de find pour lister tous les éléments avec leurs chemins absolus
    eval "find '$TARGET_DIR' $EXCLUDE_PATTERN -print0" | while IFS= read -r -d $'\0' item; do
        # Obtenir le type d'élément
        type=$(get_type "$item")
        
        # Si c'est un lien symbolique, ajouter la cible
        if [ -L "$item" ]; then
            target=$(readlink "$item")
            echo "$type $item -> $target"
        else
            echo "$type $item"
        fi
    done
} > "$OUTPUT_FILE"

echo "La structure a été sauvegardée dans le fichier: $OUTPUT_FILE"
    

Pour conclure

Cette approche simple te permet d’avoir rapidement une vue d’ensemble de n’importe quel projet. Tu peux ensuite poser des questions précises à l’IA pour approfondir certains aspects ou obtenir des recommandations.

Un exemple après analyse de l’arbo WordPress

Simple analyse des fichiers/dossiers + agent IA + un peu de magie pour rendre sa plus jolie.

Exemple d'analyse de structure WordPress générée par script bash et IA

📋 Guide d’utilisation du script d’analyse de structure

Étapes d’utilisation

  1. Sauvegarder le script dans un fichier (ex: analyze_project.sh)
  2. Rendre le script exécutable : chmod +x analyze_project.sh
  3. Exécuter : ./analyze_project.sh /chemin/vers/projet
  4. Analyser le fichier généré avec votre IA préférée

Prompts IA recommandés

"Analyse cette structure de projet et identifie :
1. Le type d'architecture utilisée
2. Les bonnes pratiques respectées
3. Les améliorations possibles
4. Les incohérences de structure"
Samy Kantari - Expert WordPress + IA

Kantari Samy

Expert WordPress + IA

👨‍💻 10 ans dans le game WordPress, chez Whodunit, à bricoler du code, à dompter des bugs et à faire tourner des projets de toutes tailles.
Puis l’IA est arrivée… et là, révélation 💡 !
J’ai switché de mindset, réinventé ma façon de coder et avec le vibe coding : une nouvelle ère où je ne suis plus limité par le temps ni par les outils.

Aujourd’hui ? Je code toujours… Mais avec mon copilote IA.
On forme une team de choc. Lui, c’est la puissance. Moi, c’est la vision. Ensemble, on déverrouille ce qui semblait impossible hier. 🚀

10+ Années d'expérience
+++ Projets réalisés
80% code par IA
S’abonner
Notification pour
guest
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires