Refactoring

Refactoring

Ist das Ändern eines Software Systems auf eine Weise die das äußere Verhalten des Codes nicht verändert, aber dessen interne Struktur verbessert.

  • Nicht-funktionale Anforderungen - NFRs
    • Leichte Erweiterbarkeit
      • Information Hiding Prinzip
    • Leiche Änderbarkeit
      • geringe Redundanz
    • Leichte Verständlichkeit
      • Pragmatik gegen Allgemeingültigkeit oder größtmögliche Kürze abwägen

Guter Code

  • Sprechende Variablen- und Methodennamen
  • Kurze Klassen und Methoden
  • gut benannte private Hilfsmethoden/Variablen definieren
  • Geringe Verschachtelungstiefe/Einrückung
  • Keine unnötigen Kommentare
  • Funktionsweise dokumentieren durch JavaDoc oder Unit-Tests

Ziele von Refactoring

manuelle

  • Redundanzverringerung
    • kürzerer Code
    • bessere Wartbarkeit
  • Bessere Verständlichkeit
    • Manchmal dafür länger
  • Erhöhung der Flexibilität
    • z.B. Einführung von extra Interface
    • oft komplizierter, weil Indirektion

automatisch

  • rename
  • move
  • extract variable
  • extract method
  • inline
  • extract interface
  • pull up
  • replace constructor with builder
Last modified 2022.11.28