Clean Code · Programming · Python

Lesbarer Python Code: 9 Grundregeln

Wie schreibt man guten Python Code? Was ist guter Code überhaupt? Ein alter Bekannter sagte immer: „Quellcode ist da um gelesen zu werden“ und genau darum geht es. Für manche (mich damals eingeschlossen) mag das jetzt etwas hart klingen, aber dynamische Sprachen wie PHP, oder Python benutzt man nicht nicht um besonders effiziente Programme zu schreiben. Das können die Hardwarenahen wie C und Assembler besser. Python ist cool weil man damit sehr schnell etwas zum laufen bringen kann und der Code meist sehr einfach zu lesen und zu verstehen ist. Meistens… Segen und Fluch der Tatsache, dass Programme fast schneller gecoded als geplant sind ist ein leider allzu oft resultierender unlesbarer Spagetticode. Um das zu verhindert habe ich im laufe der Jahre ein paar Grundregeln der Pythonprogrammierung aufgestellt mit denen der Code besonders schön wird. Viel Spass beim lesen!

  1. PEP8
    Die Pythonentwickler propagieren auf ihrer Webseite den „Style Guide for Python Code“. Ihr tut gut daran zumindest mal reingeguckt zu haben. Das Dokument findet ihr hier.
  2. Linting
    Benutzt auf jeden fall ein Linter Tool. Pylint ist eine gute Variante. Das hilft nicht nur den Code lesbarer zu machen, sondern deutet auch hin und wieder auf strukturelle Probleme hin.
  3. Autoformater
    Black, Autopep8 etc. Egal welcher euch gut gefälllt… Benutzt einen und stellt sicher dass alle Entwickler die am selben Projekt arbeiten den selben benutzen. Vor allem bei Python ist es wichtig, dass es eine einheitliche Regelung zum Thema Tab vs Leertaste oder Doublequotes vs Singlequotes gibt.
  4. Zeilenlänge
    Auch wenn es ein Artefakt als längst vergangener Zeit ist in der die Monitore noch Würfelförmig waren: Haltet eure Zeilen unter 100, besser unter 80 Zeichen. Es gibt nichts schlimmeres als Zeilenumbrüche im Python Code. Entwickler die euren Code pflegen werden es euch danken. Diese Regel verhindert übrigens auch, dass ihr zu viele Funktionen in einer einzelnen Zeile kaskadiert und dadurch unlesbare Monstren erschafft. 😉
  5. Funktionslänge
    Versucht die Zeilenlänge von 5 Zeilen pro Funktion nicht zu überschreiten. Eine Funktion sollte genau eine Sache tun. Falls man einen Teil aus einer Funktion in eine eigene Funktion schieben kann sollte man das auch tun!
  6. Kurzer Code
    Lest euren Code durch bevor ihr ihn eincheckt. Kann man irgendwas durch Pythons Build-in Funktionen umsetzen? Funktionen wie map() oder filter() können durchaus die ein oder andere For-Schleife ersetzen.
  7. Einrückungen
    Beschränkt euch auf 2 Einrückungsblöcke pro Funktion. Solltet ihr mehr brauchen macht eure Funktion zu viele Dinge. In dem Fall solltet ihr sie in mehrere Funktionen aufspalten (Siehe Regel 5).
  8. Parameter
    Funktionen sollten nicht mehr als 3 Parameter haben. Besser sind 2 oder weniger. Seid ihr der Meinung, dass das gar nicht funktionieren kann, ist es ein gute Zeichen dafür dass ihr die ein oder andere Klasse erschaffen solltet oder dass eure Funktionen zu groß sind.
  9. Kommentare
    Kommentare sind dazu da unlesbaren Code verständlich zu machen. Da es in diesem Text darum geht gut lesbaren Code zu schreiben sollten Kommentare überflüssig sein. Versucht die Dinge im Code zu erklären indem ihr Funktionen und Variablen sprechend benennt. Ausnahmen in denen Kommentare durchaus Sinn machen sind schwer lesbare Fragmente wie etwa Reguläre Ausdrücke. Docstrings zählen in meinen Augen nicht zu den Kommentaren und sind demnach Pflicht für jedes Modul.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s