Wenn Sie diese acht erstklassigen Python-Programmierpraktiken befolgen, dann machen Sie es richtig. [...]
Wenn man in der Entwicklung etwas falsch macht, erkennt man das in der Regel schnell. Bugs, die aus dem Nichts auftauchen, Code, der wie Melasse zerfließt, und schwerfällige Projektstrukturen sind nur drei der verräterischen Anzeichen. Doch manchmal ist es gar nicht so leicht zu erkennen, ob man es richtig macht. Gute Programmiergewohnheiten sind wie gute Spezialeffekte in Filmen: Man merkt nicht, dass sie da sind, weil sie sich nicht ankündigen.
Was sind nun also einige der Anzeichen für gute Programmiergewohnheiten in Python? Wenn die Sprache neu für Sie ist und Sie eine Vorstellung davon brauchen könnten, wie gutes Entwicklerverhalten in Python aussieht, oder wenn Sie einfach nur wissen möchten, ob einige der Gewohnheiten, die Sie sich angeeignet haben, es wert sind, beibehalten zu werden, haben wir eine Reihe von Wegweisern für Sie zusammengestellt. Wenn Sie sich an die acht unten aufgeführten bewährten Vorgehensweisen halten, dann verwenden Sie Python richtig.
Sie verwenden virtuelle Umgebungen und Projektmanagement-Tools
Selbst kleine, einmalige Python-Projekte profitieren von einer virtuellen Umgebung und einer richtigen Projektstruktur. Tools wie Poetry sorgen dafür, dass der Einrichtungsprozess nahezu automatisch verläuft. Sogar mit geringem venv ist es relativ einfach, Ihr Projekt mit einer virtuellen Umgebung zu bestücken und von deren Vorteilen zu profitieren.
Version Control ist ein weiteres wichtiges Projektmanagement-Tool. Heutzutage bedeutet das in der Regel Git. Und ja, Sie sollten die Vorteile von Git sogar für einfache Ein-Datei-Projekte nutzen. Man weiß nie, wann Sie auf eine frühere Version von etwas zurückgreifen müssen. Die meisten IDEs, die Python unterstützen, haben auch eine integrierte Unterstützung für venv und Git, so dass es einfach ist, sie zu verwenden.
Sie verwenden in Python integrierte Funktionen und erfinden das Rad nicht neu
Der versierte Python-Programmierer weiß die eingebauten Funktionen und die Standardbibliothek von Python zu nutzen, um die große Mehrheit der üblichen Anwendungsfälle zu bewältigen. Die meisten Routineaufgaben, die Sie erledigen müssen – Datei-Manipulationen, reguläre Ausdrücke, Arbeiten mit einem Web-Browser usw. – werden bereits irgendwo in Python bearbeitet.
Eine häufige Frage, die weniger erfahrene Python-Entwickler stellen, lautet: Woher weiß ich, ob etwas in der Standardbibliothek meinen Anwendungsfall abdeckt, ohne dass ich mir den Inhalt merken muss? Die kurze Antwort ist, den Index der Standardbibliothek und die Übersichtsseiten über die eingebauten Funktionen mit einem Lesezeichen zu versehen und sie zu überfliegen, wenn Sie mit einem „alltäglichen Programmierproblem“ zu kämpfen haben. Die ständige Auseinandersetzung mit den in Python verfügbaren Tools ist ein guter Lehrmeister.
Sie verwenden die richtigen Module für Ihre Aufgabe
Wie bei den Built-Ins und der Standardbibliothek ist die Nutzung der enormen Sammlung von Python-Modulen von Drittanbietern eine Arbeitserleichterung. Feuern Sie einen Suchbegriff zu Ihrem Problem über das Web-Frontend von PyPI ab, und Sie werden fast immer Module finden, die eine sofort einsatzbereite Lösung bieten. Noch einmal: Warum das (Python-)Rad neu erfinden, wenn Sie es einfach pip install(en) können? Außerdem zeichnen sich viele Python-Module durch eine C-beschleunigte Leistung aus, was bedeutet, dass Sie eine höhere Entwicklungsgeschwindigkeit und eine schnellere Programmausführung erhalten, wenn Sie die Module anderer verwenden.
Eine Frage, die oft gestellt wird: Wenn mehrere Module verfügbar sind, die meinen Anwendungsfall bearbeiten, welches soll ich dann verwenden? Die einfache Antwort ist, mit dem Projekt zu beginnen, das die meiste Nutzung oder Dynamik zu haben scheint (wie z.B. durch GitHub-Sterne oder -Gabeln angezeigt wird), denn es ist gut möglich, dass Ihr Anwendungsfall derselbe ist wie der vieler anderer Leute.
Sie werden nicht verrückt mit OOP
Die objektorientierte Programmierung (OOP) bündelt Datenstrukturen mit den Methoden, mit denen sie manipuliert werden, wodurch es einfacher wird, high-level Code zu schreiben. Für eine high-level Sprache wie Python ist OOP eine gute Wahl. Aber nicht jeder Python-Code muss objektorientiert sein. Python-Entwickler wissen, dass 20 Zeilen (oder sogar 200 Zeilen) get-it-done-and-get-on-with-it Code eine wertvolle Zeitersparnis gegenüber einer objektorientierten Alternative sein können, solange die Aufgabe nicht den OOP-Ansatz erfordert. Im Großen und Ganzen profitieren große und komplexe Projekte von der Objektorientierung, aber solange das Projekt keine OOP erfordert, ist es in Ordnung, die Regeln zu lockern.
Sie testen Ihren Code
Da wir gerade von etwas sprechen, das mit größeren Projekten gemacht wird, wissen die weisen Pythonistas um den Wert der Erstellung von Testsuiten. So mühsam und ermüdend das Schreiben von Tests auch sein kann, sind sie doch von unschätzbarem Wert, wenn ein Projekt über ein bestimmtes Maß an Komplexität hinaus wächst. Ein Zeichen noch fortgeschrittenerer Beherrschung ist die Erstellung von Tests parallel zu jeder neuen Funktion, nicht erst im Nachhinein. Je schneller Sie den Aufwand beim Schreiben von Tests überwinden, desto schneller können Sie Ihren Code verbessern. Beginnen Sie die Tests gleich mit der ersten implementierten Funktion, und Sie werden froh sein, dass Sie sie implementiert haben.
Sie verwenden nicht Python 2
Das war letztes Jahr so, und es ist jetzt doppelt so wahr. Python 2 hatte einen langen, guten Lauf, aber es wird jetzt vom offiziellen Python-Entwicklerteam nicht mehr unterstützt. Clevere Pythonistas haben ihre Projekte bereits auf Python 3 migriert, oder sie tun es jetzt.
Sie verwenden auch nicht die neueste Version von Python
Python 3.8 mag die neueste und „beste“ Version von Python sein, aber das bedeutet nicht, dass Sie verpflichtet sind, es zu nutzen. Tatsächlich versteht der kluge Software-Entwickler, dass die Verwendung der aktuellsten Version von irgendetwas ein Glücksspiel ist. Python ist da nicht anders. Der kluge Python-Programmierer hält sich an die Revision vor der aktuellsten Revision, um die größtmögliche Kompatibilität mit Modulen von Drittanbietern zu gewährleisten. Schließlich ist die Möglichkeit, auf all diese nützlichen Module zurückgreifen zu können, einer der Hauptgründe, Python überhaupt zu verwenden.
Sie verwenden auch andere Programmiersprachen
Python ist für fast alles als die „zweitbeste Programmiersprache“ beschrieben worden – und manchmal ist die Kluft zwischen der besten und der zweitbesten in der Tat groß. Kluge Python-Entwickler wissen, dass Python nur ein Tool unter vielen ist, und dass man immer das richtige Tool für die jeweilige Aufgabe verwenden sollte.
Für Anwendungen oder Operationen, die eine maximale Laufzeitgeschwindigkeit erfordern, werden Sie in der Regel nicht ausschließlich Python verwenden wollen; es ist C oder Rust oder sogar Go, nach dem Sie greifen werden. Aber nicht jede leistungsintensive Programmierung bedeutet den vollständigen Verzicht auf Python. Vielleicht bedeutet es nur, dass Sie eine C-basierte Bibliothek wie Numpy oder Pandas verwenden müssen, oder dass Sie C- oder C-kompatiblen Code in eine Python-Shell packen müssen, oder dass Sie Cython verwenden müssen, um Python in C umzuwandeln.
*Serdar Yegulalp ist ein leitender Autor bei InfoWorld, der sich auf maschinelles Lernen, Containerisierung, Devops, das Python-Ökosystem und periodische Überprüfungen konzentriert.
Be the first to comment