Kurs · Schulung · Workshop
Go for Enterprise Services
Idiomatisches Go für erfahrene Java-Teams: Services contract-first mit OpenAPI bauen, Projekte sauber strukturieren, Messaging anbinden, interne Libraries teilen und Go-Services testbar, beobachtbar und produktionsreif betreiben.
Viele Enterprise-Teams setzen Go für Plattform-Tools, Integrations-Services und Microservices ein – und schreiben am Anfang oft Java in Go-Syntax: tiefe Paketstrukturen, grosse Interfaces, Exceptions-Denken und Frameworks für alles. Dieser Kurs zeigt, wie Go in einem Unternehmensumfeld idiomatisch aussieht und warum die Sprache mit bewusst wenigen Konzepten auskommt. Die Teilnehmenden bauen im Kurs einen Service contract-first: OpenAPI-Spezifikation, generierter Server-Code mit go:generate, Swagger UI, sauber geschichtete Handler, Anbindung an eine Message Queue und ein Consumer, der Events weiterverarbeitet. Dazu kommen die Fragen, die im Alltag wirklich zählen: Wie strukturiere ich ein Go-Projekt und ein Monorepo? Wie baue ich eine interne Library für Konfiguration, LDAP oder Logging, die andere Teams gerne verwenden? Wie sieht eine Middleware-Kette aus? Und wann ist Go die richtige Wahl – und wann bleibt Java die bessere?
Trainer
Stimmen unserer Teilnehmer:innen
* Stimmen aus diesem oder verwandten Kursen.






Diese Kunden haben Kurse im gleichen Themen-Cluster bei uns gebucht.Mehr Kunden →
Inhalt
Der Kurs besteht aus den folgenden Themen und wird für Inhouse-Durchführungen auf die Architektur, Libraries und Plattform des Teams zugeschnitten. Wir arbeiten durchgehend an einem realistischen Service mit API-Vertrag, Messaging-Backend und Deployment in Docker und Kubernetes.
– Go aus Java-Sicht:
- Was Go bewusst weglässt: Vererbung, Exceptions, Annotations, schwere Frameworks
- Composition statt Vererbung, Structs, Methoden und Embedding
- Kleine Interfaces beim Konsumenten definieren – implizite Implementierung
- Fehler als Werte: Wrapping, errors.Is und errors.As, Sentinel- und Custom-Errors
- Wann Go, wann Java: Kriterien für die Technologiewahl im Team
- Hands-On: Java-typischen Code idiomatisch in Go umbauen – Projekte und Module strukturieren:
- Go Modules, Versionierung und private Module im Unternehmen
- Projektlayout: cmd/, internal/, Pakete nach Verantwortung statt nach Schicht
- Monorepo oder viele Repos, Workspaces und Abhängigkeiten
- Hands-On: Service-Projekt aufsetzen und in Pakete schneiden – REST-Services contract-first mit OpenAPI:
- OpenAPI-Spezifikation als Vertrag zwischen Teams
- Server- und Client-Code generieren mit oapi-codegen und go:generate
- net/http-Routing, Handler, Request-Validierung und JSON
- Swagger UI für Dokumentation und Tests der API
- Hands-On: API-Vertrag schreiben, Code generieren und Service implementieren – Middleware und Request-Pipeline:
- Middleware-Ketten für Logging, Authentifizierung, Tracing und Recovery
- context.Context für Timeouts, Abbruch und Request-Daten
- Konfiguration laden: Umgebungsvariablen, Dateien, Defaults
- Hands-On: eigene Middleware-Kette für den Service bauen – Messaging und asynchrone Verarbeitung:
- Events publizieren und konsumieren mit einer Message Queue (z.B. NATS, RabbitMQ oder Kafka)
- Goroutines, Channels und sync-Primitive im Service-Kontext
- Worker-Pools, Backpressure, Retries und Idempotenz
- Hands-On: Service publiziert Events, ein Consumer verarbeitet sie – Interne Libraries für viele Teams:
- Gute APIs für Libraries: kleine Oberfläche, sinnvolle Defaults, Functional Options
- Typische Kandidaten: Konfiguration, LDAP-Anbindung, Logging, HTTP-Clients
- Versionierung, Kompatibilität und Dokumentation mit godoc
- Hands-On: interne Library extrahieren und im Service verwenden – Testing und Qualität:
- Table-driven Tests, Subtests, httptest und Test-Doubles ohne Mocking-Framework
- Integrationstests mit Containern
- go vet, staticcheck, golangci-lint und Race Detector in der Pipeline
- Hands-On: Service und Consumer mit Unit- und Integrationstests absichern – Betrieb und Observability:
- Strukturiertes Logging mit log/slog, Metriken und Traces mit OpenTelemetry
- Health Checks, Graceful Shutdown und sinnvolle Timeouts
- Container-Images mit Multi-Stage-Builds und Deployment in Kubernetes
- Hands-On: Service und Message Queue im Kubernetes-Cluster der Labmachine betreiben
Ziel ist nicht, möglichst viele Libraries kennenzulernen, sondern Go so zu schreiben, wie es gedacht ist: einfach, explizit und gut lesbar – damit Go-Services im Unternehmen genauso wartbar werden wie die bestehenden Java-Systeme.
Der effektive Kursinhalt kann, abhängig von Trainer, Durchführung, Dauer und Konstellation der Teilnehmer:innen, von obigen Angaben abweichen.
In-House Kurs anfragen
Öffentlichen Termin anfragen
Kein passender öffentlicher Termin dabei? Trag dich unverbindlich ein – sobald genug Interesse besteht, planen wir einen neuen öffentlichen Termin und informieren dich zuerst.
Mehr über Go im Enterprise-Umfeld
Go wurde bei Google für genau die Probleme entworfen, die grosse Organisationen haben: viele Teams, grosse Codebasen, lange Build-Zeiten und Services, die zuverlässig und ressourcenschonend laufen müssen. Heute ist Go die Sprache hinter Kubernetes, Docker, Terraform und Prometheus – und wird in Banken, Versicherungen, Energie- und Handelsunternehmen für Plattform-Tools, Integrations-Services und APIs eingesetzt, oft direkt neben bestehenden Java-Landschaften.Weitere Ressourcen:
History
Go entstand 2007 bei Google, als Robert Griesemer, Rob Pike und Ken Thompson nach einer Sprache suchten, die die Produktivität dynamischer Sprachen mit der Sicherheit und Performance kompilierter Sprachen verbindet – und die in Codebasen mit tausenden Entwicklern lesbar bleibt. Seit Go 1.0 (2012) gilt das Kompatibilitätsversprechen, das Go für langlebige Unternehmenssoftware attraktiv macht.
Mit Docker und Kubernetes wurde Go zur Sprache der Cloud-Native-Infrastruktur. Go Modules (1.11), Generics (1.18), strukturiertes Logging mit log/slog (1.21) und das erweiterte Routing in net/http (1.22) haben die Standardbibliothek so ausgebaut, dass viele Enterprise-Services heute ohne schwergewichtige Frameworks auskommen.
