Software Design mit C++

59,50 €

% 119,00 €* (50% gespart)

Lieferzeit Sofort lieferbar

Lernen Sie, wie Vererbung richtig funktioniert und wie Sie mit Design Patterns und Type Erasure besseren Code entwickeln. IT-Experte und C++-Spezialist Klaus Iglberger zeigt in seinem Videokurs anhand vieler anschaulicher praktischer Beispiele, wie Sie moderne Konzepte in Ihre Entwicklung einfließen lassen. Sie können direkt mitmachen und Ihr erlerntes Wissen anhand von Übungsaufgaben und Quizzes überprüfen.


  • Moderne C++-Entwicklung anschaulich erklärt in 79 Lektionen
  • Prüfen Sie das Gelernte in Wissenstests
  • Stellen Sie den Experten Fragen über das Q&A-Modul
  • Machen Sie mit bei praktischen Übungen
  • Inkl. Quelltext der Programmieraufgaben 
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, und das nicht nur in C++. Doch modernes C++ baut primär auf einen anderen, vielleicht überlegenen Ansatz: “Value Semantics”.


Dieser Videokurs beschäftigt sich mit der Frage, warum vererbungsbasiertes Software Design heute eher problematisch gesehen wird und warum modernes C++ auf Value Semantics ausgerichtet ist. Der Kurs demonstriert verschiedene Beispiele aus der Standardbibliothek und Beispiele in der Form von klassischen und modernen Design Patterns. Zudem geht er auf die Frage ein, wie man gute Vererbungshierarchien implementiert und wie man die bekannten Probleme und den Missbrauch von Vererbung vermeidet.


Länge:  463 Minuten




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 and -Berater. Seit dem Abschluss seiner Doktorarbeit in der Informatik in 2010 hat er sich auf C++-Software-Design für große Systeme spezialisiert. Er teilt sein Fachwissen in beliebten C++-Kursen rund um den Globus (primär in Deutschland, aber auch in der ganzen EU und den USA). Er ist der Initiator und Hauptentwickler der Blaze C++ Mathebibliothek und einer der Organisatoren der Münchner C++ User Group.


So lernen Sie mit diesem Videokurs:

In den Videokursen von heise Academy lernen Sie IT-Themen anschaulich und verständlich. In den Videos schauen Sie den Experten bei der praktischen Arbeit zu und lassen Sie sich dabei 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 hält viele Funktionen für Sie bereit, die Ihnen beim Lernen helfen können:


  • 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:
21.06.2021

0 von 0 Bewertungen

Geben Sie eine Bewertung ab!

Teilen Sie Ihre Erfahrungen mit dem Produkt mit anderen Kunden.