Best Practices
Gute C++-Gewohnheiten im Alltag#
Nachschlagen · Lektion 60 von 60
Voraussetzungen: Einführung; die vertiefenden Regeln verlinken auf spätere Kapitel. Lernziel: Du triffst nachvollziehbare Entscheidungen statt bloß kürzeren Code zu schreiben.
Best Practices sind bewährte Vorgehensweisen, keine Garantie für jedes denkbare Problem. Eine gute Regel benennt ihren Zweck und ihre Grenzen. Die C++ Core Guidelines bündeln vertiefende Empfehlungen zu Schnittstellen, Ressourcen und Typen.
Beim ersten Programm#
Initialisiere Werte, bevor du sie liest. Ein scheinbar zufälliger Anfangswert ist keine brauchbare Voreinstellung.
Verwende aussagekräftige Namen und einheitliche Einrückung. Kommentare erklären Gründe und Einheiten.
Schreibe std:: ausdrücklich und binde benötigte Header direkt ein.
Prüfe die Eingabe, bevor du rechnest. Unterscheide Formatfehler, unerlaubten Bereich und Eingabeende.
Behebe Compilerwarnungen bewusst. Deaktiviere sie nicht nur, um einen grünen Build zu sehen.
Bei Funktionen und Daten#
Halte eine Funktion auf eine verständliche Aufgabe begrenzt. Berechnung und Benutzerdialog lassen sich oft trennen. Kleine Werte werden häufig als Wert übergeben, größere vorhandene Lesedaten als const-Referenz. Eine veränderbare Referenz sollte eine bewusst verändernde Schnittstelle ausdrücken.
Verwende const, wenn ein Wert unverändert bleiben soll. Gib Einheiten und Grenzen einen Namen. Eine Zahl 1000 kann Millisekunden, Bytes oder eine fachliche Höchstanzahl bedeuten. Der Name sollte das erklären.
Bei Speicher und Besitz#
Beginne mit Werten, std::string, std::vector und anderen passenden Standardtypen. Verwende RAII für Ressourcen. unique_ptr drückt einzelnen Besitz aus; shared_ptr ist für tatsächlich gemeinsamen Besitz gedacht. Rohzeiger und Referenzen werden häufig zum nichtbesitzenden Zugriff verwendet und müssen ihre Ziele nicht selbst löschen.
Prüfe die Lebensdauer unabhängig von null. Containeränderungen können Verweise invalidieren. Ein const-Verweis verlängert nicht beliebig die Lebensdauer jeder Datenquelle. Eigene Klassen mit verwaltenden Membern sollten möglichst die Rule of Zero befolgen.
Bei Fehlern und Qualität#
Teste normale Eingaben, leere Daten und Grenzfälle. Halte einen gefundenen Fehler durch einen passenden Regressionstest fest. Benutze Debugger und Sanitizer für konkrete Fragen. Behauptete Geschwindigkeit sollte gemessen werden: Ein Benchmark ist eine kontrollierte Leistungsmessung mit festgelegter Aufgabe und Umgebung.
Optimierung verändert eine Umsetzung mit dem Ziel, etwa Laufzeit oder Speicherverbrauch zu verbessern. Messe zuerst den Engpass. Die komplizierteste Datenstruktur ist nicht automatisch die schnellste. Definiertes Verhalten und nachvollziehbare Besitzregeln sind Voraussetzungen für verlässliche Ergebnisse.
Übung#
Du willst „vorsichtshalber“ jede Variable als shared_ptr speichern. Welche Frage stellst du zuerst?
Lösung
Wer muss die Lebensdauer wirklich besitzen? Wenn ein normaler lokaler Wert genügt, ist geteilte dynamische Verwaltung unnötig. Wähle die einfachste Struktur, die den tatsächlichen Lebensdauervertrag ausdrückt.
Weiterlernen#
Zurück: Compiler- und Linkerfehler nachschlagen · Kursübersicht
Kommentare 0
Kommentare sind für diese Seite deaktiviert.