Schulungen, Coaching und Technologieberatung

DruckenE-Mail Adresse

Clean Code: Best Practices für modernes C++

Kurs-Nr.:
19
Ort:
Online-Schulung

Beschreibung

 Dauer

  • 3 Tage

Begleitliteratur

  • Jeder Teilnehmer erhält eines meiner C++ Bücher zur freien Auswahl

Vorgehensweise

  • Theorie und Praxis mit vielen Übungen, zu denen Sie den Sourcecode und die Musterlösungen erhalten
  • Sie benötigen einen PC mit einem aktuellen C++ Compiler (mind. C++11)

Ziel

  • Lerne Sie den sicheren Einsatz von modernem C++ kennen
  • Entwickeln Sie durch ein bewährtes Regelwerk modernes C++ per Design 

Standard

  • C++11/14/17 Standard

Inhalt

Zentrale Prinzipien guter Softwareentwicklung

  • Was verbirgt hinter den Akronymen wie KISS, YAGNI, DRY und SOLID

Das Regelwerk für sichere Softwareentwicklung

Das Regelwerk der C++ Core Guidelines umfasst die wichtigen Aspekte der Softwareentwicklung:

  • Philosopie
  • Interfaces
    • Stabile Interfaces definieren
    • Der funktionale und nichtfunktionale Datenkanal von Interfaces
  • Funktionen
    • Reine Funktionen für Testbarkeit entwerfen
    • Richtige Annahme von Funktionsargumenten und Rückgabe ihres Ergebnisses
  • Klassen und Klassenhierarchien
    • Einsatz von class versus struct
    • Entwurf von Klassen (The Big Six)
    • Implizite Konvertierungen verbieten
    • Richtige Initialisierung und Destruktion von Objekten
    • Virtualität richtig anwenden
    • Überladen und Überschreiben unterscheiden
  • Enumerations
  • Ressource Management
    • Sicherere Umgang mit Ressourcen
    • RAII (Resource Acquisition Is Initialization) verwenden
  • Ausdrücke und Anweisungen
    • Gute Name für Softwarekomponenten verwenden
    • Typsicherer Initialisierung mit geschweiften Klammern
    • Automatische Typbestimmung mit auto
  • Performanz
    • Regeln für Optimierung
    • Bedeutung von Performanzmessungen
  • Concurrency
    • (NNM) No Naked Mutex anwenden
    • Die Gefahren von Condition Variablen meistern
    • In Task und nicht in Threads denken
  • Error Handling
    • Error Strategie für das Programm systematisch entwickeln
  • Konstanten
    • Die Wichtigkeit von Konstantheit für den Optimierer und die Codequalität
  • Templates
    • Templates gezielt einsetzen
  • C-Style Programmierung
    • C mit C++ Code verheiraten
  • Die Standard Bibliothek
    • std::array und std::vector sind die besten Freunde
    • Falls möglich, std::unordered_map std::map vorziehen

Pattern und Idiome

  • Vererbung versus Komposition
  • Stellvertreter
  • Ressource Acquisition Is Initialization(RAII)
  • Fabrikmethode
  • Singleton
  • Laufzeit- versus Kompilezeitpolymorphismus
  • Curiously Recurring Template Pattern(CRTP)

Testen (optional)

  • Testhierarchien
  • Charakteristiken guter Tests
  • Unit Tests
  • Test Driven Development (TDD)

Refaktoring (optional)

  • Vorteile
  • Code Smells
  • Werkzeugunterstützung

Wichtige Online Werkzeuge

Cppreference

Sanitizers

Compiler Explorer

C++ Insights

Guidelines Support Library

Teilnahmebedingungen:

Die allgemeinen Teilnahmebedingungen befinden sich in den AGBs.

 

 

Tragen Sie sich in die Interessentenliste ein!

Für diesen Kurs sind bisher keine Termine angesetzt.
Wenn Sie sich für den Kurs interessieren, können Sie sich in die Interessentenliste eintragen. Sie werden dann benachrichtigt, sobald ein Termin für den Kurs feststeht.

Teilnehmerdaten

Kontaktdaten

* notwendige Angaben

Kategorie

Zum Seitenanfang