====== Code-Qualität/Refactoring ======
===== Code-Qualität =====
Von guter Software erwartet man nicht nur, dass sie funktioniert, sondern darüber hinaus, dass ihr Code leicht lesbar und anpassbar ist, auch von Software-Entwickler/-innen, die an der Erstellung des Codes nicht beteiligt waren. Man spricht von **Wartbarkeit** (//maintainability//) des Codes. \\ \\
Wichtige Kriterien wartbaren Codes:
* sprechende Variablenbezeichner
* Klassen mit eindeutiger Zuständigkeit
* Eine Methode erfüllt genau eine Aufgabe
* keine Code-Duplikate
* Vererbung und design patterns sind sinnvoll eingesetzt
===== Refactoring =====
Unter **Refactoring** (//Refaktorierung//) versteht man die Verbesserung der Struktur des Programmcodes unter Beibehaltung der Funktionalität. \\ \\
**Mögliche Maßnahmen:**
* Umbenennen von Variablen, Klassen, Methoden (-> "sprechende" Bezeichner!) \\ //"(renaming)"//
* Aufteilen einer langen Methode in mehrere kürzere Methoden
* Beseitigung von Code-Duplikaten durch Einführung einer neuen Methode
* Verkleinerung von Klassen (Beschränkung auf einen einzigen Zuständigkeitsbereich!) durch Einführung einer Vererbungshierarchie
* usw.