sick2020-07
Kursbegleitenden Internet-Links zur Schulung:
Fortgeschrittene Objektorientierte Programmierung in c++
(Der Weg zu "Clean Code")
---
- Mini-Literaturliste (bei WEITEM nicht volltändig)
- Speziell zum Thema "richtige Vererbung":
Proper Inheritance (C++ FAQ)
(aber auch die gesamte FAQ ist lesenswert) - 101 Rules, Guidelines und Best Practices
- Refactoring: Improving the Design of Existing Code
- C++ Core Guidelines
- CERT C++ Coding Standard
- Google C++ Coding Standard
- Efficient Object-Oriented and Template Microcontroller Programming
- Multi-Paradigm Design in C++
- Functional Programming in C++
- Speziell zum Thema "richtige Vererbung":
- Info-Grafiken:
- Online-Beispiele:
- Optimize Beispiel 1
- Optimize Beispiel 2
- Sort mit Lambda
- Copy/Move delete/default
- FCOL Alternative (Objektverbindungen zur Compilezeit erstellen)
- FOCL Alternative (Mehrfachvererbung mit virtueller Basisklasse)
- OnlineDBG
- Kapitel 2: Grundlegende Prinzipien
- Kapitel 3: SOLID Prinzipien
- SRP
- OCP
- LSP
- ISP
- EXERCISE
- SOLUTION Änderungen nur gemäß "TO-DO"s: => Ende durch Exception in Zinsberechnung
- SOLUTION (2. Version): Ende durch Exception vermieden mit try-catch in Zinsberechnung durch Bank::PayInterest
- SOLUTION (3. Version) try-catch beschränkt auf Initialisierung der Zinssatz-Variablen
- SOLUTION (4. Version) Vermeiden der Zinsberechnung für PocketMoneyAccount mittels RTTI (Run-Time Type Identification)
- SOLUTION (5. Version)
- keine Exception mehr in PocketMoneyAccount::CalculateInterest (= ENTGEGEN der Aufgabenstellung)
- Wiederholungen in Klasse Bank reduriert mit "Member Function Template" (= kein direkter Bezug zur Aufgabenstellung)
- DIP
- Kapitel 4: Weitere Prinzipien
- Kaiptel 5: