Dass wir uns aktuell stark im Bereich der Sprache Go engagieren, dürfte nur den wenigsten entgangen sein. Und weil es dort noch viel mehr zu entdecken gibt, haben wir bereits das nächste Meetup in petto: Let’s Go RESTful with Gin!
Wir haben mit Alexander, eurem Host des Meetups gesprochen, um alle offenen Fragen zu klären. Beispielsweise: Go & Gin – passt das? Und was genau ist mit Gin in diesem Kontext gemeint?
Go & Gin … wie passt das zusammen?
Alex: Zum einen passen Go und Gin natürlich sowieso sehr gut zusammen … es schadet nicht, wenn man Go lernt und nebenbei einen kleinen Gin-Tonic trinkt. Das lockert die Stimmung und das Lernvermögen etwas auf!
Spaß beiseite. Davon abgesehen passen Go und Gin nämlich sehr gut, denn Gin – also die Go-Komponente Gin – ist ein hervorragendes Beispiel dafür, dass man mit Go schnell schlanke Dinge bauen kann.
Erst kürzlich habe ich mit Kollegen gesprochen, die in einem Java-Projekt und mal wieder am verzweifeln sind. Warum? Sie wollen mit den großen Java-Kanonen auf ganz kleine Problemvögel schießen.
Natürlich passt man sich in seinem Job an und nutzt die Frameworks, die der Kunde auch nutzt oder haben möchte. Dennoch ist es nicht verkehrt, wenn man Go und Gin kann. Dann kann man damit in seinem nächsten Projekt punkten und zeigen, dass es auch anders geht. Schneller und effizienter. Was ja nicht schaden kann.
Und wie gesagt, beim Lernen auch mal einen Gin Tonic trinken …
Was ist in dem Gin-Gonic-Framework alles enthalten?
Alex: Enthalten ist eine … hm, Sprache kann man nicht sagen. Es ist nicht wie eine DSL, es fühlt sich aber so an. Denn mit den typischen Go-Konstrukten Structs und Functions kann man seine Routen definieren. Man hat also schon eine festgelegte Struktur.
Man kann zum Beispiel mit Gruppen arbeiten und dann Router-Gruppen definieren. Man kann Parameter abfragen, Patterns im Router festlegen und je nachdem wie das Pattern ausfällt, auf verschiedene Handler umlenken.
Es gibt einen Mechanismus der Middleware integriert, die ich benutzen kann, um zum Beispiel eine Token-Verifikation zu machen, um eine Basic-Authentification zu integrieren, Dinge zu loggen, Latenz-Tracking mit Prometheus, und so weiter und so fort.
Im Prinzip hat man alles als fertige Komponenten zur Verfügung, was man normalerweise braucht, um ein Rest-API zu bauen. Und ganz Go-typisch: Es ist kompakt und auf den Punkt gebracht, deswegen ist man auch entsprechend schnell, wenn man es benutzt.
Testbar ist es übrigens ebenfalls mit dem Standard-Test-Framework, das in Go integriert ist. Damit kann man dann Controller-Endpunkte abfragen, bestimme Antworten erwarten, checken, erwartete Meldungen kommen, ob HTTP-Statuscodes so sind wie sie denn sein sollten, und so weiter.
Es fügt sich also nahtlos in die normale Go-Welt ein. Und es fügt sich natürlich auch nahtlos in alle anderen Webkomponenten ein, die es für Go gibt.
… wirkt sich das nicht negativ auf die Performance aus?
Alex: Nein, im Gegenteil. Die Performance von Gin ist extrem gut. Es gibt die ein oder andere Liste im Internet, in der die Go-Frameworks verglichen werden. Also Go-Frameworks & -Bibliotheken einerseits, aber dann auch mit anderen Programmiersprachen und den typischen Frameworks wie z. B. Java Spring. Da sieht man eben, dass Go in Kombination mit dem Gin-Router extrem gut abschneidet. Es ist alles sehr plain und auf den Punkt, was sich später auch auswirkt.
Man darf aber natürlich nicht vergessen, dass Go eine Sprache ist, die kompiliert wird. Am Ende steht ein Executable, in dem alle Komponenten statisch gelinkt werden. Für das Deployment brauche ich nur einen Docker-Container mit einem Linux – deswegen habe ich natürlich eine sehr hohe Performance.
Was haben wir nach dem Meetup gelernt?
Alex: Nach dem Meetup wisst ihr ganz viel über Gin. Also den echten Gin, nicht der imaginäre, virtuelle Gin. Ich werde euch also ein bisschen was über die Spirituose Gin erzählen, was sie ausmacht. Und das sind ja immer sehr wichtige, wesentliche Informationen, die man in jedem Gespräch mit Freunden unterbringen kann. Damit kann man glänzen!
… genauso werdet ihr nach dem Meetup in Bezug auf die Gin-Bibliothek (den virtuellen Gin) glänzen. Da werdet ihr nicht nur wissen wie ihr sie benutzt – denn das werden wir im Workshop auch selbst machen, also selbst Dinge implementieren – sondern ihr werdet auch wissen, wie es sich anfühlt und warum es manchmal besser sein könnte, eben mal das Framework und die Sprache zu wechseln. Einfach mal Go in seinem Projekt eine Chance geben und sich dann über die ganzen guten Eigenschaften freuen. Wie beispielsweise die Performance und die Einfachheit, die man dadurch rein bekommt.
Schreibe einen Kommentar