Software Development Tools that Boost our Productivity

Software-Entwicklungstools, die unsere Produktivität steigern

Softwareentwicklung ist ein komplexer und zeitaufwändiger Prozess. Deshalb verwenden die Spezialisten, die daran arbeiten, eine Reihe von Anwendungen und Systemen, um ihre Aufgaben komfortabel und effizient auszuführen. Es gibt eine große Auswahl an Desktop-Umgebungen, Code-Editoren und anderer Software, die die Arbeit der Entwickler verbessert. Wir zeigen Ihnen die Tools, die wir mögen und regelmäßig verwenden.

Hardware, die ein reibungsloses Arbeiten mit der Software ermöglicht

Bevor wir zu den Entwicklungstools übergehen, möchten wir kurz unsere Hardware erwähnen, da ihre Auswahl ebenfalls Einfluss auf unsere Produktivität und den Arbeitskomfort hat. Das Grundwerkzeug jedes Entwicklers ist offensichtlich ein Computer. Seit der Gründung von Droptica haben wir nur Laptops gekauft, um die Möglichkeit zu haben, remote von jedem Ort aus zu arbeiten. Das war für uns stets entscheidend, da wir in verteilten Teams arbeiten, zwischen unseren Büros in verschiedenen Städten pendeln und unsere Kunden besuchen.

Wir wählen immer leistungsstarke Laptops, damit die Hardwarekapazität die Arbeit unserer Entwickler nicht blockiert. Kürzlich haben wir Lenovo ThinkPad X1 Extreme und Dell Precision 5540 Laptops bestellt. Sie sind mit Intel i7 Prozessoren, sechs Kernen ausgestattet und erreichen mehr als 5500 Punkte im Multi-Core Score in Geekbench 5, einem plattformübergreifenden Benchmark.

Ein Bildschirm allein ist jedoch nicht ausreichend für komfortables Arbeiten, daher schließen wir auch zwei externe Dell 27 Zoll Full HD Monitore an. Dadurch arbeitet jeder Entwickler bei Droptica an drei Bildschirmen.

Softwareentwicklungstools, die wir verwenden

Unten sehen Sie eine ganze Reihe von Tools. Das kommt daher, dass jeder ein wenig unterschiedliche Plattformen und Anwendungen aufgrund seines Arbeitsstils nutzt. Wie Sie wahrscheinlich bemerken werden, sind die meisten dieser Tools Open Source, da wir auf dieser Technologie basierende Lösungen entwickeln und fördern.

Um es Ihnen zu erleichtern, durch diese Liste zu gehen, haben wir die Programmiertools in vier Kategorien gruppiert: Betriebssysteme und Desktop-Umgebungen, GNOME-Erweiterungen, IDEs (integrierte Entwicklungsumgebungen) und Code-Editoren sowie andere Software, die die tägliche Arbeit der Entwickler vereinfacht.

Betriebssysteme und Desktop-Umgebungen

Das Betriebssystem, das alle Entwickler bei Droptica nutzen, ist Linux. Da es sich um ein Open-Source-System handelt, können wir es leicht an unsere Anforderungen anpassen und angepasste Versionen mit anderen teilen. Sie können Linux noch besser an Ihre Bedürfnisse anpassen, indem Sie Ihre Lieblingsversion, die als Distribution bezeichnet wird, auswählen. Davon gibt es über 200!

Wir verwenden zwei der beliebtesten Linux-Distributionen - Mint und Ubuntu. Beide sind auch für Anfänger geeignet, sehr stabil, basieren auf Debian (Mint basiert zusätzlich auf Ubuntu), sind in der regulären Version mit grundlegenden Tools ausgestattet und verfügen über eine gute Unterstützung der Online-Community. Die Mehrheit von uns bevorzugt jedoch Ubuntu (meistens 20.04, aber auch die Version 18.04), da es mehr Tutorial-Inhalte zu dieser Distribution für fortgeschrittene Benutzer gibt.

Nicht nur verwenden wir Linux auf unseren Computern, sondern entwickeln auch alle Anwendungen auf den Produktionsservern. Die Kompatibilität der Systeme eliminiert Situationen, in denen etwas für einen Entwickler funktioniert und für einen anderen nicht.

Desktop-Umgebungen

Linux bietet auch eine große Auswahl an Desktop-Umgebungen wie KDE, MATE, GNOME, Xfce und Cinnamon. Letztere wird von unseren Entwicklern, die mit Linux Mint arbeiten, verwendet, da sie die Flaggschiff-Desktop-Umgebung für diese Distribution ist. Sie hat ein sauberes Aussehen mit leicht lesbaren Schriftarten und Farbkombinationen. Der Cinnamon-Desktop ist nicht mit unnötigen Verknüpfungen und Symbolen überladen. Sie können konfigurieren, was Sie im Menü Systemeinstellungen => Desktop sehen möchten. Zu den weiteren Vorteilen dieser Desktop-Umgebung gehören:

  • Konfiguration - Das Cinnamon-Kontrollzentrum bietet Zugriff auf viele der Desktop-Einstellungsoptionen. Sie können z. B. Schriftarten ändern, Themen aus dem Web extrahieren oder Effekte aktivieren.
Cinnamon-Kontrollzentrum, angepasst von einem unserer Entwickler

Cinnamon-Kontrollzentrum, angepasst von einem unserer Entwickler

  • Das Cinnamon-Panel - enthält ein Menü mit häufig verwendeten Anwendungen, eine Systemablage und einen Anwendungswähler. Standardmäßig ist das Panel sehr einfach konfiguriert. Wie beim Kontrollzentrum können Sie es jedoch an Ihre Vorlieben anpassen und neue Programmstarter hinzufügen.

Obwohl wir Cinnamon mögen, verwenden die meisten von uns GNOME mit Ubuntu. Diese Desktop-Umgebung hat eine minimalistische Benutzeroberfläche, die die Bedienung erleichtert. Ein sauberer, symbolfreier Desktop ermöglicht es uns, uns besser auf die eigentliche Arbeit zu konzentrieren. Dabei hilft uns eine weitere wertvolle Funktion - dynamische Arbeitsbereiche. Anstatt einen Desktop mit allen aktuell geöffneten Fenstern zu haben, können Sie diese in mehreren Arbeitsbereichen organisieren. Dies ist eine praktische Lösung, z. B. während Sie eine große Datei auf einem Arbeitsbereich herunterladen, können Sie Ihre Aufgaben auf einem anderen problemlos erledigen. Was bedeutet es, dass die Arbeitsbereiche dynamisch sind? Anfänglich haben Sie einen einzelnen Arbeitsbereich. Wenn Sie Anwendungen darauf öffnen, wird automatisch ein neuer leerer Arbeitsbereich generiert. Wenn Sie dann alle Anwendungen darauf schließen, wird der neu erstellte Arbeitsbereich gelöscht.

GNOME-Erweiterungen

Ein weiterer Aspekt, den wir an GNOME mögen, ist, dass es zahlreiche Erweiterungen hat, die die Arbeit mit dem Betriebssystem verbessern. Wenn Sie den Chrome-Browser verwenden, empfehlen wir, das GNOME Shell integration Plugin hinzuzufügen, da es die Installation der GNOME-Erweiterungen erleichtert. Unten finden Sie einige, die wir nutzen.

Sound Input & Output Device Chooser

Diese Erweiterung zeigt eine Liste von Audioeingabe- und -ausgabegeräten im Statusmenü unterhalb des Lautstärkereglers an.

Caffeine

Wir müssen uns keine Sorgen über eine Display-Sperrung machen, wenn unsere Computer in den Leerlauf gehen. Caffeine deaktiviert den Bildschirmschoner und den automatischen Ruhezustand.

Dash to Dock

Um das Starten von Anwendungen und das schnelle Wechseln zwischen Fenstern und Desktops zu erleichtern, verschiebt dieses Tool das Dash aus der Übersicht und verwandelt es in ein Dock. Und wir müssen die Desktop-Ansicht nicht verlassen.

Mit dem Dash to Dock Tool können wir Anwendungen einfach starten und schnell zwischen Fenstern und Desktops wechseln

Quelle: Dash to Dock

Dash to Panel

Mit diesem Add-On haben wir ein System-Tray und die Anwendungsstarter in einem Panel, da es das Dash in das GNOME-Hauptpanel verschiebt.

Notification Center

Es ermöglicht uns, das Benachrichtigungszentrum zu trennen und es auf der oberen Panel-Leiste zu platzieren. Mit der Erweiterung können wir das Zentrum auch anpassen.

Wir empfehlen auch andere GNOME-Erweiterungen, die unsere tägliche Arbeit vereinfachen, wie Switcher, GSConnect, Tweaks (es ist eine Standardfunktion von Ubuntu 20, aber eine Erweiterung für Version 18), Clipboard Indicator und AlternateTab.

IDE und Code-Editoren

Das IDE, das wir verwenden, ist PHPStorm, da es sich perfekt für die Arbeit in Drupal eignet, auf die wir spezialisiert sind. Diese integrierte Entwicklungsumgebung unterstützt alle Funktionen der PHP-Sprache, bietet Code-Vervollständigung und Refactorings und verhindert laufend Fehler. Alle Möglichkeiten, die PHPStorm bietet, erhöhen die Produktivität bei der Arbeit mit Code.

IDE integrierte Entwicklungsumgebung, die wir verwenden, ist PHPStorm

Quelle: JetBrains

Zusammen mit PHPStorm verwenden wir PHP CodeSniffer. Es ist ein sehr praktisches Tool, das uns dabei unterstützt, klaren und standardkonformen Code zu pflegen.

Code-Editoren

Der Code-Editor, der die tägliche Arbeit einiger unserer Entwickler unterstützt, ist Sublime. Er arbeitet mit vielen Programmier- und Markup-Sprachen. Zu den hilfreichen Funktionen gehören:

  • Command Palette - enthält häufig verwendete Befehle oder Elemente,
  • Goto Anything - eine Schnellauswahl, um Dateien im aktuellen Projekt zu öffnen,
  • mehrfache Auswahlen - mit dieser Funktion können Änderungen an mehreren Codezeilen gleichzeitig vorgenommen werden.

Ein weiteres Tool, das einige von uns für das Code-Editing verwenden, ist Visual Studio Code. Es unterstützt nativ Node.js, JavaScript und TypeScript, aber mit Hilfe von Erweiterungen können Sie auch in PHP, Java und Python damit arbeiten. Der Code-Editor ist mit IntelliSense ausgestattet. Diese Kernfunktion bietet intelligente Code-Vervollständigungen basierend auf Funktionsdefinitionen, Variablentypen und importierten Modulen. Unten sehen Sie, wie diese Vervollständigungen im JavaScript-Code funktionieren.

Code-Vervollständigungen in Visual Studio Code, einem Code-Editor

Quelle: Visual Studio Code

Ein weiteres wichtiges Tool für uns in Bezug auf die Arbeit mit Code ist GIT - ein Open-Source-Versionssystem. Da es sich um eine Konsolenanwendung handelt, müssen Sie Befehle in einem Terminal eingeben. Um die Arbeit zu erleichtern und zu beschleunigen, verwenden einige unserer Entwickler GIT GUI (Grafische Benutzeroberfläche), nämlich das SmartGit Programm. Wir mögen es aufgrund seiner verschiedenen Funktionen und einer klaren Oberfläche.

In Bezug auf GIT verwenden wir auch andere Tools zur Vereinfachung der Arbeit damit, wie GitK, den grafischen Verlaufbetrachter, und bash-git-prompt. Letzteres zeigt uns Informationen über das aktuell verwendete Repository, wie den Branch-Namen und Dateien, die gestaged oder geändert wurden.

Andere Software, die die tägliche Arbeit der Entwickler vereinfacht

Wir haben Ihnen bereits eine Reihe von Softwareentwicklungstools gezeigt, die wir täglich nutzen. Neben Betriebssystemen, Desktop-Umgebungen, PHP IDE und Code-Editoren gibt es zahlreiche andere Anwendungen, die unsere Arbeit unterstützen und unsere Produktivität steigern.

Arbeiten mit einem Terminal

Einige unserer Entwickler, die mit GNOME arbeiten, nutzen ein speziell dafür vorgesehenes Terminal - Guake. Es ist ein einfaches Tool, das direkt nach der Installation einsatzbereit ist. Das Terminal unterstützt das Arbeiten mit mehreren Monitoren und Registerkarten und bietet Ihnen über hundert vordefinierte Farbpaletten.

Mit jedem Linux-Terminal können Sie Ihre Arbeit mit Tmux, einem Terminal-Multiplexer, beschleunigen. Es ermöglicht Ihnen, viele Terminals zu erstellen und zu verwalten, die Sie von einem einzigen Bildschirm aus steuern können. Mit diesem Tool können Sie auch mühelos zwischen verschiedenen Anwendungen in einem Terminal wechseln.

Das letzte Programm, das wir verwenden und für terminalbezogene Arbeiten empfehlen, ist Terminator. Dieser praktische Terminal-Emulator ermöglicht es Ihnen, Ihre Terminals neu anzuordnen, sie in einer rasterartigen Struktur zu organisieren und zahlreiche Profile und Layouts über den GUI-Praeferenzen-Editor zu speichern.

Arbeiten mit Datenbanken

Zur visuellen Gestaltung, Modellierung, Generierung und Verwaltung von Datenbanken verwenden einige unserer Entwickler MySQL Workbench. Mit diesem Tool können wir SQL-Abfragen erstellen und optimieren, MySQL-Umgebungen verwalten sowie MySQL-Anwendungen im Performance Dashboard überwachen.

MySQL Workbench ist ein Werkzeug zur Gestaltung, Modellierung, Generierung und Verwaltung von Datenbanken

Quelle: MySQL Workbench

Ein weiteres Tool, das einige von uns zur Verwaltung von MySQL, aber auch PostgreSQL und SQLite-Datenbanken verwenden, ist TablePlus. Wir können in einer nativen und schnellen App viele Datenbanken gleichzeitig verwalten. Seine zahlreichen Sicherheitsfunktionen (wie die mehrstufige Authentifizierung) sorgen für den Schutz der Datenbanken.

Arbeitsorganisation

Neben Jira, das wir für Projektmanagement verwenden, haben wir auch unsere bevorzugten Aufgabenmanagement-Tools zur Organisation der täglichen Arbeit. Einige von uns empfehlen Joplin, eine Open-Source-To-Do-Anwendung. Die Notizen sind bequem in Notizbüchern geordnet und Sie können ihre Geschichte leicht einsehen. Die App ist offline-erster Ansatz, verfügbar auf Desktop, Mobilgerät und Terminal.

Jeden Tag loggen wir uns auch in verschiedene Web-Anwendungen und Software ein. Es ist schwer, sich alle Passwörter zu merken und unsicher, sie an vielen zufälligen Orten zu speichern. Deshalb verwenden wir Open-Source Passwortmanager, sowohl unternehmensweit als auch für individuelle Zwecke. Im zweiten Fall nutzen einige von uns KeePass, in dem alle Passwörter in einer mit einem Hauptschlüssel gesperrten Datenbank gespeichert werden.

Zusammenarbeit

Wir arbeiten in verteilten Teams, da wir unsere Büros in vier verschiedenen Städten haben und oft auch remote. Dann ist eine reibungslose Zusammenarbeit für uns noch wichtiger. Um zu erklären, wie etwas funktioniert, verwenden wir verschiedene Screenshot-Tools (da jeder seine bevorzugten hat), wie Shutter und Flameshot. Einige Entwickler ziehen es vor, ihre Aktionen aufzunehmen, anstatt sie in statischen Beispielen zu zeigen, z. B. mit Kazam, einem Bildschirmaufnahmeprogramm, oder Peek. Mit dem letzten Tool können wir nicht nur Bildschirmbereiche aufzeichnen, sondern auch ein animiertes GIF erstellen.

Wir kommunizieren natürlich täglich viel miteinander. Unser Hauptwerkzeug dafür ist Slack, aber einige Leute unterhalten sich auch z. B. über Google Hangouts. In einem solchen Fall verwenden einige Entwickler Franz, eine Messaging-App, die es Ihnen ermöglicht, Ihre Konten aus verschiedenen Chat-Tools hinzuzufügen, um alle Gespräche von verschiedenen Plattformen an einem Ort zu haben.

In Franz, einer Messaging-Anwendung, können Sie Ihre Konten von verschiedenen Chat-Tools hinzufügen

Quelle: Franz

Um Dateien zu speichern und mit Teamkollegen zu teilen, verwenden einige von uns FileZilla - eine kostenlose Open-Source FTP (File Transfer Protocol) Software. Es ist einfach zu bedienen und ermöglicht die Bearbeitung von Dateien aus der Ferne.

Browser und E-Mail-Clients

Bei Droptica verwenden wir die Google Suite, daher sind Chrome und Gmail unsere täglichen Begleiter. Einige Leute nutzen jedoch auch gerne Chromium (Google verwendet dessen Quellcode für Chrome) und Thunderbird. Letzteres ist ein plattformübergreifender E-Mail-Client, mit dem Sie E-Mail-Konten von verschiedenen Anbietern verbinden und alle Nachrichten an einem Ort haben können.

API-Entwicklung, virtuelle Maschinen und Grafikdesign

Viele unserer Entwickler verwenden gerne Postman. Es ist eine Kollaborationsplattform für API-Entwicklung. Es gibt verschiedene Personen, die in API-bezogene Angelegenheiten involviert sind. Einige von ihnen entwerfen die API, andere entwickeln sie, der Kundensupport und die Kunden selbst arbeiten täglich damit. In Postman können die API-Konsumenten über die neuesten Anpassungen auf dem Laufenden bleiben. Sie können auch Feedback für die Entwickler und anderen Produzenten hinterlassen. Letztere Gruppe kann diese Meinungen zur Verbesserung der API verwenden.

Der Kommentarbereich in Postman, eines der Softwareentwicklungstools, die wir verwenden

Quelle: Postman

VirtualBox ist ein weniger häufig verwendetes Tool bei uns, aber dennoch sehr wertvoll. Es ist eine Open-Source-Virtualisierungssoftware zur Erstellung und Verwaltung von Gast- virtuellen Maschinen, die auf Windows-, Linux-, Macintosh-, Solaris- und OpenSolaris-Hosts betrieben werden.

Für schnelle Gestaltungsarbeiten verwenden einige von uns gerne Krita, eine Open-Source-Malsoftware. Sie bietet mehr als hundert Pinsel, Vektortools und Textfelder. Sie können Ihr Toolset auch erweitern, indem Sie Texturen- und Pinselformpacks von anderen Erstellern importieren.

Freiheit der Wahl

Wie Sie sehen, verwenden wir eine breite Palette von Softwareentwicklungs- und anderen Tools. Das liegt daran, dass jede Person in unserer Drupal-Agentur eine Sammlung erstellen kann, die ihren individuellen Vorlieben am besten entspricht. Wenn Sie bei uns arbeiten, könnten Sie Ihre Lieblingssoftware einführen und verwenden. Wir wissen, dass es die Produktivität steigert und den Arbeitskomfort verbessert.

Looking for a job as a PHP/Drupal Developer?