PyDay: Refactoring

„Refactoring“ ist nicht nur ein schöner Begriff, es hat tatsächlich einen großen Nutzen. Gemeint ist damit, dass Programmcode „schön“ gemacht wird, ohne seine Funktionalität zu verändern. Es gibt viele Veränderungen, die unter diesem Sammelbegriff gemacht werden können, z.B.:

  • mehrere Codezeilen zu einer Funktion zusammenfassen und dann den Funktionsaufruf anstelle der ursprünglichen Codezeilen einsetzen
  • Variablen, Funktionen oder Dateien umbenennen, um ihren Zweck besser kenntlich zu machen

Bei diesen Aktionen kann uns Eclipse mit PyDev entscheidend helfen, denn es bietet einen entsprechenden Menübefehl an:

Refactoring-Rename-1Da das gerade in der vorigen Folge aktivierte PyLint sich über den Namen der Funktion ParseCommandLine beschwert, ändern wir diesen einfach in parse_command_line ab. Wenn wir dafür die Refactoring-Funktion verwenden, ändert diese für uns zugleich auch alle Aufrufe dieser Funktion. Die hoffentlich automatisch nach einer Speicherung ablaufenden Unit-Tests (siehe Artikel „PyDay: Unittests“ sollten erneut „grün“ sein. Im Moment ist das zwar noch bedeutungslos, da wir noch keine Unit-Tests für die Kommandozeilenauswertung haben, aber das Prinzip sei hierbei schon erwähnt: Wenn eine Sequenz durch Unit-Tests bereits abgesichert wird, müssen diese Tests nach einem Refactoring erneut durchgeführt werden und erfolgreich ablaufen. Dann können wir einigermaßen sicherstellen, dass es wirklich nur „optische Änderungen“ waren.

Unter der Anleitung von PyLint habe ich noch weitere Refactoring-Schritte vorgenommen, was im Changeset 659932d nachzulesen ist.

Eine andere Stelle, die PyLint regelmäßig bemängelt, sind fehlende DocStrings (siehe den Artikel über die Schönheit des Codes). Diese ergänze ich mit „Strg+1/Make Docstring“ in Changeset 461fc7a.


SmallInvoice Logo

Ähnliche Artikel:

AuthorChristoph Jüngling

Selbständiger Softwareentwickler und Seminarleiter

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

19 − 4 =