Experte Jan Stamer erklärt, wie der perfekte Start mit Go gelingt: Mit der Entwicklung einer Kommandozeilen-App! In diesem Tutorial lernst du die verschiedenen Varianten von Flags kennen, beschäftigst dich sowohl mit der Go-Standardbibliothek als auch mit Cobra und wirst in das Konzept der nebenläufigen Programmierung eingeführt. Zum Abschluss wirst du deine Anwendung über GitHub Releases mithilfe von GoReleaser ausliefern.
Go bringt alles mit, um großartige Kommandozeilen-Apps zu entwickeln: einfache Syntax, umfangreiche Standardbibliothek und läuft auf jeder Plattform. Heraus kommen statische Binaries ohne Abhängigkeiten und das für Mac, Windows oder Linux. Eine Kommandozeilen-App eignet sich super zum Einstieg in die Go-Entwicklung. Du lernst eine Go-Anwendung für die Kommandozeile zu entwickeln und auszuliefern. Wir fangen mit der Go-Standardbibliothek an und arbeiten uns vor bis zur mächtigen Cobra Library die auch Kubernetes nutz.
Von der Go-Standardbibliothek bis zur mächtigen Cobra Library
In der ersten Lektion lernst du, mit Go Deine erste Go-Kommandozeilen-Anwendung zu entwickeln. Gemeinsam entwickeln wir eine kleine Kommandozeilen-Anwendung für die 18 Prinzipien der Go-Entwicklung, die Go Proverbs. Aber davor gibt’s einen kurzen Einstieg in die Go-Entwicklung mit Visual Studio Code und dem Go Compiler, sowie ein Hello World für die Kommandozeile.
Ein gutes Kommandozeilen-Tool nach der Unix Philosophie nutzt Argumente und Parameter. Das machen wir für unser CLI Tool zunächst mithilfe der Flags aus der reichen Standardbibliothek von Go. Wie es sich für ordentliche Unix Tools gehört, folgen wir dem POSIX Standard von Unix, und dazu wechseln wir anschließend von der Standardbibliothek zum Go Modul pflags für POSIX konforme Unix Flags.
Die CLI Tools von GitHub und Kubernetes haben eines gemeinsam: Beide nutzen das CLI Framework Cobra für Go. Wir begeben uns in die Fänge der Cobra – Du lernst, mit Cobra mächtige Kommandozeilen-Apps zu bauen, die nicht nur Parameter und Argumente unterstützen, sondern auch Unterkommandos. Zum Abschluss liefern wir Dein Go CLI Tool über GitHub Releases aus – dazu nutzen wir GoReleaser.
Wir nutzen jetzt Go’s mächtiges Konzept zur nebenläufigen Programmierung mit Go Routinen und Channels. Denn wir bauen ein CLI Tool, das Dateien herunterlädt – und zwar mehrere parallel. Dazu bauen wir Schritt für Schritt eine kleine Job Steuerung aus Go Routinen und Channels auf. Der CLI Downloader unterstützt konfigurierbare Timeouts und reagiert auf den Abbruch von der Konsole über Betriebssystem Signale.
Als Leading Software Engineer realisiert und konzipiert Jan Stamer zukunftsweisende und nachhaltige digitale Lösungen. Dazu nutzt er einen modernen cloud-native Stack mit Java, Go und zeitgemäßen Web Technologien. Die Projekte bei crossnative bringt Jan voran, indem er sich um cloud-native IT Architektur kümmert oder die Entwicklungsleitung übernimmt. Abseits der Arbeit findet Ihr Jan auf dem Tennisplatz oder er verbringt Zeit mit seiner Familie und seinen 3 Kindern.
Fullstack-Abonennt:innen haben Zugriff auf dieses Tutorial. Logge dich auf entwickler.de ein und komme direkt zu deinem Tutorial unter Akademie. Zum Login
Wir begleiten Sie durch die digitale Transformation zum Projekterfolg
*zzgl. MwSt.