Date and location: 2021-06-11, 09-16+ (09-12, 13-16+), remote workshop; language: de/en (depending on participants; slides and material will be in English)
Note: This material is work-in-progress.
Go is eine moderne Programmiersprache, die - ein wenig wie Englisch - leicht zu lernen, aber nicht ganz so leicht zu meistern ist. Dieser Workshop stellt Go für Entwicklerinnen und Entwickler vor: wir führen die Sprache ein und konzentrieren uns dann auf verschiedene Aspekte, die Go ausmachen: Design and Projektstruktur, Concurrency und HTTP Applikationen. Wir schauen uns viele Beispiele an und schreiben selbst einige kleine Programme.
Voraussetzung: Laptop, am besten mit einer Go Installation; Editor und git für das Clonen des Repos.
Für wen ist der Workshop?
Alle, die schon programmieren, aber noch wenig oder gar keine Erfahrung mit Go haben und die Sprache in wenigen Stunden von vielen Seiten beleuchtet sehen möchten: mit echten Code-Beispielen, typischen Mustern und Lösungsansätzen.
Go is a modern programming language, which - a bit like English - is easy to learn, but hard to master. This workshop is aimed at developers wanting to take a look at Go: We introduce the language, and focus on topics specific to Go, like program design, project layout, concurrecy, testing and HTTP applications. We will study example code and write small programs ourselves.
Requirements: Laptop (or any computer) with Go installed, some editor and git.
Who is this workshop for?
Anyone, who already programs and would like to learn more about what makes Go work, from language features to project patterns and real-world examples.
The basic data types, control structures and program structure.
Test, build, lint and run Go applications with the Go tool.
An entry point are the data structures, custom interfaces emerge along design and development; keeping interfaces small helps composability.
Where does code live, how do you keep track of dependencies, how to structure services or command line tools.
What's in the binary and how do you run this thing?
Go supports classic concurrency primitives, like locks, but also channels to communicate between threads of execution. Concurrency is often wrapped inside a library and keeps most code sequential.
Simple test are table driven. The Go tool supports testing, coverage and benchmarking.
Building lean web applications with
net/http
and friends.
Other topics, like: What are people building with Go.