Software Design mit C++

119,00 €*

Lieferzeit Sofort lieferbar

Lernen Sie, wie Vererbung richtig funktioniert und wie Sie mit Design Patterns und Type Erasure besseren Code entwickeln. Der IT-Experte und C++-Spezialist Klaus Iglberger zeigt in seinem Videokurs anhand vieler anschaulicher Praxisbeispiele, wie Sie moderne Konzepte in Ihre Entwicklung integrieren können. Sie können direkt mitmachen und Ihr erworbenes Wissen anhand von Übungen und Quizfragen überprüfen.

Anzahl
Artikel-Beschreibung

Von Sean Parent stammt das berühmte Zitat “Inheritance is the Base Class of Evil” - Vererbung hat in den letzten Jahren erheblich an Popularität verloren, nicht nur in C++. Modernes C++ setzt vor allem auf einen anderen, vielleicht überlegenen Ansatz: “Value Semantics”.

Dieser Videokurs geht der Frage nach, warum vererbungsbasiertes Softwaredesign heute eher als problematisch angesehen wird und warum modernes C++ auf Value Semantics ausgerichtet ist. Der Kurs zeigt verschiedene Beispiele aus der Standardbibliothek und Beispiele in Form von klassischen und modernen Design Patterns. Außerdem wird die Frage behandelt, wie man gute Vererbungshierarchien implementiert und wie man die bekannten Probleme und den Missbrauch von Vererbung vermeidet.


Länge:  07:54 Stunden



Alle Lektionen im Überblick:

  • Einführung in den Kurs
    • Herzlich willkommen zu diesem Kurs
  • Vererbungshierarchien: Die guten Seiten
    • Intro
    • Das Problem: Zeichnen von Formen
    • Kommentar zu Code-Beispielen
    • Prozedurales Programmieren: Dynamischer Polymorphismus à la C
    • Prozedurales Programmieren: Erweitern mit neuen Typen
    • Objekt-Orientiertes Programmieren: Dynamischer Polymorphishmus à la C++
    • Vergleich der beiden Lösungsansätze
    • Quiz: Vererbungshierarchien: Die guten Seiten
  • Vererbungshierarchien: Die dunklen Seiten
    • Intro
    • Vererbung in der C++ Community
    • Performance-Probleme/Overhead
    • Erweiterbarkeit von Typen und Operationen
    • Missbrauch von Vererbung
    • Die Geschichte von C++
    • Quiz: Vererbungshierarchien: Die dunklen Seiten
  • Die Philosophie des modernen C++
    • Intro
    • Was ist Value Semantics?
    • Beispiele aus der Standardbibliothek: Die STL
    • Beispiele aus der Standardbibliothek: std::optional
    • Beispiele aus der Standardbibliothek: sd::function
    • Beispiele aus der Standardbibliothek: sd::variant
    • Der Gegenspieler: "Reference Semantics"
    • Beispiele aus der Standardbibliothek: std::string_view
    • Beispiele aus der Standardbibliothek: std::span
    • Design mit "Value Semantics"
    • Quiz: Die Philosophie des Modernen C++: Value Semantics
  • Das Visitor Design Pattern
    • Intro
    • Das GoF Visitor Design Pattern
    • Die klassische Implementierung mit Vererbungshierarchien
    • Die moderne Implementierung mit std::variant
    • Vergleich zwischen klassischer und moderner Implementierung
    • Performance-Vergleich zwischen klassischer und moderner Implementierung
    • Quiz: Das Visitor Design Pattern
  • Das Strategy Design Pattern
    • Intro
    • Das GoF Strategy Design Pattern
    • Die klassiche Implementierung mit Vererbungshierarchie
    • Die moderne Implementierung mit std::function
    • Vergleich zwischen klassischer und moderner Implementierung
    • Performance-Vergleich zwischen klassischer und moderner Implementierung
    • Quiz: Das Strategy Design Pattern
  • Type Erasure: Ersatz für Vererbungshierarchien?
    • Intro
    • Type Erasure: Beispiele aus der Standardbibliothek
    • Die Implementierung von std::function: Das public Interface
    • Die Implementierung von std::function: Der Kern von Type Erasure
    • Die Implementierung von std::function: Die Special Member Functions
    • Umsetzung von Type Erasure für eigene Typen
    • Performance Optimierung mittels "Small Buffer Optimization"
    • Performance Optimierung mittels "Manual Dispatch"
    • Die Performance von Type Erasure
    • Type Erasure und Referenzen
    • Quiz: Type Erasure: Ersatz für Vererbungshierarchien?
  • Das Decorator Design Pattern
    • Intro
    • Das GoF Decorator Design Pattern
    • Die klassische Implementierung mit Vererbungshierarchie
    • Die moderne Implementierung mit Type Erasure
    • "Policy-Based Design"
    • Moderne Implementierung mit Type Erasure und Policy-Based Design
    • Quiz: Das Decorator Design Pattern
  • Das Factory Method Design Pattern
    • Intro
    • Das GoF Factory Method Design Pattern
    • Die klassische Implementierung mit Vererbungshierarchien
    • Die moderne Implementierung mit Type Erasure
    • Die moderne Implementierung mit std::variant
    • Quiz: Das Factory Method Design Pattern
  • Vererbung ja, aber richtig!
    • Intro
    • Erfüllen des Liskov Substitution Prinzips (LSP)
    • Maximale Tiefe von Vererbungshierarchien
    • Abhängigkeiten innerhalb einer Vererbungshierarchie
    • Vererbung von Non-Base-Klassen
    • Das "Non-Virtual Interface" Idiom (NVI)
    • Das "Curiously Recurring Template Pattern" (CRTP)
    • Limitierungen des CRTP
    • Quiz: Vererbung ja, aber richtig
  • Überraschungen in Vererbungshierarchien
    • Intro
    • "Name Lookup" in Vererbungshierarchien
    • Virtuelle Funktionen und Default Parameter
    • Virtuelle Functionsaufrufe in Constructors and Destructors
    • Arrays von abgeleiteten Typen
    • Siamese Twins
    • Quiz: Überraschungen in Vererbungshierarchien
  • Appendix: Die SOLID Prinzipien
    • Intro
    • Das Ziel der SOLID Prinzipien
    • Das Single Responsibility Prinzip (SRP)
    • Das Open-Closed Prinzip (OCP)
    • Das Liskov-Substitution Prinzip (LSP)
    • Das Interface Segregation Prinzip (ISP)
    • Das Dependency Inversion Prinzip (DIP)
    • Quiz: Appendix - Die SOLID Prinzipien
    • Fazit und Abschluss


Über den Trainer:

Klaus Iglberger ist freiberuflicher C++-Trainer und -Berater. Seit dem Abschluss seiner Doktorarbeit in Informatik im Jahr 2010 hat er sich auf  C++-Software-Design für große Systeme spezialisiert. Sein Fachwissen gibt er in beliebten C++-Kursen rund um den Globus weiter (hauptsächlich in Deutschland, aber auch in der gesamten EU und den USA). Er ist Initiator und Hauptentwickler der Blaze C++-Mathematikbibliothek und einer der Organisatoren der Münchner C++ User Group.


So lernen Sie mit diesem Videokurs:

In den Videokursen der heise Academy lernen Sie IT-Themen anschaulich und verständlich. In den Videos schauen Sie Experten bei der praktischen Arbeit zu und lassen sich alles genau erklären. Das Wissen ist in viele kleine Lernschritte und Aufgaben unterteilt - Sie können den Kurs Lektion für Lektion durcharbeiten oder gezielt zu Themen springen, die Sie interessieren.  Die persönliche Lernumgebung der heise Academy bietet Ihnen viele Funktionen, die Sie beim Lernen unterstützen:

  • Flexibler Videoplayer mit vielen Steuerungsmöglichkeiten
  • Wissensquizzes zur Lernkontrolle
  • Lernhistorie und Lernfortschritt
  • Lesezeichen und Notizen 
  • Volltextsuche in den Videos
  • Frage-den-Experten-Modul
  • Übungsmaterial zum Mitmachen
  • Responsive Web-App und Videostreaming für alle Endgeräte


Technische Voraussetzungen:

Für diesen Videokurs wird lediglich ein Browser (mit eingeschalteter JavaScript-Funktionalität) und eine Internetverbindung benötigt.

Artikel-Details
Anbieter:
Heise Medien GmbH & Co. KG
Artikelnummer:
softwaredesign-mit-moderem-c-plus-plus-iglberger-01
Veröffentlicht:
22.06.21