Go - Der Kurs zum Buch
Eine umfangreiche Einführung in Golang. Mit vielen spannenden Projekten für einen schnellen Einstieg
What you will learn
Einen schnellen Überblick über Go
Go Syntax
kleine spannende Projekte
Nebenläufigkeit
Concurrency
Daten per HTTP laden
Webserver in Go erstellen
Description
Go (auch oft als Golang bezeichnet) ist eine relativ neue Programmiersprache, die für moderne Anforderungen ausgelegt ist. Ursprünglich bei Google konzipiert, ist Golang perfekt geeignet, um leistungsfähige Programme zu erstellen. Die Sprache ist leicht zu erlenen, da sie viele bereits bewehrte Konzepte umsetzt und somit nicht das Rad neu erfindet. Die Standardbibliothek ist sehr mächtig und eignet sich sehr gut für Microservices oder Backend-Anwendungen. Nicht umsonst wird Go auch als die Sprache der Cloud bezeichnet.
Dieser Kurs ist eine perfekte Ergänzung zum Buch "Go - Das Praxisbuch" aus dem dpunkt-Verlag. Er beinhaltet alle Inhalte des Buches und geht auf weitere aktuelle Entwicklungen der Programmiersprache Go ein.
Der Kurs richtet sich an Entwickler, die bereits in anderen Sprachen programmiert haben. Deshalb wird die Syntax schnell vorgestellt. Hier halten wir uns nicht an bekannten Konzepten bzw. Grundlagen auf. Somit bekommst Du einen schnellen Überblick über die Sprache. Kleine Projekte zeigen, wie die Sprache praktisch angewendet werden kann. Dabei erfolgt auch ein Einblick in die mächtige Standardbibliothek der Sprache.
Der Kurs beinhaltet aktuell wie folgende Lektionen:
Vorstellung der Syntax
Es werden einmal alle Elemente der Sprache kurz vorgestelltProjekt: Command Line Interface
Im ersten Projekt wird ein Tool geschrieben, das Dateien laden kann und deren Inhalt an den Standardoutput übergibt. Anschließend wird ein zweites Tool erstellt, dass Daten aus dem Standardinput verwendet, um diese als md5-Hash auszugeben.Projekt: Ein einfacher Webloader
Dieses Projekt vertieft erneut die Verwendung des io.Reader und io.Writers und gibt weitere Einblicke in HTTP-Request, Umgang mit Files und geschickter Verwendung des Error-Typs.Eigene Pakete und Module
Eine Vorstellung, wie Module in Go abgebildet werden. Seit Version 1.11 werden Abhängigkeiten über Module verwaltet. In diesem Kapitel behandeln wir die wichtigsten Befehle und Grundlagen zu den Modulen.Projekt: Code generieren
Mit go generate ist es möglich Befehle vor dem Kompilieren über das Go-Tool ausführen zu lassen. Diese werden als Kommentar im Code angelegt. Dieses Projekt zeigt, wie go generate praktisch eingesetzt wird. Zusätzlich zeigt es, wie wir mit Go auch ganz schnell und einfach Code generieren können.Concurrency-Grundlagen
Eines der wichtigsten Features von Go ist die nebenläufige Programmierung. In diesem Kapitel wird der erste Grundstock für dieses Konzept gelegt. Hier erfolgt eine Einführung in Goroutinten, Channels, Race Conditions und vieles mehr.Concurrency-Patterns
Aufbauend auf den Grundlagen werden immer wieder kehrende Elemente der nebenläufigen Programmierung vorgestellt. Es wird gezeigt, wie unterschiedliche Problemstellungen nebenläufig in Go gelöst werden können.Projekt: Go Concurrency
Dieses Projekt zeigt, wie wir praktisch die gelernten Concurrency Grundlagen und Pattern anwenden können. Dafür erstellen wir ein CLI Tool, das Befehle nebenläufig ausführt.Testen und Benchmarks
Go besitzt schon seit Anfang eine integrierte Testumgebung. In diesem Kapitel wird dir gezeigt, wie Du Unit-Tests und Benchmarks in Go erstellst.Projekt: Ein Image Resizer
In diesem kleinen Projekt schreiben wir ein Tool, dass alle Bilder in einem Verzeichnis verkleinert. Dabei schreiben wir kleine Tests, verwenden ein externes Paket und bauen uns einen eigenen Fehlertyp. Am Ende bauen wir das sequentielle Programm in ein nebenläufiges Programm um.Interfaces
Wie werden Interfaces intern abgebildet und was ist in Go anders gelöst als in anderen Sprachen. Wie erzeugen wir auf idiomatische Weise kleine leistungsfähige Interfaces.Projekt: Reflection
In diesem Projekt erstellen wir ein Paket, dass zur Laufzeit Strukturen auswertet und die Inhalte der Felder kopiert. Dafür verwenden wir das reflect-Paket. Neben den ersten Grundlagen zu Reflection in Go zeigt dieses Projekt einen Anwendungsfall für dieses Thema.Fehlerbehandlung
Eine kurze Darstellung, wie Fehler in Go abgebildet werden und welche Besonderheiten sich daraus ergeben.Projekt: Webserver
In diesem Projekt bauen wir den Server für einen ganz einfachen Weblog. Dabei lernen wir http-Handler kennen und erstellen auch eine einfache JSON-API.