> ## 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.

# Code Quality

> KI-gestütztes Code-Review-Tool für Wartbarkeit, Lesbarkeit und Leistung

Der **Corgea Code Quality Scanner** ist ein KI-gestütztes Code-Review-Tool, das Probleme mit Wartbarkeit, Lesbarkeit, Performance und Korrektheit in Ihrer Codebasis erkennt. Anders als [unsere Schwachstellen-Scanner](/de/blast), die Sicherheitsbedrohungen untersuchen, prüft der Code Quality Scanner Ihren Code aus der Perspektive eines erfahrenen Software Engineers. So hilft er, hohe Qualitätsstandards einzuhalten und technische Schulden zu vermeiden.

## Was er tut

Der Code Quality Scanner analysiert Ihre Quellcodedateien auf konkrete Probleme, die die langfristige Wartbarkeit Ihrer Codebasis beeinträchtigen. Er prüft jede Datei wie ein erfahrener Senior Engineer, erkennt bei manuellen Code-Reviews leicht übersehene Probleme und konzentriert sich auf praktische, direkt umsetzbare Verbesserungen.

### Hauptfunktionen

* **Automatisierte Code-Überprüfung**: Führt eine gründliche Analyse Ihres Codes durch und überprüft auf häufige Qualitätsprobleme, die die Wartbarkeit beeinflussen
* **Sprachspezifische Analyse**: Versteht Kontext und Konventionen verschiedener Programmiersprachen
* **Framework-Erkennung**: Erkennt gängige Frameworks und wendet frameworkspezifische Best Practices an
* **Schweregradklassifizierung**: Priorisiert Probleme basierend auf ihrer Auswirkung (Hoch, Mittel, Niedrig)
* **CWE-Zuordnung**: Ordnet Probleme den Common Weakness Enumeration (CWE)-Standards zur standardisierten Kategorisierung zu

***

## Erkannte Probleme

Der Code Quality Scanner erkennt ein breites Spektrum an Code-Quality-Problemen. Alle Befunde werden zur einheitlichen Kategorisierung den <Tooltip tip="Common Weakness Enumeration – eine standardisierte Liste von Schwachstellentypen in Software und Hardware">CWE-Standards</Tooltip> zugeordnet.

<AccordionGroup>
  <Accordion title="Grammatik- & Klarheitsprobleme" icon="spell-check">
    * **Rechtschreibfehler und Tippfehler** in Codekommentaren, Variablennamen und Zeichenketten (CWE-1078)
    * **Ungenaue oder irreführende Kommentare** die dem tatsächlichen Codeverhalten widersprechen oder veraltet sein können (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="Sauberkeit des Codes" icon="broom">
    * **Leere Codeblöcke**, die keinen Zweck erfüllen (CWE-1071)
    * **Unbenutzte Variablen, Importe und Dead Code**, die die Codebasis unnötig aufblähen (CWE-563, CWE-1041)
    * **Leere Ausnahmeblöcke**, die Fehler stillschweigend verschlucken (CWE-1069, CWE-390)
    * **Unerreichbarer Code**, der niemals ausgeführt werden kann (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="Code-Duplikation & Wiederverwendbarkeit" icon="copy">
    * **Doppelter Code**, der in gemeinsame Funktionen refaktoriert werden sollte (CWE-1041)
    * **Doppelte Schlüssel oder Literale** in Objekten und magische Zahlen, die Konstanten sein sollten (CWE-1078)
    * **Nicht <Tooltip tip="Don't Repeat Yourself – ein Prinzip zur Reduzierung von Wiederholungen im Code">DRY</Tooltip> gehaltener Code** – wiederholte Logik, die den Wartungsaufwand erhöht
  </Accordion>

  <Accordion title="Performance-Probleme" icon="gauge-high">
    * **String-Konkatenation in Schleifen**, die die Leistung verschlechtert (CWE-1046)
    * **Ineffiziente Operationen** und unnötiger Ressourcenverbrauch (CWE-1050)
    * **Leistungsengpässe** in häufig ausgeführten Codepfaden

    ```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 & Architektur" icon="diagram-project">
    * **Funktionen mit zu vielen Parametern** (>5 Parameter), die auf ein schlechtes Design hinweisen (CWE-1064)
    * **Übermäßig komplexe Funktionssignaturen**, die schwer korrekt zu verwenden sind
    * **Zirkuläre Abhängigkeiten** zwischen Modulen (CWE-1047)
    * **Verstöße gegen <Tooltip tip="Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion">SOLID-Prinzipien</Tooltip>**
  </Accordion>

  <Accordion title="Code-Komplexität & Lesbarkeit" icon="code">
    * **Komplexe Einzeiler**, die zur Klarheit aufgebrochen werden sollten (CWE-1120)
    * **Tief verschachtelte Logik** mit übermäßig vielen Verzweigungen, die schwer zu verstehen ist
    * **Übermäßig generische Hilfsfunktionen**, die die Absicht verschleiern
    * **Verstöße gegen <Tooltip tip="Keep It Simple, Stupid - ein Gestaltungsprinzip, das Einfachheit bevorzugt">KISS-Prinzip</Tooltip>**
  </Accordion>

  <Accordion title="Benennung & Konventionen" icon="tag">
    * **Inkonsistente Benennungskonventionen**, die den Code schwerer nachvollziehbar machen (CWE-1099)
    * **Generische, nicht beschreibende Variablennamen** wie 'obj', 'x', 'data'
    * **Gemischte Benennungsstile** (z. B. camelCase und snake\_case in derselben Codebasis)
  </Accordion>

  <Accordion title="Logik & Korrektheit" icon="bug">
    * **Logikfehler**, die zu falschem Verhalten führen (CWE-670)
    * **Falsche Datenverarbeitung**, die zu falschen Ergebnissen führt
    * **Code, der aufgrund von Implementierungsfehlern nicht wie beabsichtigt funktioniert**
  </Accordion>

  <Accordion title="Unvollständige Arbeit" icon="list-check">
    * **TODO-Kommentare** und Platzhaltercode (CWE-1071)
    * **Unfertige Funktionen**, die Probleme verursachen können
    * **Unvollständige Implementierungen**, die Aufmerksamkeit erfordern
  </Accordion>
</AccordionGroup>

***

## So funktioniert es

### 1. Dateianalyse

Der Scanner verarbeitet jede Datei der Codebasis einzeln. Dabei analysiert er den vollständigen Quellcode im Kontext von Dateistruktur, Programmiersprache und erkannten Frameworks.

### 2. KI-gestützte Überprüfung

Der Scanner verwendet speziell für Code-Reviews trainierte Sprachmodelle und prüft Ihren Code anhand etablierter Software-Engineering-Grundsätze und Best Practices. Die KI versteht:

* Sprachspezifische Idiome und Konventionen
* Framework-Muster und Best Practices
* Metriken zur Komplexität und Wartbarkeit von Code
* Branchenübliche Prinzipien des Software-Designs

### 3. Problemidentifikation

Wenn der Scanner ein potenzielles Problem findet:

* Lokalisiert er die betroffenen Codezeilen
* Klassifiziert er den Problemtyp anhand der CWE-Standards
* Weist er einen passenden Schweregrad zu
* Erstellt er eine verständliche Erklärung des Problems und seiner Auswirkungen

### 4. Erkennung mit hoher Konfidenz

* Der Scanner meldet nur Probleme mit einer Konfidenz von mindestens 90 %. Dieser hohe Schwellenwert sorgt für konkrete und präzise statt spekulative Befunde.

* <Tip>Der Konfidenzschwellenwert von 90 % reduziert Fehlalarme und False Positives erheblich. Gemeldete Probleme sind daher in der Regel tatsächlich relevant.</Tip>

***

## Unterdrückung von False Positives

Der Code Quality Scanner verwendet differenzierte Mechanismen zur [Unterdrückung von False Positives](/de/false_positive), damit Sie nur relevante und umsetzbare Befunde erhalten:

### Eingebaute Filter

<Check>**Ausschluss von Sicherheitsproblemen**: Der Scanner schließt ausdrücklich Sicherheitslücken (SQL-Injection, XSS, Authentifizierungsprobleme usw.) aus, da diese von Corgeas [dedizierten Sicherheitsscannern](/de/blast) behandelt werden. Dies verhindert Überschneidungen und Verwirrung zwischen Code Quality und Sicherheitsergebnissen.</Check>

<Check>**Filterung nach Stilpräferenzen**: Kleine Stilpräferenzen wie Klammerplatzierung, Einrückung und Leerzeichen werden nicht gemeldet. Der Scanner konzentriert sich auf inhaltliche Qualitätsprobleme, nicht auf Formatierungsvorlieben.</Check>

### Kontextuelles Verständnis

Der Scanner versteht den Codekontext, um False Positives zu vermeiden:

* Erkennt, wenn "leere" Blöcke beabsichtigt sind (z. B. Platzhalterimplementierungen)
* Versteht frameworkspezifische Muster, die sonst problematisch erscheinen könnten
* Berücksichtigt sprachspezifische Idiome, die in bestimmten Programmiersprachen akzeptabel sind

***

## Automatisierte Behebung

Bei erkannten Code-Quality-Problemen unterstützt Corgea Sie mit [automatisierten Fixes](/de/fixes), damit Sie Probleme schnell und einheitlich beheben können:

### Was behoben wird

Das automatisierte Behebungssystem kann viele häufige Code Quality-Probleme beheben, darunter:

<Tabs>
  <Tab title="Schnelle Erfolge">
    * Entfernen ungenutzter Variablen und Importe
    * Umwandeln von Magic Numbers in benannte Konstanten
    * Korrigieren von Tippfehlern in Variablennamen und Kommentaren
  </Tab>

  <Tab title="Strukturverbesserungen">
    * Duplizierten Code in gemeinsamen Funktionen zusammenführen
    * Zu komplexe Ausdrücke vereinfachen
    * Komplexe Einzeiler aufteilen
  </Tab>

  <Tab title="Best Practices">
    * Verbesserung von Variablen- und Funktionsnamen
    * Richtige Fehlerbehandlung hinzufügen
    * Implementierung von frameworkspezifischen Mustern
  </Tab>
</Tabs>

### Wie die Behebung funktioniert

1. **Issue-Kontext**: Das System analysiert den vollständigen Kontext eines Issues und berücksichtigt neben dem problematischen Code auch dessen Rolle in der gesamten Codebasis
2. **Sichere Fixes**: Automatisierte Fixes sind darauf ausgelegt, die vorhandene Funktionalität beizubehalten
3. **Beibehaltung des Codestils**: Fixes berücksichtigen Ihren vorhandenen Codestil und Ihre Konventionen
4. **Prüfung vor der Anwendung**: Sie entscheiden, welche Fixes angewendet werden

***

## Getrennt vom Schwachstellen-Scanning

<Warning>
  Der Code Quality Scanner ist vollständig von Corgeas [Schwachstellen-Scanning](/de/blast) getrennt.
</Warning>

### Hauptunterschiede

| Code Quality Scanner                                          | [Schwachstellen-Scanner](/de/blast)                                    |
| ------------------------------------------------------------- | ---------------------------------------------------------------------- |
| Konzentriert sich auf Wartbarkeit, Lesbarkeit und Korrektheit | Konzentriert sich auf Sicherheitsbedrohungen und ausnutzbare Schwächen |
| Identifiziert technische Schulden und Designprobleme          | Identifiziert SQL-Injection, XSS, Authentifizierungsfehler usw.        |
| Verbessert die langfristige Wartbarkeit der Codebasis         | Schützt vor Sicherheitsvorfällen                                       |
| Verwendet CWEs im Zusammenhang mit Code Quality               | Verwendet CWEs im Zusammenhang mit Sicherheit                          |

### Warum beide wichtig sind

* **Sicherheit** schützt Ihre Anwendung vor Angreifern
* **Code Quality** hält Ihre Codebasis wartbar, leistungsfähig und zuverlässig

Beides ist für ein nachhaltiges Softwareprojekt unverzichtbar, deckt aber unterschiedliche Bereiche ab. Eine Codebasis kann sicher, aber schwer wartbar oder gut strukturiert, aber anfällig sein. Corgea bietet beide Perspektiven und damit einen vollständigen Überblick über den Zustand Ihres Codes.

***

## Schweregrade erklärt

<Tabs>
  <Tab title="Hoher Schweregrad" icon="circle-exclamation">
    Probleme, die **Abstürze, schwerwiegende Leistungsprobleme oder kritische Fehler verursachen**:

    * Leere catch-Blöcke, die Fehler verbergen
    * Endlosschleifen
    * Logik, die immer fehlschlägt
    * Kritische Leistungsengpässe

    <Warning>**Aktion**: Sofort beheben</Warning>
  </Tab>

  <Tab title="Mittlerer Schweregrad" icon="triangle-exclamation">
    Probleme, die **Wartbarkeit oder Leistung beeinträchtigen**:

    * Code-Duplikation
    * Unbenutzter Code, der den Codebestand aufbläht
    * String-Konkatenation in Schleifen
    * Verwirrende Logik, die die Entwicklung verlangsamt

    <Info>**Aktion**: Im nächsten Refactoring-Zyklus bearbeiten</Info>
  </Tab>

  <Tab title="Niedriger Schweregrad" icon="circle-info">
    **Kleine Probleme, die Code Quality verringern**:

    * Inkonsistente Benennung
    * Unnötige Komplexität
    * Kleine Verbesserungen der Lesbarkeit

    <Tip>**Aktion**: Bei Gelegenheit oder im Rahmen verwandter Arbeiten beheben</Tip>
  </Tab>
</Tabs>

***

## Erste Schritte

Der Code Quality Scanner integriert sich nahtlos in Ihren Entwicklungsworkflow:

<Steps>
  <Step title="Repository verbinden">
    Verknüpfen Sie Ihr Code-Repository mit Corgea über [GitHub](/de/github), [GitLab](/de/gitlab), [Azure DevOps](/de/azure_devops) oder [Bitbucket](/de/bitbucket)
  </Step>

  <Step title="Automatisches Scannen">
    Der Scanner analysiert Ihre Dateien automatisch
  </Step>

  <Step title="Ergebnisse überprüfen">
    Durchsuchen Sie identifizierte Probleme mit klaren Erklärungen und Schweregraden im [Projekt-Dashboard](/de/project)
  </Step>

  <Step title="Fixes anwenden">
    Verwenden Sie [automatisierte Behebung](/de/fixes) oder beheben Sie Probleme manuell
  </Step>

  <Step title="Fortschritt verfolgen">
    Überwachen Sie Verbesserungen in Code Quality im Laufe der Zeit
  </Step>
</Steps>

***

## Verwandte Dokumentation

<CardGroup cols={2}>
  <Card title="AI-native SAST" icon="shield-halved" href="/de/blast">
    Erfahren Sie mehr über Corgeas Fähigkeiten zur Sicherheitslücken-Analyse
  </Card>

  <Card title="Automatisierte Korrekturen" icon="wand-magic-sparkles" href="/de/fixes">
    Erkunden Sie, wie automatisierte Behebung bei allen Scan-Typen funktioniert
  </Card>

  <Card title="False Positive Verwaltung" icon="filter" href="/de/false_positive">
    False Positives effektiv verwalten und unterdrücken
  </Card>

  <Card title="Problembearbeitung" icon="list-check" href="/de/project">
    Alle Probleme in Ihren Projekten verfolgen und verwalten
  </Card>
</CardGroup>

***

## Support

Für Hilfe kontaktieren Sie uns unter [support@corgea.com](mailto:support@corgea.com)
