Sobes.tech
Middle

Welche Bewertungsmaßstäbe für Code im prozeduralen Stil können als gut und welche als schlecht angesehen werden?

sobes.tech KI

Antwort von AI

Gute Kriterien:

  • Lesbarkeit: Wie leicht ist es zu verstehen, was der Code macht, wenn man ihn von oben nach unten liest.
  • Klarheit bei Variablen und Funktionen: Verwendung beschreibender Namen, die Zweck und Logik widerspiegeln.
  • Zerlegung: Aufteilung komplexer Aufgaben in kleinere, handhabbare Funktionen. Jede Funktion sollte eine konkrete Aufgabe erfüllen.
  • Fehlen von globalen Variablen: Minimierung der Verwendung globaler Variablen, um Abhängigkeiten und Nebenwirkungen zu verringern.
  • Fehlerbehandlung: Explizite Behandlung möglicher Fehler und Ausnahmen.
  • Kommentare: Vorhanden dort, wo der Code nicht offensichtlich ist oder um die Logik zu erklären.
  • Konsistenter Stil: Einheitlicher Formatierungs- und Benennungstil im gesamten Projekt.
  • Minimierung von Code-Duplikation: Vermeidung der Wiederholung gleicher Codeblöcke.
# Gutes Beispiel für Zerlegung und klare Namen
def calculate_average(numbers):
    """Berechnet den Durchschnitt einer Liste von Zahlen."""
    if not numbers:
        return 0
    total = sum(numbers)
    return total / len(numbers)

def process_data(data):
    # Angenommen, 'data' ist eine Liste von Listen von Zahlen
    averages = []
    for row in data:
        avg = calculate_average(row)
        averages.append(avg)
    return averages

Schlechte Kriterien:

  • Unklarheit: Der Code ist schwer verständlich wegen verworrener Logik, unklarer Namen oder fehlender Struktur.
  • "Spaghetti-Code": Viele Übergänge und Abhängigkeiten, die die Ausführungskette schwer nachvollziehbar machen.
  • "Lazo"-Code: Lange, monolithische Funktionen, die viele unzusammenhängende Aufgaben ausführen.
  • Verwendung von "magischen Zahlen": Nicht erklärte numerische Konstanten im Code.
  • Fehlende Fehlerbehandlung: Das Programm "stürzt ab" bei unerwarteten Situationen.
  • Code-Duplikation: Gleiche oder sehr ähnliche Codeblöcke werden an verschiedenen Stellen wiederholt.
  • Inkonsequenter Stil: Unterschiedliche Formatierungen und Benennungen erschweren das Lesen.
# Schlechte Beispiel für "Lazo" und magische Zahlen
def process(d):
    t = 0
    for r in d:
        s = 0
        c = 0
        for n in r:
            s += n
            c += 1
        if c > 0:
            t += s / c
    return t / len(d) if len(d) > 0 else 0

Vergleich:

Gute Kriterien Schlechte Kriterien
Lesbarkeit Unklarheit ("Spaghetti", "Lazo")
Verständliche Variablen und Funktionen Unleserliche Namen
Zerlegung Monolithische Funktionen
Keine globalen Variablen Übermäßiger Einsatz globaler Variablen
Explizite Fehlerbehandlung Fehlende Fehlerbehandlung
Kommentare dort, wo sie notwendig sind Fehlende Kommentare
Konsistenter Stil Inkonsistenter Stil
Minimierung der Code-Duplikation Code-Duplikation