Kurs · Schulung · Workshop
Programming in Go
Moderne, effiziente und skalierbare Softwareentwicklung mit Go: performante Microservices, REST-APIs und CLI-Tools - von Concurrency bis zum produktionsreifen Deployment.
Go ist die Programmiersprache der Cloud-Ära: Einfach, schnell und zuverlässig. In diesem intensiven Kurs erlernen Sie die Entwicklung hochperformanter Microservices, REST-APIs und CLI-Tools. Von den Grundlagen über fortgeschrittene Konzepte wie Concurrency bis hin zu produktionsreifen Deployments - Sie bauen durchgehend praktische Anwendungen und lernen Go so, wie es in der Industrie eingesetzt wird. Egal ob Sie neu in Go sind oder Ihre Kenntnisse vertiefen möchten, dieser Kurs bereitet Sie optimal auf die Entwicklung moderner, skalierbarer Softwarelösungen vor.
Stimmen unserer Teilnehmer:innen
Inhalt
– Einführung in Go
- Warum Go? Performance, Einfachheit und Cloud-Native Entwicklung
- Go vs. andere Sprachen: C++, Java, Python, Rust
- Anwendungsfälle: Microservices, CLI-Tools, Systemprogrammierung
- Go-Philosophie: Weniger ist mehr, explizit über implizit
– Sprachgrundlagen und Syntax
- Variablen, Konstanten und Typisierung
- Grundlegende Datentypen und Type Inference
- Pointer und Memory Management
- Kontrollstrukturen: if, for, switch
- Funktionen: Definition, Parameter, Rückgabewerte, Multiple Return Values
– Datenstrukturen und Algorithmen
- Arrays und Slices: Erstellung, Manipulation, Slicing
- Maps: Key-Value Stores und effiziente Lookups
- Structs: Benutzerdefinierte Datentypen
- Interfaces: Duck Typing und Polymorphismus
- Generics: Type-safe generische Programmierung
– Objektorientierte Programmierung in Go
- Embedding statt Vererbung
- Methoden und Receiver
- Interface Composition
- Type Assertions und Type Switches
– Nebenläufigkeit und Parallelität
- Go-Routinen: Leichte Threads und Goroutine Scheduling
- Channels: Sichere Kommunikation zwischen Goroutinen
- Select Statements: Nicht-blockierende Operationen
- Context Package: Request Cancellation und Timeouts
- Sync Package: Mutexes, WaitGroups, Atomic Operations
– Error Handling und Robustheit
- Das Error Interface und Fehlerbehandlung
- Custom Error Types und Error Wrapping
- Panic und Recover: Exception-ähnliche Mechanismen
- Defer Statements: Resource Cleanup
- Best Practices für robuste Fehlerbehandlung
– Testing und Qualitätssicherung
- Unit Tests: table-driven tests, subtests
- Benchmarking: Performance-Messungen
- Integration Tests und Test Coverage
- Mocking und Test Doubles
- Fuzzing und Property-based Testing
– REST API Entwicklung
- HTTP Server mit net/http
- Routing: gorilla/mux, chi, gin
- JSON Handling: encoding/json, Serialisierung
- Middleware: Logging, CORS, Authentication
- RESTful Design Prinzipien
– Datenbanken und Persistenz
- SQL Datenbanken: database/sql, Prepared Statements
- ORM Libraries: GORM, sqlx
- NoSQL: MongoDB Driver, Redis Client
- Connection Pooling und Transactions
- Migrations und Schema Management
– Sicherheit und Best Practices
- Input Validation und Sanitization
- SQL Injection Prevention
- Cross-Site Scripting (XSS) Protection
- Authentication und Authorization
- Secure Coding Guidelines für Go
– Build-System und Tooling
- Go Modules: Dependency Management
- Build Constraints und Cross-Compilation
- Go Tools: fmt, vet, lint, mod
- Profiling und Performance Analysis
- Debugging mit Delve
– Containerization und Deployment
- Docker Images für Go Applications
- Multi-stage Builds und Image Optimization
- Kubernetes Deployments
- Configuration Management: Environment Variables, Config Files
- Health Checks und Graceful Shutdown
– Fortgeschrittene Themen
- Reflection und Code Generation
- CGO: Integration mit C Libraries
- WebAssembly und Web-Entwicklung
- Plugin System und dynamisches Laden
- Performance Optimization und Memory Profiling
– CLI-Anwendungen und Tools
- cobra: Framework für CLI Applications
- flag Package: Kommandozeilen-Argumente
- viper: Configuration Management
- Logging: log, zap, logrus
- Distribution und Packaging
Du lernst diese Konzepte nicht nur kennen, sondern setzt sie auch praktisch um. Vom ersten “Hello World” bis zur produktionsreifen Anwendung bauen wir durchgehend lauffähige Programme und lernen Go so, wie es in der Praxis eingesetzt wird.
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
Go ist eine moderne, kompilierte Programmiersprache, die von Google entwickelt wurde und sich durch ihre Einfachheit, Effizienz und eingebaute Unterstützung für nebenläufige Programmierung auszeichnet. Sie kombiniert die Leistung von kompilierten Sprachen mit der Entwicklungsgeschwindigkeit interpretierter Sprachen und hat sich zur bevorzugten Sprache für Cloud-native Anwendungen, Microservices und Systemtools entwickelt.Weitere Ressourcen:
History
Go wurde 2007 bei Google von Robert Griesemer, Rob Pike und Ken Thompson entwickelt. Die Sprache entstand aus der Frustration über die Komplexität der Softwareentwicklung bei Google, insbesondere mit C++ und Java. Das Ziel war eine Sprache zu schaffen, die die Produktivität von dynamischen Sprachen mit der Sicherheit und Performance von statisch typisierten Sprachen verbindet.
Die erste öffentliche Ankündigung erfolgte 2009, und die Sprache wurde schnell von der Community angenommen. Die Entwicklung wurde massgeblich von Russ Cox und Ian Lance Taylor vorangetrieben, die wichtige Beiträge wie das Go Module System (eingeführt in Go 1.11) und Verbesserungen am Compiler leisteten. Go 1.0 wurde 2012 mit dem Versprechen der Abwärtskompatibilität veröffentlicht, was die breite Akzeptanz in der Industrie förderte.
Go hat die Cloud-native Bewegung massgeblich beeinflusst und ermöglichte die Entwicklung von Technologien wie Docker und Kubernetes. Wichtige Meilensteine waren die Einführung von Generics in Go 1.18 (2022), die die Sprache deutlich vielseitiger machten, und die kontinuierliche Verbesserung der Performance und Tool-Unterstützung. Heute ist Go eine der am schnellsten wachsenden Programmiersprachen und wird von Unternehmen wie Google, Netflix, Uber, Dropbox und vielen anderen für kritische Infrastruktur eingesetzt.

