> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Qualité du code

> Outil de relecture de code alimenté par IA pour la maintenabilité, la lisibilité et les performances

Le **Corgea Code Quality Scanner** est un outil de revue de code basé sur l’IA qui détecte les problèmes de maintenabilité, de lisibilité, de performance et d’exactitude dans votre code. Contrairement à [nos scanners de vulnérabilités](/fr/blast), qui recherchent les menaces de sécurité, le Code Quality Scanner examine votre code comme le ferait un ingénieur logiciel expérimenté afin de préserver sa qualité et de limiter la dette technique.

## Fonctionnement

Le Code Quality Scanner analyse vos fichiers source afin de détecter les problèmes concrets qui nuisent à la qualité du code à long terme. Il passe chaque fichier en revue comme le ferait un ingénieur senior, repère les défauts susceptibles d’échapper aux revues manuelles et propose des améliorations pratiques.

### Principales fonctionnalités

* **Revue de code automatisée** : analyse le code en profondeur afin de détecter les problèmes de qualité courants qui nuisent à sa maintenabilité
* **Analyse adaptée au langage** : comprend le contexte et les conventions propres aux différents langages de programmation
* **Détection des frameworks** : reconnaît les frameworks courants et applique les bonnes pratiques correspondantes
* **Classification par sévérité** : hiérarchise les problèmes selon leur impact (élevé, moyen ou faible)
* **Mappage CWE** : associe les problèmes aux catégories Common Weakness Enumeration (CWE)

***

## Ce qu’il peut trouver

Le Code Quality Scanner détecte un large éventail de problèmes de qualité du code. Tous les résultats sont associés aux <Tooltip tip="Common Weakness Enumeration - a standardized list of software and hardware weakness types">catégories CWE</Tooltip> afin d’assurer une classification cohérente.

<AccordionGroup>
  <Accordion title="Problèmes de grammaire et de clarté" icon="spell-check">
    * **Fautes de frappe et d’orthographe** dans les commentaires de code, les noms de variables et les chaînes de caractères (CWE-1078)
    * **Commentaires inexacts ou trompeurs** qui contredisent le comportement réel du code ou peuvent être obsolètes (CWE-1116)

    ```javascript example.js theme={null}
    // Bad: Misleading comment
    // Calculate the sum of two numbers
    function multiply(a, b) {
      return a * b;  // Actually multiplying, not adding
    }
    ```
  </Accordion>

  <Accordion title="Propreté du code" icon="broom">
    * **Blocs de code vides** sans utilité (CWE-1071)
    * **Variables et imports inutilisés, et code mort** qui encombrent le code (CWE-563, CWE-1041)
    * **Blocs d’exception vides** qui ignorent silencieusement les erreurs (CWE-1069, CWE-390)
    * **Code inaccessible** qui ne peut jamais s’exécuter (CWE-561)

    ```python example.py theme={null}
    # Bad: Empty exception block silently swallows errors
    try:
        risky_operation()
    except Exception:
        pass  # Error is hidden!
    ```
  </Accordion>

  <Accordion title="Duplication de code et réutilisabilité" icon="copy">
    * **Code dupliqué** qui devrait être refactorisé dans des fonctions partagées (CWE-1041)
    * **Clés ou littéraux dupliqués** dans les objets, et nombres magiques qui devraient devenir des constantes (CWE-1078)
    * **Code non conforme au principe <Tooltip tip="Don't Repeat Yourself - a principle aimed at reducing repetition in code">DRY</Tooltip>** — logique répétée qui alourdit la maintenance
  </Accordion>

  <Accordion title="Problèmes de performance" icon="gauge-high">
    * **Concaténation de chaînes dans les boucles**, qui dégrade les performances (CWE-1046)
    * **Opérations inefficaces** et consommation inutile de ressources (CWE-1050)
    * **Goulots d’étranglement de performance** dans des chemins de code fréquemment exécutés

    ```java Example.java theme={null}
    // Bad: String concatenation in loop
    String result = "";
    for (int i = 0; i < 1000; i++) {
        result += data[i];  // Creates new string object each iteration
    }
    ```
  </Accordion>

  <Accordion title="Design & Architecture" icon="diagram-project">
    * **Fonctions avec trop de paramètres** (>5 paramètres) indiquant une mauvaise conception (CWE-1064)
    * **Signatures de fonctions trop complexes** qui sont difficiles à utiliser correctement
    * **Dépendances circulaires** entre les modules (CWE-1047)
    * **Non-respect des <Tooltip tip="Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion">principes SOLID</Tooltip>**
  </Accordion>

  <Accordion title="Complexité du code et lisibilité" icon="code">
    * **Expressions complexes sur une seule ligne** qui devraient être décomposées pour gagner en clarté (CWE-1120)
    * **Logique profondément imbriquée** comportant trop de branches et difficile à comprendre
    * **Fonctions utilitaires trop génériques** qui masquent l’intention
    * **Non-respect du <Tooltip tip="Keep It Simple, Stupid - a design principle that favors simplicity">principe KISS</Tooltip>**
  </Accordion>

  <Accordion title="Dénomination et conventions" icon="tag">
    * **Conventions de nommage incohérentes** qui rendent le code plus difficile à suivre (CWE-1099)
    * **Noms de variables génériques et peu explicites** tels que `obj`, `x` ou `data`
    * **Conventions de nommage mélangées**, par exemple camelCase et snake\_case dans le même code
  </Accordion>

  <Accordion title="Logique et exactitude" icon="bug">
    * **Erreurs logiques** qui provoquent un comportement incorrect (CWE-670)
    * **Traitement incorrect des données** qui produit de mauvais résultats
    * **Code qui ne fonctionnera pas comme prévu** en raison d’erreurs d’implémentation
  </Accordion>

  <Accordion title="Travail incomplet" icon="list-check">
    * **Commentaires TODO** et code provisoire (CWE-1071)
    * **Fonctionnalités partiellement implémentées** susceptibles de poser problème
    * **Implémentations incomplètes** qui nécessitent une intervention
  </Accordion>
</AccordionGroup>

***

## Fonctionnement

### 1. Analyse des fichiers

Le scanner traite séparément chaque fichier de votre code et analyse l’intégralité de sa source en tenant compte de sa structure, de son langage et des frameworks détectés.

### 2. Revue assistée par l’IA

Le scanner utilise des modèles de langage avancés, spécialement entraînés à la revue de code, pour examiner votre code selon les principes reconnus de l’ingénierie logicielle et les bonnes pratiques. L’IA comprend :

* Les idiomes et conventions propres à chaque langage
* Les patterns et bonnes pratiques des frameworks
* Indicateurs de complexité et de maintenabilité du code
* Principes de conception logicielle standards de l’industrie

### 3. Identification des problèmes

Lorsqu’un problème potentiel est détecté, le scanner :

* Identifie précisément les lignes de code impliquées
* Classe le type de problème selon les catégories CWE
* Attribue un niveau de sévérité approprié
* Génère une explication claire du problème et de son impact

### 4. Détection avec un niveau de confiance élevé

* Le scanner ne signale que les problèmes pour lesquels son niveau de confiance atteint au moins 90 %. Ce seuil élevé garantit des résultats précis et exploitables plutôt que spéculatifs.

* <Tip>Le seuil de confiance de 90 % réduit considérablement le bruit et les faux positifs. Les problèmes signalés méritent donc réellement votre attention.</Tip>

***

## Suppression des faux positifs

Le Code Quality Scanner intègre des mécanismes avancés de [réduction des faux positifs](/fr/false_positive) afin de ne présenter que des résultats pertinents et exploitables :

### Filtres intégrés

<Check>**Exclusion des problèmes de sécurité** : le scanner exclut explicitement les vulnérabilités de sécurité (injection SQL, XSS, problèmes d’authentification, etc.), qui sont traitées par les [scanners de sécurité dédiés](/fr/blast) de Corgea. Cette séparation évite tout chevauchement entre les résultats de qualité et de sécurité.</Check>

<Check>**Filtrage des préférences de style** : les préférences mineures, telles que le placement des accolades, l’indentation et les espaces, ne sont pas signalées. Le scanner se concentre sur les véritables problèmes de qualité et non sur les choix de mise en forme.</Check>

### Compréhension contextuelle

Le scanner comprend le contexte du code pour éviter les faux positifs :

* Reconnaît lorsque des blocs « vides » sont intentionnels (par exemple, des implémentations provisoires)
* Comprend les schémas spécifiques à chaque framework qui pourraient autrement sembler problématiques
* Prend en compte les idiomes de langage acceptables dans certains langages de programmation

***

## Remédiation automatisée

Lorsque des problèmes de qualité du code sont détectés, les [fonctionnalités de remédiation automatisée](/fr/fixes) de Corgea vous aident à les corriger rapidement et de manière cohérente :

### Ce qui est corrigé

Le système automatisé de remédiation peut résoudre de nombreux problèmes courants de qualité de code, notamment :

<Tabs>
  <Tab title="Correctifs simples">
    * Suppression des variables inutilisées et des importations
    * Conversion des nombres magiques en constantes nommées
    * Correction des fautes de frappe dans les noms de variables et les commentaires
  </Tab>

  <Tab title="Améliorations structurelles">
    * Consolidation du code dupliqué en fonctions partagées
    * Simplification des expressions trop complexes
    * Décomposition des expressions complexes sur une seule ligne
  </Tab>

  <Tab title="Bonnes pratiques">
    * Amélioration des noms de variables et de fonctions
    * Ajout d’une gestion correcte des erreurs
    * Application des patterns propres au framework
  </Tab>
</Tabs>

### Comment fonctionne la remédiation

1. **Contexte du problème** : le système analyse tout le contexte du problème, notamment le rôle du code concerné dans l’ensemble du projet
2. **Correctifs sûrs** : les correctifs automatisés sont conçus pour préserver les fonctionnalités existantes
3. **Respect du style du code** : les correctifs respectent le style et les conventions en place
4. **Examen avant application** : vous gardez le contrôle total des correctifs à appliquer

***

## Distinct du scan des vulnérabilités

<Warning>
  Le Code Quality Scanner est entièrement distinct des fonctionnalités Corgea de [scan des vulnérabilités de sécurité](/fr/blast).
</Warning>

### Différences clés

| Code Quality Scanner                                               | [Scanner de vulnérabilités](/fr/blast)                             |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| Met l’accent sur la maintenabilité, la lisibilité et la correction | Axé sur les menaces à la sécurité et les faiblesses exploitables   |
| Identifie la dette technique et les problèmes de conception        | Identifie SQL injection, XSS, des défauts d’authentification, etc. |
| Aide à améliorer la santé du code à long terme                     | Aide à se protéger contre les failles de sécurité                  |
| Utilise les CWE liées à la qualité du code                         | Utilise les CWE liées à la sécurité                                |

### Pourquoi les deux sont importants

* La **sécurité** protège votre application contre les attaquants
* La **qualité du code** préserve sa maintenabilité, ses performances et sa fiabilité

Ces deux dimensions sont essentielles à la santé d’un projet logiciel, mais répondent à des enjeux différents. Un code peut être sécurisé mais difficile à maintenir, ou bien structuré mais vulnérable. Corgea couvre les deux afin de vous donner une vue complète de sa qualité.

***

## Niveaux de sévérité

<Tabs>
  <Tab title="Sévérité élevée" icon="circle-exclamation">
    Problèmes qui **provoquent des plantages, de graves dégradations des performances ou des bugs critiques** :

    * Blocs `catch` vides qui masquent les erreurs
    * Boucles infinies
    * Une logique qui échoue toujours
    * Goulots d’étranglement critiques

    <Warning>**Action** : corriger immédiatement</Warning>
  </Tab>

  <Tab title="Sévérité moyenne" icon="triangle-exclamation">
    Problèmes qui **nuisent à la maintenabilité ou aux performances** :

    * Duplication de code
    * Code inutilisé encombrant la base de code
    * Concaténation de chaînes dans les boucles
    * Logique confuse qui ralentit le développement

    <Info>**Action** : traiter lors du prochain cycle de refactorisation</Info>
  </Tab>

  <Tab title="Sévérité faible" icon="circle-info">
    **Problèmes mineurs qui réduisent la qualité du code** :

    * Dénomination incohérente
    * Complexité inutile
    * Améliorations mineures de la lisibilité

    <Tip>**Action** : corriger à l’occasion ou lors de travaux connexes</Tip>
  </Tab>
</Tabs>

***

## Bien démarrer

Le Code Quality Scanner s’intègre parfaitement à votre flux de développement :

<Steps>
  <Step title="Connecter votre dépôt">
    Associez votre dépôt de code à Corgea avec [GitHub](/fr/github), [GitLab](/fr/gitlab), [Azure DevOps](/fr/azure_devops) ou [Bitbucket](/fr/bitbucket)
  </Step>

  <Step title="Analyse automatique">
    Le scanner analyse automatiquement vos fichiers
  </Step>

  <Step title="Examiner les résultats">
    Consultez les problèmes détectés, leurs explications et leur niveau de sévérité dans le [tableau de bord du projet](/fr/project)
  </Step>

  <Step title="Appliquer des correctifs">
    Utilisez la [remédiation automatisée](/fr/fixes) ou corrigez les problèmes manuellement
  </Step>

  <Step title="Suivre la progression">
    Suivez l’amélioration de la qualité du code dans le temps
  </Step>
</Steps>

***

## Documentation associée

<CardGroup cols={2}>
  <Card title="SAST natif de l’IA" icon="shield-halved" href="/fr/blast">
    Découvrez les capacités de détection des vulnérabilités de sécurité de Corgea
  </Card>

  <Card title="Correctifs automatisés" icon="wand-magic-sparkles" href="/fr/fixes">
    Découvrez le fonctionnement de la remédiation automatisée pour tous les types de scan
  </Card>

  <Card title="Gestion des faux positifs" icon="filter" href="/fr/false_positive">
    Gérez et écartez efficacement les faux positifs
  </Card>

  <Card title="Gestion des problèmes" icon="list-check" href="/fr/project">
    Suivez et gérez tous les problèmes de vos projets
  </Card>
</CardGroup>

***

## Assistance

Pour obtenir de l’aide, écrivez à [support@corgea.com](mailto:support@corgea.com).
