Schulung Go/Golang - insbesondere zur Entwicklung von Microservices

Beschreibung/Inhalt

Die Programmiersprache Go hat in den letzten Jahren viel Aufsehen erregt. Im Microservices-Umfeld wurde sie besonders bekannt, weil Docker mit Go geschrieben ist. Go zeichnet sich durch einfache und klare Syntax, hohe Laufzeiteffizienz, gute Unterstützung von nebenläufiger Programmierung und viele weitere Dinge aus, die die Sprache besonders geeignet für Web APIs machen.

Dieser Workshop ist gedacht für Entwicklerinnen und Entwickler, die in Go einsteigen möchten. Vorkenntnisse in anderen objektorientierten Sprachen wie Java, C# oder TypeScript sind notwendig. Darauf aufbauend lernen die Teilnehmerinnen und Teilnehmer die Tools von Go und die Syntax der Sprache kennen. Natürlich wird auch das Verpacken von Go-Programmen in Docker Containern ein Thema sein. Nach dem Behandeln der Grundlagen sprechen wir über die Umsetzung von Microservices mit Go. Gestartet wird, indem wir ohne besonderem Framework eine einfache, HTTP-basierende Web API erstellen und in Docker betreiben. Anschließend diskutieren wir, welche Aspekte für eine vollwertige Microservice-Infrastruktur fehlen. Rainer Stropek wird einige populäre Microservice-Frameworks für Go gegenüberstellen und anschließend im Besonderen auf Go kit genauer eingehen. Ziel ist, ein einfaches Microservice mit Go kit zu erstellen und es in der Cloud zu hosten. Im Workshop steht praktisches Programmieren statt Slides im Vordergrund. Wir werden Go anhand vieler live ausprobierter Beispiele kennenlernen.

# 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

  • Dauer
    Auf Wunsch. Gerne geben wir Ihnen eine Empfehlung zur notwendigen Schulungsdauer, wenn Sie uns in der Anfrage Ihre Vorkenntnisse und Ziele nennen.
    Ort
    Online oder in Deutschland, Österreich und der Schweiz an Ihrem Firmensitz
    Schulungsdidaktik
    Nach Ihrer Wahl: Klassische Schulung mit PC-Übungen, reine Präsentation ohne PC-Übungen oder interaktiver Workshop mit Beratungsanteil