Lokale Entwicklungsumgebung

Was ist eine lokale Entwicklungsumgebung?

Eine lokale Entwicklungsumgebung ist ein für die Entwicklung konfigurierter Arbeitsbereich auf dem Computer, in der Entwickler_innen Anwendungen erstellen, testen und debuggen, bevor sie ihre Code-Änderung in die allgemeine Code-Basis pushen.

Definition einer lokalen Entwicklungsumgebung

Eine lokale Entwicklungsumgebung, oft auch als „Local Development Environment“ oder kurz „LDE“ bezeichnet, bezieht sich auf die notwendige Software- und Hardwarekonfiguration, um Software zu entwickeln.

Komponenten einer lokalen Entwicklungsumgebung

Zu den wichtigsten Komponenten einer lokalen Entwicklungsumgebung gehören:

  • Betriebssystem und Hardware: Die Wahl des Betriebssystems hängt von den Präferenzen und Anforderungen ab. Darüber hinaus muss die Hardware den Anforderungen der verwendeten Tools gerecht werden.
  • IDE – Integrated Development Environment: Eine IDE ist eine Softwareanwendung, die Werkzeuge und Funktionen zur Verfügung stellt, um effizienter programmieren zu können. Sie umfasst in der Regel einen Texteditor, einen Compiler/Interpreter, Debugging-Funktionen und eine Benutzeroberfläche zur Projektverwaltung. Bekannte IDEs sind beispielsweise Visual Studio Code, IntelliJ und Eclipse.
  • Programmiersprachen und Frameworks: Abhängig von den Anforderungen des Projekts können verschiedene Programmiersprachen wie beispielsweise Java, Python, JavaScript, C++ oder Ruby eingesetzt werden. Zusätzlich können Frameworks, wie beispielsweise React, Angular oder Django verwendet werden.
  • Versionsverwaltung: Um die Zusammenarbeit und das Management von Änderungen im Code zu erleichtern, werden Versionsverwaltungssysteme wie Git eingesetzt. Diese ermöglichen es unter anderem, den Code zu synchronisieren und beispielsweise ältere Versionen wiederherzustellen.
  • Die zu entwickelnde Software und Abhängigkeiten: Sofern die zu entwickelnde Software lokal betrieben wird, ist diese zu installieren. Womöglich sind dann auch Datenbanken und andere Komponenten aufzusetzen.

Vorteile einer lokalen Entwicklungsumgebung

Was sind die Vorteile einer lokalen Entwicklungsumgebung:

  • Kontrolle und Flexibilität: Eine lokale Entwicklungsumgebung gibt Entwickler_innen volle Kontrolle über ihre Arbeitsumgebung. Sie können die Entwicklungsumgebung nach ihren individuellen Bedürfnissen anpassen, zusätzliche Tools und Erweiterungen installieren und Einstellungen anpassen sowie mit der zu entwickelnden Anwendung arbeiten.
  • Einfaches Debugging: Wenn eine Komponente nicht funktioniert, kann auf diese zugegriffen und das Problem direkt und im Detail untersucht werden.
  • Keine Internetverbindung notwendig: Entwickler_innen können am Code arbeiten, diesen kompilieren und – sofern lokal betrieben – die zu entwickelnde Anwendung ausführen. Eine Internetverbindung ist aber nötig, um die Codeänderungen dann in das Versionskontrollsystem zu pushen.

Herausforderungen und mögliche Probleme

Obwohl eine lokale Entwicklungsumgebung einige Vorteile bietet, können auch Herausforderungen und Probleme auftreten:

  • Ständiges Troubleshooting: Bei der Nutzung einer lokalen Entwicklungsumgebung können Fehler und Probleme auftreten. Beispielsweise verbringen laut einer Gitlab-Umfrage 61 % der befragten Entwickler_innen zumindest einmal im Monat Zeit für Problembehandlungen. 31 % müssen das sogar mindestens einmal pro Woche machen.
  • Kompliziertes Aufsetzen: Speziell in größeren Unternehmen kann das Aufsetzen der lokalen Entwicklungsumgebung kompliziert sein und viel Zeit in Anspruch nehmen.
  • Kompatibilitätsprobleme: Entwickler_innen, die verschiedene Betriebssysteme verwenden, stoßen oft auf Kompatibilitätsprobleme. Nicht alle Tools und Frameworks sind auf allen Plattformen verfügbar.
  • Ressourcenintensiv: Manche Tools haben hohe Systemanforderungen. Wenn die Leistung des Computers nicht ausreichend ist, führt dies zu Einschränkungen – z. B. lange Wartezeiten auf lokale Builds.

Die Alternative zur lokalen Entwicklungsumgebung

Cloud / Remote Development Environments: Diese Entwicklungsumgebungen ermöglichen es, die zu entwickelnde Software und Entwicklungs-Tools in einer Remote-Umgebung auszuführen und standardisieren die Arbeitsumgebung für alle Entwickler_innen. Eine einfache Skalierung der Ressourcen ist je nach Bedarf möglich – das heißt, es kann unabhängig vom Gerät und dessen Leistung entwickelt werden. Durch die Standardisierung kommen Remote Development Environments der Produktivumgebung deutlich näher und die Entwicklungsumgebung ist für jede_n Entwickler_in gleich. Das heißt: Weniger Aufwand für die Fehlerbehebung. Je nach Anbieter unterscheiden sich diese Umgebungen.

Hier gehen wir auf die Unterschiede ein: Was sind Remote Development Environments?

Weitere Informationen zu den Entwicklungsumgebungen:

Zusammenfassung

  • Eine lokale Entwicklungsumgebung bietet eine hohe Kontrolle über das eigene System, Flexibilität sowie einfaches Debugging.
  • Es gibt aber auch Herausforderungen: Das Aufsetzen ist oft komplex und dauert lange. Außerdem reicht oftmals die Leistung nicht aus, wenn mit ressourcenintensiven Tools gearbeitet wird. In der Praxis ist ein häufiges Troubleshooting notwendig. Mehrere Stunden pro Monat werden oft mit Fehlerbehebungen verbracht.
  • Eine Alternative sind Cloud / Remote Development Environments, die sich Entwickler_innen im Self-Service bereitstellen und bereits alle Tools und Komponenten beinhalten, die für ihre Arbeit notwendig sind.