Go (Golang) verwenden
Übersicht
Go, oft als Golang bezeichnet, ist eine von Google entwickelte und als Open Source bereitgestellte, statisch typisierte und kompilierte Programmiersprache. Sie ist bei Entwicklern besonders beliebt wegen ihrer klaren Syntax, extrem schnellen Kompilierzeiten, exzellenten Unterstützung für nebenläufige Prozesse (mittels leichtgewichtiger goroutine
s und des Kommunikationsmechanismus channel
), sowie effizienten integrierten Garbage Collectors. Go eignet sich hervorragend für die Entwicklung performanter Netzwerksysteme, verteilter Systeme, Microservices und Kommandozeilenwerkzeugen und zählt zu den modernen Hauptsprachen im Bereich Cloud Native und Backend-Entwicklung.
Go-Unterstützung in ServBay
ServBay, eine integrierte lokale Webentwicklungsumgebung für macOS und Windows, bietet Go-Entwicklern eine nahtlose und leistungsfähige Plattform. Dank ServBay können Sie kinderleicht verschiedene Go-Versionen installieren, verwalten und wechseln – ganz ohne komplexe Umgebungsvariablen wie GOROOT
oder GOPATH
selbst konfigurieren zu müssen. Das vereinfacht den Setup- und Wartungsprozess Ihres Go-Entwicklungsumfelds erheblich.
ServBay enthält die vollständige Go-Toolchain und unterstützt eine breite Palette an Go-Versionen – von historischen Releases bis hin zu den neuesten stabilen Versionen, sodass Sie für jedes Projekt die passende Umgebung finden:
- Go 1.11
- Go 1.12
- Go 1.13
- Go 1.14
- Go 1.15
- Go 1.16
- Go 1.17
- Go 1.18
- Go 1.19
- Go 1.20
- Go 1.21
- Go 1.22
- Go 1.23
- Go 1.24 (Plus zukünftige Versionen in weiteren ServBay-Updates)
Unterstützung für Go Modules
Die ServBay-Umgebung aktiviert und empfiehlt standardmäßig den Einsatz von Go Modules für das Abhängigkeitsmanagement. Go Modules sind die offizielle und empfohlene Lösung seit Go Version 1.11. In der ServBay-Terminalumgebung können Sie direkt alle relevanten go mod
Befehle wie go mod init
, go get
und go mod tidy
nutzen – ohne sich Gedanken über die klassische $GOPATH
-Konfiguration machen zu müssen.
Voraussetzungen
- Sie haben ServBay erfolgreich auf macOS installiert und ausgeführt.
- Sie kennen die Grundlagen der Go-Programmierung.
- Sie sind mit einfachen Kommandozeilenbefehlen im Terminal vertraut.
Installation von Go
Die Installation einer Go-Umgebung über das intuitive ServBay-GUI-Panel ist ganz einfach:
- Starten Sie die ServBay-App.
- Klicken Sie in der linken Navigationsleiste auf
Pakete
. - Suchen Sie in der Liste nach dem Abschnitt
Go
. - Klappen Sie den Go-Bereich aus – hier sehen Sie alle von ServBay unterstützten Go-Versionen.
- Wählen Sie die gewünschte Version (es empfiehlt sich meistens die neueste stabile Version, z.B. Go 1.24). Klicken Sie dabei auf den
Installieren
-Button neben Ihrer gewählten Version. - ServBay lädt und installiert den ausgewählten Go-Release automatisch. Die Dauer hängt von Ihrer Internetverbindung ab.
Nach Abschluss der Installation wird der Status als installiert angezeigt. Sie können weitere Versionen hinzufügen oder jederzeit zwischen installierten Versionen wechseln.
Verwendung von Go
Sobald Go installiert ist, stehen Ihnen alle go
-Befehle im Betriebssystem-Terminal zur Verfügung.
Um zu testen, ob Go korrekt installiert und welche Version gerade aktiv ist, führen Sie folgenden Befehl aus:
bash
go version
1
Im Terminal erscheint dann eine Ausgabe wie:
go version go1.24.1 darwin/arm64
1
Ein einfaches Go-Web-Programm erstellen und ausführen
Im Folgenden zeigen wir Ihnen, wie Sie ein simples Go-HTTP-Server-Beispiel anlegen, kompilieren und unter ServBay ausführen.
Projektordner erstellen:
Erstellen Sie einen neuen Ordner für Ihr Go-Projekt im Standard-Webverzeichnis von ServBay (/Applications/ServBay/www
). Zum Beispiel mit dem Namengo-servbay-demo
.bashcd /Applications/ServBay/www mkdir go-servbay-demo cd go-servbay-demo
1
2
3Go Modules Initialisierung:
Initialisieren Sie Go Modules im Verzeichnisgo-servbay-demo
mittelsgo mod init
. Als Modulpfad können Sie z.B. den Ordnernamen verwenden.bashgo mod init go-servbay-demo
1Dieser Befehl erzeugt die Datei
go.mod
, die die Abhängigkeiten Ihres Projekts verwaltet.Go-Code schreiben:
Legen Sie die Dateimain.go
an und fügen Sie folgenden Code ein:gopackage main import ( "fmt" "log" "net/http" "os" ) func handler(w http.ResponseWriter, r *http.Request) { hostname, _ := os.Hostname() fmt.Fprintf(w, "Hello from Go on ServBay!\nHostname: %s\nPath: %s\n", hostname, r.URL.Path) } func main() { http.HandleFunc("/", handler) port := "8080" // Port, den der Server überwacht log.Printf("Go web server starting on port %s...", port) log.Printf("Access it at http://localhost:%s", port) // Startet den HTTP-Server err := http.ListenAndServe(":"+port, nil) if err != nil { log.Fatalf("Error starting server: %s\n", err) } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27Der Code startet einen simplen HTTP-Server auf Port 8080, der für sämtliche Anfragen Antworttext mit "
Hello from Go on ServBay!
", dem Rechnernamen und dem Pfad ausgibt.Go-Anwendung starten:
Bleiben Sie im Projektverzeichnis (/Applications/ServBay/www/go-servbay-demo
) und führen Sie Ihr Programm mit folgendem Befehl aus:bashgo run main.go
1Falls alles korrekt ist, zeigt Ihr Terminal eine Ausgabe wie:
2024/05/20 15:00:00 Go web server starting on port 8080... 2024/05/20 15:00:00 Access it at http://localhost:8080
1
2Anwendung aufrufen:
Öffnen Sie einen Webbrowser und navigieren Sie zuhttp://localhost:8080
. Sie sollten eine Antwort wie "Hello from Go on ServBay! Hostname: your-mac-hostname Path: /
" sehen.
Reverse Proxy mit ServBay-Webseiten konfigurieren (Sehr empfohlen)
Auch wenn Sie Ihr Go-Webprojekt direkt per localhost:8080
ansprechen können, lohnt es sich für die lokale Entwicklung, ein einprägsames Domain (z.B. go-app.servbay.demo
) zu verwenden und Ihre Anwendung über ServBays Webserver (Caddy, Apache oder Nginx) per Reverse Proxy erreichbar zu machen. So greifen Sie über Standard-HTTP/HTTPS-Ports auf Ihr Projekt zu und profitieren von Features wie automatisch generiertem HTTPS und Integration mit anderen ServBay-Services.
- Website in ServBay anlegen:
- Öffnen Sie das ServBay-GUI und gehen Sie zum Bereich
Webseiten
. - Klicken Sie auf
Website hinzufügen
. - Domain: Geben Sie Ihren gewünschten lokalen Entwicklungsnamen ein (z.B.
go-app.servbay.demo
). - Webseitentyp: Wählen Sie Reverse Proxy.
- IP-Adresse: Tragen Sie
127.0.0.1
ein. - Port: Setzen Sie auf
8080
.
- Öffnen Sie das ServBay-GUI und gehen Sie zum Bereich
Konfiguration speichern und neu laden:
Speichern Sie die Website-Konfiguration im ServBay-GUI und stellen Sie sicher, dass Sie den zuständigen Webserver (Caddy oder Nginx) neu laden/restarten, damit die Änderungen aktiv werden.Anwendung über Domain aufrufen:
Ab sofort erreichen Sie Ihre Go-Webanwendung im Browser überhttps://go-app.servbay.demo
. ServBays Webserver leitet die Anfragen transparent an Ihre Go-App weiter.
Go-Versionen verwalten
ServBay macht das Wechseln und Verwalten verschiedener Go-Versionen besonders komfortabel.
- Version wechseln: Öffnen Sie im ServBay-GUI unter
Pakete
>Go
die Übersicht. Im MenüEinstellungen
können Sie eine Go-Version als Standard festlegen. - Wechsel bestätigen: Öffnen Sie ein neues Terminal, führen Sie
go version
aus und prüfen Sie, ob die richtige Version angezeigt wird.
Projektspezifisches Go-Versionsmanagement mit .servbay.config
Neben dem globalen Wechsel bietet ServBay eine noch feinere Kontrolle auf Projektebene – mittels einer .servbay.config
Datei im Projektverzeichnis.
Funktionsweise:
Betreten Sie im ServBay-Terminal ein Verzeichnis mit .servbay.config
, erkennt und liest ServBay das File automatisch. So wird z.B. mit GO_VERSION
temporär die Go-Version für die aktuelle Terminalsession angepasst – alle go
-Befehle verweisen dann auf diese Variante.
Dateiformat:
Eine .servbay.config
ist eine einfache Textdatei mit Schlüssel-Wert-Paaren. Beispielsweise:
ini
# Beispiel für .servbay.config
# Für dieses Projekt Go Version 1.22 nutzen
GO_VERSION=1.22
# Gleichzeitig können Sie weitere Tools definieren
# PHP_VERSION=8.3
# NODE_VERSION=20
# PYTHON_VERSION=3.11
# ... andere mögliche Optionen ...
# GOPROXY=https://goproxy.cn,direct
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Vorteile:
- Automatischer Versionswechsel: Sobald Sie das Projektverzeichnis öffnen, wird die gewünschte Go-Version aktiv – kein manuelles Global-Switching nötig.
- Projekt-Isolation: Jedes Projekt läuft in der vorgesehenen Go-Umgebung – Versionskonflikte werden vermieden.
- Teamarbeit:
.servbay.config
kann dem Versionskontrollsystem (z.B. Git) hinzugefügt werden. Jeder im Team arbeitet dadurch direkt mit identischer Go-Basis.
Beispielanwendung:
Sie betreuen zwei Projekte:
project-a
benötigt Go 1.12project-b
nutzt Go 1.22
Erstellen Sie für jedes Projekt eine eigene .servbay.config
:
/Applications/ServBay/www/project-a/.servbay.config
:iniGO_VERSION=1.12
1/Applications/ServBay/www/project-b/.servbay.config
:iniGO_VERSION=1.22
1
Im ServBay-Terminal sehen Sie – nach cd /Applications/ServBay/www/project-a
und go version
– Go 1.12.x, nach cd /Applications/ServBay/www/project-b
entsprechend Go 1.22.x.
Hinweis: Die .servbay.config
steuert den Basis-Go für das ServBay-Umfeld; zur Verwaltung der Paketabhängigkeiten empfehlen wir weiterhin den Einsatz von Go Modules (go.mod
Datei).
Häufige Fragen (FAQ)
F: Im ServBay-Terminal erscheint beim Ausführen von
go
der Fehler "command not found".A: Prüfen Sie zunächst, ob Ihr Terminal die PATH-Umgebung von ServBay korrekt gesetzt hat. Vergewissern Sie sich außerdem, dass mindestens eine Go-Version in ServBay (
Pakete
>Go
) installiert wurde und als Standard aktiv ist.F: Wie aktualisiere ich Go auf die neueste Version in ServBay?
A: Im Bereich
Pakete
>Go
von ServBay werden regelmäßig neue Go-Versionen bereitgestellt, wenn sie verfügbar sind. Klicken Sie einfach auf die gewünschte Version zum Installieren und stellen Sie sie im GUI als Standard ein.F: Go Modules laden sehr langsam oder verursachen Netzwerkprobleme – was tun?
A: Standardmäßig lädt Go Modules Abhängigkeiten von
proxy.golang.org
. In China oder anderen Regionen mit eingeschränkter Netzwerkverbindung können Probleme auftreten. Sie können denGOPROXY
Umgebungswert konfigurieren, z.B. mithttps://goproxy.cn
oderhttps://goproxy.io
. Dies lässt sich global in ServBay oder projektspezifisch via.servbay.config
(GOPROXY=https://goproxy.cn,direct
) festlegen.F: Beim Start meiner Go-Webapp erscheint "address already in use" – was tun?
A: Diese Meldung bedeutet, der von Ihnen gewählte Port (meist 8080) ist bereits von einem anderen Prozess belegt. Sie haben zwei Optionen: Entweder Sie ändern den Port in Ihrem Go-Code auf einen freien Wert (z.B. 8081, 9000 ...), oder Sie lokalisieren/kündigen den belegenden Prozess. Auf macOS geht das mit
lsof -i :<Portnummer>
(z.B.lsof -i :8080
). Den ermittelten Prozess mitkill <PID>
beenden.F: Was unterscheidet
.servbay.config
vom globalen Go-Versionswechsel und wann sollte ich welches verwenden?A: Ein globaler Wechsel (über das ServBay-GUI) setzt die Standard-Go-Version systemweit.
.servbay.config
hingegen wirkt sich nur projektbezogen aus und überschreibt temporär die Go-Version in der aktuellen Session. Empfohlen wird.servbay.config
, wenn Sie mehrere Projekte mit unterschiedlichen Anforderungen betreuen. So bleibt jedes Projekt isoliert und reproduzierbar. Der globale Wechsel ist für diejenigen sinnvoll, die meist mit nur einer Version arbeiten.
Zusammenfassung
ServBay bietet Go (Golang)-Entwicklern auf macOS eine leistungsstarke und benutzerfreundliche Entwicklungsumgebung. Mit der übersichtlichen Oberfläche lässt sich die Verwaltung mehrerer Go-Versionen intuitiv realisieren, während .servbay.config
projektbezogene Versionsteuerung ermöglicht. Zusammen mit Go Modules für das Dependency Management und den integrierten ServBay-Webservern für Reverse Proxies und Hosting steht Ihnen ein einfach aufzubauendes, schnelles und flexibles Umfeld bereit. Komplizierte Konfigurationsschritte sind Geschichte – Sie können sich voll auf das Programmieren und die Innovation mit Go konzentrieren.