adesso Blog

In der heutigen Welt der Softwareentwicklung ist Python eine der populärsten und vielseitigsten Programmiersprachen. Sie hat sich als eine bevorzugte Wahl für Anwendungsfälle wie Datenanalyse, Data Engineering, maschinelles Lernen und vieles mehr etabliert. Als Python Developer ist es entscheidend, über die richtigen Werkzeuge zu verfügen, um produktiv zu arbeiten und hochwertigen Code zu schreiben. Eine der beliebtesten integrierten Entwicklungsumgebungen (IDEs) für Python Developer ist Visual Studio Code (VS-Code).

In diesem Blog-Beitrag werden wir uns auf die besten Visual-Studio-Code-Erweiterungen konzentrieren, die speziell für Python Developer entwickelt wurden. Diese Erweiterungen können euch helfen, die Effizienz eurer Arbeit zu steigern, indem sie euren Entwicklungsworkflow optimieren und nützliche Funktionen und Integrationen bereitstellen. Unabhängig davon, ob ihr eine erfahrener Python-Entwicklerin oder ein erfahrener Python-Entwickler seid oder gerade erst anfangt, die Sprache zu erlernen – diese Erweiterungen werden dazu beitragen, eure Produktivität zu erhöhen und euch dabei helfen, die bestmögliche Arbeit zu leisten.

Devcontainers

Den Beginn unserer Liste bildet die Erweiterung Dev Containers. Entwicklungsumgebungs-Container, auch bekannt als Dev Container, stellen isolierte und reproduzierbare Arbeitsumgebungen bereit, die auf Container-Technologien wie Docker basieren. Sie bieten Entwicklerinnen und Entwicklern eine Vielzahl von Vorteilen. Dazu zählen:

  • Konsistente Arbeitsumgebungen: Dev Container stellen sicher, dass alle Developer dieselbe Umgebung nutzen, wodurch Inkonsistenzen und unerwartete Verhaltensweisen aufgrund unterschiedlicher lokaler Setups vermieden werden.
  • Einfache Einrichtung: Mit Dev Containern können Entwicklerinnen und Entwickler schnell und einfach eine vollständig konfigurierte Arbeitsumgebung einrichten, ohne manuell Abhängigkeiten und Tools installieren zu müssen.
  • Reproduzierbarkeit: Da Dev Container die gesamte Entwicklungsumgebung innerhalb eines Containers kapseln, können sie leicht geteilt und auf verschiedenen Rechnern reproduziert werden, was die Zusammenarbeit und das Debuggen erleichtert.
  • Plattformunabhängigkeit: Dev Container ermöglichen es Developern, auf verschiedenen Betriebssystemen zu arbeiten, indem sie eine einheitliche Umgebung bereitstellen, die auf jeder Plattform, die Container-Technologie unterstützt, ausgeführt werden kann.
  • Einfache Aktualisierung: Änderungen an der Entwicklungsumgebung können zentral verwaltet und einfach auf alle Entwicklerinnen und Entwickler verteilt werden, indem der Dev Container aktualisiert wird, wodurch Zeit und Aufwand für die Aktualisierung einzelner Setups gespart werden.

Mittlerweile gibt es sie auch bei GitHub, die sogenannten Codespaces, und auf anderen Plattformen. Der Vorteil liegt auf der Hand: Eine Entwicklerin oder ein Entwickler kann einen Windows Laptop oder Mac Laptop haben, aber trotzdem in einem Linux System entwickeln.

Remote SSH

Die Visual Studio Code Extension Remote – SSH ermöglicht es Entwicklerinnen und Entwicklern, ihre lokale Visual-Studio-Code-Instanz mit entfernten Systemen über eine sichere Shell(SSH)-Verbindung zu verbinden. Diese Erweiterung ist besonders nützlich, wenn man auf entfernten Servern oder virtuellen Maschinen arbeiten muss, die über unterschiedliche Betriebssysteme, Bibliotheken oder Ressourcen verfügen.

Python Extension Pack

Zunächst einmal ist die Installation eines der zahlreichen Python Extension Packs empfehlenswert, da diese häufig Python, Python Tests und sogar Jinja oder ähnliche Erweiterungen enthalten. Diese Packs decken in der Regel die grundlegende Funktionalität für die Python-Entwicklung ab. Allerdings würde man sich das Leben unnötig erschweren, wenn man sich ausschließlich auf diese Standardpakete verlässt. Es gibt noch viele weitere nützliche Erweiterungen, die den Entwicklungsprozess optimieren und die Produktivität steigern können.

AutoDocString

Die Autodocstring Extension gehört zu den essenziellen Erweiterungen für Developer, die ihren Code professionell dokumentieren möchten. Autodocstring analysiert automatisch die Methodensignatur, die man dokumentieren möchte, und generiert einen Docstring, in dem die Variablennamen und -typen bereits integriert sind, sofern eine korrekte Typisierung verwendet wurde. Dies spart Zeit und Aufwand bei der Code-Dokumentation und trägt dazu bei, den Entwicklungsprozess effizienter und strukturierter zu gestalten.

Dieser Docstring wurde automatisiert generiert und kann geändert werden, um verschiedenen Formatierungsstandards wie Google, Sphinx oder Ähnlichem zu entsprechen.

GitHub Copilot

GitHub Copilot stellt ein revolutionäres KI-gestütztes Codevervollständigungswerkzeug dar, das in einer Kooperation zwischen OpenAI und GitHub entwickelt wurde. Es wurde speziell darauf trainiert, Entwicklerinnen und Entwicklern bei der Programmierung zu unterstützen, indem es automatisch Codevorschläge für eine Vielzahl von Programmiersprachen und Frameworks liefert. Das zugehörige Plugin ermöglicht die Integration von Copilot in Visual Studio Code, wodurch es Tool-Dateien im Projekt sowie den aktiven Code scannen und passende Vorschläge zur Codeergänzung liefern kann.

Ende des Jahres wird zudem GitHub Copilot X erscheinen, aktuell in einer technischen Beta, Copilot X ermöglicht noch mehr Features, vor allem auch Richtung der automatisierten Erstellung von Tests etc.

Better Comments

Die Better Comments Extension bereichert die Kommentarfunktion, indem sie speziellen Kommentaren farbliche Hervorhebungen hinzufügt. Dadurch werden wichtigere Anmerkungen und Hinweise im Code auf einen Blick deutlicher erkennbar. Dieser zusätzliche visuelle Akzent fördert eine klarere und besser strukturierte Kommentierung, was letztendlich zu einer verbesserten Lesbarkeit und Verständlichkeit des Codes beiträgt.

Gitignore

Diese Erweiterung erweist sich als unverzichtbares Werkzeug für Developer. Sie ermöglicht das effiziente Verwalten von .gitignore-Dateien und bietet eine umfangreiche Auswahl an Vorlagen, die auf die meisten Programmiersprachen, Compiler und Entwicklungswerkzeuge zugeschnitten sind. Die bereitgestellten Templates erleichtern die Einrichtung von Projekten und tragen dazu bei, den Entwicklungsprozess zu optimieren und zu beschleunigen.

Indent Rainbow

Die Python-Erweiterung Indent Rainbow verbessert die Lesbarkeit des Codes enorm, indem sie verschiedene Farben für unterschiedliche Einrückungsebenen verwendet. Dies ermöglicht ein schnelleres Verständnis der Codestruktur und erleichtert die Identifizierung zusammengehöriger Codeblöcke.

Fehlerquellen, wie falsch eingerückte Codeblöcke, können schneller erkannt und behoben werden. Dies trägt dazu bei, Fehler zu vermeiden, und sorgt für stabileren und zuverlässigeren Code.

Window Colors

Das Window Color Visual Studio Code Plugin ist eine praktische Ergänzung, die jedem neuen VS Code Fenster eine einzigartige Farbe auf Basis eines Hash-Werts des Wurzelverzeichnisnamens zuordnet. Dies führt dazu, dass jedes Projekt oder jeder Arbeitsbereich unterschiedliche Farben für die Aktivitätsleiste sowie die Titelleiste aufweist.

Auf diese Weise könnt ihr schnell und einfach erkennen, in welchem Fenster ihr euch gerade befindet, und so eure Arbeitsabläufe optimieren.

Markdown lint und Markdown all in one

Generell wird eine Dokumentation, beispielsweise in Form einer Readme-Datei, häufig im Markdown-Format verfasst. Daher ist es wichtig, die richtigen Werkzeuge zur effizienten Bearbeitung von Markdown-Dateien zur Hand zu haben.

Das Markdownlint Plugin für Visual Studio Code ist eine Erweiterung, die euren Markdown-Text analysiert und mögliche Fehler oder Inkonsistenzen identifiziert.

Ebenfalls empfehlenswert ist das Plugin Markdown All in One, das eine Vielzahl von Code-Completion-Funktionen und nützliche Features wie die automatische Erstellung einer Inhaltsübersicht (Table of Contents) bietet. Obwohl man dieses Plugin möglicherweise nicht täglich verwendet, erweist es sich bei der Bearbeitung von Markdown-Dateien als unverzichtbares Hilfsmittel.

Sonarlint

Das SonarLint Plugin für Visual Studio Code ist eine Erweiterung, die euren Code in Echtzeit analysiert und mögliche Fehler, Schwachstellen, Code Smells oder technische Schulden aufzeigt.

Gitlens

Das GitLens Plugin für Visual Studio Code ist eine Erweiterung, die euren Code mit Git-Informationen anreichert und euch erweiterte Funktionen für die Git-Integration bietet. Das Plugin ermöglicht es euch, die Geschichte, die Autorinnen und Autoren, die Änderungen sowie die Zusammenhänge eures Codes zu erkunden und zu verstehen. Das Plugin bietet auch nützliche Werkzeuge für Blame, Diff, Merge, Rebase und vieles mehr.

VSCode Icons

Da die standardmäßig bereitgestellten Icons in Visual Studio Code eher schlicht gehalten sind, empfiehlt es sich, ein Icon-Plugin zu installieren, um die Benutzeroberfläche ansprechender und informativer zu gestalten. Ein Beispiel für ein solches Plugin ist VSCode Icons. Wie in der folgenden Abbildung zu erkennen ist, werden Ordner und Dateien durch aussagekräftigere Symbole gekennzeichnet. Diese verbesserte visuelle Darstellung unterstützt Entwicklerinnen und Entwickler dabei, die Funktion der verschiedenen Ordner und Dateien auf einen Blick zu erfassen, und trägt somit zur Effizienzsteigerung im Arbeitsprozess bei.

Todo Tree

Diese Erweiterung präsentiert die To-dos in einer übersichtlichen Baumstruktur, was den Bearbeitungs- und Priorisierungsprozess erheblich erleichtert. Durch die visuelle Organisation der To-dos können Developer Aufgaben besser nachvollziehen und entsprechend ihrer Wichtigkeit sortieren, was zu einer verbesserten Effizienz und Produktivität im Entwicklungsprozess beiträgt.

Sourcery

Sourcery ist eine VS-Code-Erweiterung, die dabei hilft, euren Python-Code sauberer und besser lesbar zu gestalten. Es hilft, schnell Bereiche zu finden, in denen euer Code überarbeitet werden könnte, zeigt sofortige Verbesserungsvorschläge und ermöglicht es zu verstehen, wie neue Änderungen die Qualität eures Codes beeinflussen. Dadurch kann Code schneller und besser refactort werden und die Qualität des Source Code gesteigert werden.

Rainbow csv & CSV to Table & Excel Viewer

Da Data Scientists und Data Engineers häufig mit Comma-Separated-Values-Daten (CVS) arbeiten, ist es unerlässlich, die richtigen Werkzeuge für die effiziente Bearbeitung dieser Dateien zur Verfügung zu haben. Zwei besonders hilfreiche Tools in diesem Zusammenhang sind Rainbow CSV und CSV to Table:

Rainbow CSV

Rainbow CSV verbessert die Lesbarkeit von CSV-Dateien, indem es die Spalten in unterschiedlichen Farben darstellt. Diese farbliche Unterscheidung erleichtert das Erkennen von Strukturen und zusammengehörigen Informationen innerhalb der CSV-Datei erheblich.

CSV to Table

CSV to Table hingegen ermöglicht die Anzeige von CSV-Dateien als Tabelle, was das Erfassen der Dateistruktur vereinfacht. Dieses Tool bietet den Vorteil, dass es den Umweg über externe Programme wie Excel überflüssig macht, da die Bearbeitung direkt in Visual Studio Code erfolgen kann. Dadurch wird der Arbeitsablauf effizienter und bequemer gestaltet. Der Excel Viewer bietet die Möglichkeit, CSV-Dateien in einer festen Struktur direkt innerhalb von Visual Studio Code zu betrachten, ähnlich der Darstellung in Excel. Diese Funktion erleichtert den Arbeitsablauf, da ein zusätzliches Öffnen von Excel nicht erforderlich ist und somit Zeit und Ressourcen effizienter genutzt werden können.

Black und Ruff

Der Black Formatter ist ein automatisches Code-Formatierungswerkzeug für die Programmiersprache Python. Es wurde entwickelt, um Code konsistent und lesbar zu gestalten, indem es die Formatierung anhand eines festgelegten Regelsatzes automatisiert. Black folgt dem Prinzip, dass die Formatierung des Codes weniger subjektiv und diskutabel sein sollte, um Diskussionen über Stilpräferenzen in Entwicklerteams zu reduzieren.

Ruff ist ein schneller Python Linter, der in Rust geschrieben wurde und die bessere und schnellere Version von Pylint ist. Ein Linter ist ein Softwarewerkzeug, das dazu verwendet wird, den Quellcode eines Programms automatisch zu analysieren und auf Fehler, inkonsistente Stilrichtlinien oder potenzielle Probleme hinzuweisen.

Honorable Mentions

Die hier vorgestellten Erweiterungen sind nice to have, aber werden nicht wirklich benötigt:

  • AWS-Toolkit: Es bietet Unterstützung für viele AWS Tools – inklusive Code Whisperer das GitHub Copilot von AWS.
  • Vscode-pdf: Wird zum Öffnen von PDFs benötigt.
  • Yaml von Red Hat: Bietet eine Unterstützung für YAML-Files in VSC.
  • Docker: Eignet sich für Docker Files & Images.
  • Github Actions: Eignet sich für CI von GitHub.
  • Preview-vscode: Ein Viewer für alle möglichen Formate.
  • Change-case: Ermöglicht Änderungen zwischen camel case, snake case etc.
  • JSON Parse & Stringify: Ermöglicht einen einfachen Wechsel zwischen JSON und Objecten und ist nützlich für AWS CloudWatch Logs.
  • YAML: Eignet sich für Configuration Files.

Ich hoffe, ich konnte euch einen guten Überblick über die besten Visual Studio Code-Erweiterungen geben und dass sie euch bei eurer Arbeit helfen.

Weitere spannende Themen aus der adesso-Welt findet ihr in unseren bisher erschienenen Blog-Beiträgen.

Bild Marc Mezger

Autor Marc Mezger

Marc Fabian Mezger ist AI Specialist Consultant, der sich auf die Bereiche Medical Deep Learning, Computer Vision und Drift spezialisiert hat. In seiner aktuellen Rolle im Competence Center AI & Data Science ist er für die Beratung von Kunden zu AI-Lösungen und deren Umsetzung verantwortlich. Er verfügt über umfangreiche Kenntnisse im Bereich Machine und Deep Learning.

Bild Moritz Momper

Autor Moritz Momper

Moritz ist Data Engineer bei adesso. Er hat sich auf Python-basierte Data Engineering und Backend-Entwicklung in Go spezialisiert, um innovative Lösungen für Datenverarbeitung und -analyse zu schaffen.

Diese Seite speichern. Diese Seite entfernen.