====== Refactoring ====== * beim Refactoring müssen ggfs. auch die Codekommentare angepasst werden ===== Anzeichen für verbesserungswürdigen Code ===== **nach \cite[S. 282ff.]{Goodliffe2006}** * viele große Klassen * kryptische/irreführende Funktionsnamen * keine Struktur erkennbar * es gibt duplizierten Code * es gibt starke Kopplung * Daten werden immer wieder hin- und herkonvertiert * überladene, sich häufig ändernde APIs * private Implementierungen werden über öffentliche APIs zugänglich gemacht (um Hacks zu ermöglichen) * der Code strotzt vor Workarounds und Quick Fixes * Funktionen haben lange Listen von Parametern * es gibt Codeteile, an die sich niemand herantraut * neue Features werden ohne entsprechende Dokumentation hinzugefügt * beim Kompilieren gibt es viele Warnungen * es gibt Kommentare wie "Don't touch this"