Boehrsi.de - IT und Gaming Blog

Programmiersprache Go - Mein erstes Fazit

Erstellt am event Uhr von account_circle Boehrsi in label Development
Programmiersprache Go - Mein erstes Fazit Bild

Vor einiger Zeit nahm ich mir die eine oder andere Stunde, um mal in die Programmiersprache Go open_in_new hineinzuschauen. Ergebnis war ein kleiner Web-Service, welcher in meinem Blog als Counter im Hintergrund lief. Der Dienst sammelte dabei keine großen Daten, sondern versuchte zu erfassen wie oft einzelne Unterseiten geöffnet wurden, sowie die gesamte Anzahl der täglichen Besucher zu erfassen. Im Prinzip eine sehr simple Statistik, welche die für mich wichtigen Informationen beinhaltet: Besucher pro Tag und beliebte Artikel für meine Top 10 Beiträge.
Go lieferte dabei eine interessante Basis, da es im Gegensatz zu Java, Kotlin open_in_new und Dart open_in_new teilweise andere Ansätze verfolgt. So war ich in der Lage mit nur sehr wenigen Abhängigkeiten die genannten Funktionen umzusetzen, musste allerdings einiges selber schreiben, was ich bei den genannten anderen Sprachen direkt in Form von vorhandenen Features nutzen konnte. Die initiale Umgewöhnung war zwar nicht einfach, aber ich fühlte mich trotz dessen schnell performant, nachdem die ich die grundlegende leichtgewichtige Idee der Sprache verstanden hatte.

Go ist eine sehr zielorientierte und minimalistische Sprache. Meinen kleinen Service setzte ich mittels 9 Dateien, mit insgesamt 396 Zeilen Code um. Ergänzt wird das Ganze von einer JSON basierten Config Datei, welche z.B. Ports und ähnliches festlegt. Externe Abhängigkeiten waren Strom open_in_new (ein Toolkit für Go’s Key-Value Store BoltDB open_in_new), sowie gorilla/mux open_in_new, ein Router für HTTP Requests. Ansonsten wurden nur Go eigene Routinen genutzt.
Ein kleiner Router prüft bei Requests initial einen API-Key, sofern es ums auslesen der Daten geht und ansonsten delegiert er die Aufrufe weiter, verifiziert die gesendeten Daten und legt sie in BoltDB ab. Dies erfolgt bei jedem Aufruf der Seite, asynchron via AJAX JavaScript Aufrufe. Das Auslesen von Daten oder Überprüfen des Serverstatus (Health Check) führe ich als direkte Requests via Postman open_in_new durch, eine extra Admin-Oberfläche habe ich nicht entwickelt.
Abgesehen vom Lernen der Sprache, war die Umsetzung erschreckend einfach und ich kann jedem der etwas näher am Metall, mit gut strukturierten, aber minimalistischen Mitteln etwas umsetzen will, nur empfehlen mal einen Blick auf Go zu werfen. Ich werde für den Moment meinen Fokus neben Dart (Flutter) allerdings eher auf Kotlin lenken, da ich durch meinen Android und Java Hintergrund dadurch mehr erreichen kann und mir leider die Zeit für aufwendigere Programmiersprachenausflüge fehlt. Ich bereue allerdings nicht Go getestet zu haben und werde die Sprache definitiv im Auge behalten.

Related Links
Kommentare  
Kommentar erstellen
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden. Spam, unangebrachte Werbung und andere unerwünschte Inhalte werden entfernt. Das Abonnieren via E-Mail ist nur für E-Mail Adressen erlaubt die Sie rechtmäßig administrieren. Widerrechtliche Abonnements werden entfernt.