Go-Workshop

Wer öfter mit Cloud- und Containerumgebungen zu tun hat, ist sicherlich schon einmal über die Programmiersprache Go gestolpert. Dort wird sie verwendet, um vor allem Microservices und Datenbanken zu implementieren. Doch warum wird Go dort so extensiv benutzt, wo kann man Go sonst noch einsetzen und was sind die Vorteile gegenüber anderen Programmiersprachen? Diese Fragen werden in diesem Workshop beantwortet.

Dieser Workshop ist aufgeteilt in zwei Teile: zuerst wird Go erläutert und in der Theorie erklärt, darauffolgend wird eine kurze Coding-Session abgehalten, um Go auch in der Praxis kennenzulernen.

Der erste Teil behandelt die Grundlagen von Go, wie z.B. dessen Syntax, aber auch gewisse Eigenheiten der Sprache, wie z.B. das Duck-Typing und die in Go 1.18 eingeführte Generizität. Im zweiten, praktischen Teil des Workshops werden zwei Programme implementiert, davon eines angelehnt an den vorhergehenden Rust Workshop.

  • Eine CLI-Anwendung, die JSON/YAML-Dateien verarbeitet.
  • Eine Fortune-as-a-Service Anwendung, welche uns kluge Sprüche über das Web zurückliefert.

Für den praktischen Teil wird der Go Compiler benötigt; endweder lokal am PC installieren oder über einen Docker Container (docker pull golang:1.20.3) ausführen.

Was: Go-Workshop
Wann: Montag, 17. April 2023, ab 19:00
Wo: XORTEX LBS3, FH3
Wer: Konstantin Papesh

Links zur Präsentation und zum Source-Code gibt es nach dem Workshop auf https://fhlug.at.

Author: Daniel Knittl-Frank

I studied Software Engineering in Hagenberg. My master thesis dealt with cross-platform portability of .NET applications under Mono on Linux, specifically with the HeuristicLab optimization framework. I do most of the boring stuff at fhLUG, such as organizing events and taking care of the website. Talks I have given have covered several diverse topics, including typesetting with LaTeX, version control with Git, the Neo keyboard layout, the Vim text editor, regular expressions, and shell scripting.

Leave a Reply

Your email address will not be published. Required fields are marked *