Code-Komplexität
Ein quantitatives Maß dafür, wie schwierig Code zu verstehen, zu testen und zu warten ist, basierend auf Faktoren wie Verzweigung, Verschachtelungstiefe und Abhängigkeiten.
Definition
Code-Komplexität wird durch verschiedene Metriken gemessen: Zyklomatische Komplexität (Anzahl unabhängiger Pfade), Kognitive Komplexität (Sonars Maß für Verständlichkeit), Halstead-Metriken (basierend auf Operatoren und Operanden), und Lines of Code. Hohe Komplexität korreliert mit höheren Fehlerraten und längeren Entwicklungszeiten.
Warum es wichtig ist
Studien zeigen, dass Funktionen mit zyklomatischer Komplexität >10 4x wahrscheinlicher Bugs haben. Komplexer Code ist schwer zu testen (erfordert mehr Testfälle), zu reviewen (leicht, Probleme zu übersehen) und zu modifizieren (hohes Regressionsrisiko).
Beispiel
Eine Funktion mit 15 if/else-Verzweigungen, 4 verschachtelten Schleifen und 3 try/catch-Blöcken hat hohe Komplexität. Refactoring in kleinere, fokussierte Funktionen mit klaren Verantwortlichkeiten reduziert die Komplexität.