Tools für Web- und Cloud-Entwicklung

the next big thing  –  0 Kommentare

Die vergangene Folge von "Götz & Golo" hat sich mit der Frage beschäftigt, wann Teams gut zusammenarbeiten. Der Fokus lag dabei auf der Arbeit remote und vor Ort. Doch wie sieht es mit den eingesetzten Tools aus?

Welche Tools in einem Team zum Einsatz kommen, hängt natürlich in erster Linie vor allem von dem jeweiligen Team sowie dessen Bedürfnissen, Anforderungen und Aufgaben ab. Zumindest die Werkzeuge, die direkt bei der Softwareentwicklung verwendet werden, orientieren sich darüber hinaus auch an den eingesetzten Techniken. Dennoch gibt es einige Dinge, die sich verallgemeinern lassen.

Götz & Golo

"Götz & Golo" ist eine gemeinsame Serie von Götz Martinek und Golo Roden. Der eine ist Geschäftsführer der sodge IT GmbH, der andere CTO der the native web GmbH. Was die beiden vereint, ist ihre große Leidenschaft für die Entwicklung von Software. Seit September 2019 nehmen sie sich monatlich ein Thema vor, zu dem dann jeder seine individuelle Perspektive beschreibt, ohne den Artikel des jeweils anderen im Vorfeld zu kennen. Der zugehörige Artikel von Götz findet sich im Blog von sodge IT. Die Fragestellung zu diesem Beitrag lautete: "Welche Tools nutzt Ihr, und warum?"

Daher stelle ich im Folgenden zunächst einige Tools vor, die ich für meine Arbeit im Bereich der Web- und Cloud-Entwicklung einsetze, und komme anschließend auf Werkzeuge für andere Bereiche zu sprechen. Darunter finden sich dann auch Tools zur Zusammenarbeit im Team.

Basistechnologien

Technologisch beschäftige ich mich primär mit der Entwicklung verteilter Web- und Cloud-Anwendungen, auf der Basis von JavaScript und TypeScript. Als Laufzeitumgebung setze ich dabei auf Node.js und npm, für die umgebende Infrastruktur verwende ich im Wesentlichen Docker und Kubernetes. Das bestimmt letztlich schon einen Großteil der Werkzeuge.

Die Grundlage bildet (logischerweise) Node.js, wobei ich hier stets auf die neueste LTS-Version setze. Seit dem 21. Oktober 2019 ist das die 12.x-Reihe, im Herbst kommenden Jahres werde ich dann auf die 14.x-Reihe wechseln. Als Paketverwaltung ist von Haus aus npm enthalten. Mit Alternativen wie yarn beschäftige ich mich zwar aus Neugier, bleibe für den Alltag aber bei npm – einfach deshalb, weil es in der Node.js-Welt der gängige Standard ist.

Editor und IDE

Als Editor nutze ich Atom, da er deutlich leichtgewichtiger als eine integrierte Entwicklungsumgebung ist, und mir der Editor von der Art, wie er funktioniert, sehr entgegenkommt: Die Wahl für Atom ist also primär eine Wahl des persönlichen Geschmacks, weniger der technischen Features. Als Plug-ins verwende ich lediglich zwei: zum einen atom-typescript für die Unterstützung für TypeScript, zum anderen linter-eslint für die komfortable Integration von ESLint, einem Codeanalysetool für JavaScript und TypeScript.

Viele Entwickler und auch einige Kollegen setzen inzwischen zunehmend auf Visual Studio Code, mit dessen Bedienkonzept ich mich aber nicht anfreunden kann: Die IDE legt einige Verhaltensweisen an den Tag, die mir nicht gefallen oder die ich gar lästig finde. Sicherlich ließe sich das alles auch irgendwie konfigurieren, den Aufwand kann ich mir durch das Verwenden von Atom jedoch sparen.

Für Docker und Kubernetes nutze ich tatsächlich lediglich die jeweiligen Kommandozeilentools, docker und kubectl. Dockerfiles und Konfigurationsdateien für Kubernetes editiere ich ebenfalls mit Atom. Ergänzt wird das Ganze durch Git, was ich ebenfalls auf der Kommandozeile ohne weitere Werkzeuge verwende. Als Kommandozeile habe ich lange Bash (den Standard unter macOS) verwendet, bin aber vor kurzem auf zsh umgestiegen, da es die neue Standardshell unter macOS Catalina ist. Als Plug-in für zsh habe ich Oh My Zsh installiert.

Tatsächlich sind das im Wesentlichen bereits alle relevanten Werkzeuge, mit denen ich meinen Alltag bestreite. Das Setup bietet für mich ausreichend viel Komfort, und lässt sich vor allem mit wenig Aufwand auf anderen Systemen gleichartig einrichten, ohne erst Stunden in Konfiguration und ähnliches stecken zu müssen.

Webcasts

Im Rahmen der tech:lounge (die Videoplattform meines Unternehmens, auf der wir kostenlos Videokurse anbieten) nehme ich gelegentlich Webcasts auf. Das mache ich mit dem in macOS integrierten QuickTime Player, der den Bildschirminhalt mitsamt dem Ton aufzeichnet. Zur Nachbearbeitung des Tons verwende ich Wavelab von Steinberg. Für Klänge und Grafiken greife ich gelegentlich noch auf Apple Logic Pro X und die Adobe Creative Cloud zurück.

Planung

Für die Planung der täglichen Arbeit verwenden wir GitHub. Zusätzlich zu den Repositories, die Code enthalten, gibt es noch einige private Repositories, die wir zur Dokumentation interner Prozesse und für organisatorische Aufgaben einsetzen. Dazu kommt hauptsächlich die Projektverwaltung von GitHub zum Einsatz: Besonders schätze ich an GitHub Issues, dass sie äußerst leichtgewichtig, zugleich aber ausgesprochen flexibel sind. Ich bin immer wieder überrascht, wie weit man mit einigen wenigen Feldern und frei definierbaren Labels kommt.

Für meine persönliche To-do-Liste nutze ich außerdem Remember The Milk, wo ich vor allem Aufgaben eintrage, die zu einem festen Termin erledigt werden müssen.

Kommunikation

Für die interne Kommunikation und auch für die Kommunikation mit der wolkenkit-Community verwenden wir Slack: Wir nutzen Slack dabei nicht nur als Chat, sondern auch für Telefonate, Videotelefonie und Screensharing. Slack stellt bei uns auch die Basis für Pair Programming dar – eine Arbeitsweise, die wir sehr schätzen. Als E-Mail-Programm verwende ich Outlook für Mac.

Da ich häufig unterwegs bin, brauche ich regelmäßig ein verlässliches VPN. Dazu verwende ich TunnelBear, das ohne weitere Konfiguration einfach funktioniert und dessen Entwickler viel Liebe in eine hübsche grafische Oberfläche gesteckt haben: TunnelBear ist für mich das Paradebeispiel dafür, dass man selbst etwas so unspektakuläres wie ein VPN durch eine ästhetische Darstellung ansprechend gestalten kann. Vom gleichen Herstelle stammt übrigens auch der Passwortmanager Remembear, für den prinzipiell das gleiche gilt: Es macht einfach Spaß, diese beiden Produkte zu benutzen.

Fazit

Fasst man die Liste der von mir verwendeten Tools zusammen, fällt auf, dass sie relativ kompakt ist und vor allem dadurch auffällt, dass ich auf Werkzeuge setze, die bereits in den Werkseinstellungen weitgehend dem entsprechen, was ich mir wünsche beziehungsweise brauche. Dahinter steckt der Gedanke, dass ich mich wenig mit den Tools an sich beschäftigen, sondern mich mehr auf die Aufgaben konzentrieren möchte, die ich zu bewältigen habe.

tl;dr: Node.js, npm, Atom, Docker, kubectl, zsh, Oh My Zsh, QuickTime Player, Wavelab, Logic Pro X, Creative Cloud, git, GitHub, Remember The Milk, Slack, Outlook, TunnelBear und Remembear – diese Anwendungen sind die Basis für meine täglich Arbeit.