Einführung in Go
– Historie
– Grundidee
– Philosophie
Grundlagen der Go-Entwicklung
– Packages
– Module System
– Go Compiler (Windows, Linux, Webassembly)
– Go in Visual Studio Code (Editing, Compiling, Debugging)
– Go in Docker images
– C Interop
Grundlagen der Sprache Go
– Variablen und Konstanten
– Schleifen
– Bedingungen
– Arrays und Slices
– Functions
– Pointers
– Structs, Methods, Interfaces
– Errors
Goroutines und Channels
– Grundlagen von Goroutines
– Grundlagen von Channels
– Channel Buffering
– Channel Synchronization
– Non-blocking Channel operations
– Select
– Timeouts
– Atomic counters, Mutexes
Panic, defer
JSON in Go
HTTP Go
– Server
– Client
Kurze Wiederholung der Grundlagen von HTTP-basierenden Web APIs
– Länge und Tiefe hängt ab vom Vorwissen der Teilnehmerinnen und Teilnehmer
Entwickeln einer einfachen Web API mit Go
– HTTP Server
– API Endpoints, Routes
– JSON Results
– Web API in Docker Image, Betrieb in Docker Container
Konsumieren der Web API mit Go
Go und gRPC
– Grundlagen von gRPC
– gRPC Server
– gRPC Client
Microservices
– Wiederholung der Grundkonzepte (Länge und Tiefe hängt ab vom Vorwissen der Teilnehmerinnen und Teilnehmer)
– Warum Microservices mit Go?
– Was braucht ein Microservice mehr als eine Web oder gRPC API?
Go Frameworks für Microservices, z.B. mit Go Kit
Optional weitere Einsatzbereiche (Frameworks und Tools nach Kundenwunsch)
- Datenbankzugriffe mit Go
- Unit Tests mit Go
- Weitere Einsatzgebiete