Cover Image

Today I Learned #2 - StringBuilder in Go

Ab und zu gerät man in die Bredoullie, einen laaaangen String aus mehreren Substrings zu konkatinieren. Das kann man entweder durch Addition machen.. oder mit einem StringBuilder. Wie auch in anderen Highlevel-Sprachen wie C# oder Java, gibt es auch in Go einen StringBuilder der das Zusammensetzen und anschließende Ausgeben einer langen Zeichenkette unterstützt. Wie das geht sieht man hier: sb := string.Builder{} sb.WriteString("Langer") sb.WriteString("String") println(sb.String()) Zu erst erzeugt man sich eine neue Instanz des StringBuilders aus dem strings-Package....

December 4, 2019 · 1 min · marcel
Cover Image

Today I Learned #1 - Testcontainers

###3 Use Case Man stelle sich folgendes Szenario vor: Ein Spring Boot Microservice, Unit Tests mit H2 In-Memory Datenbank, integrative Tests dann produktionsnah mit einer PostgreSQL DB. Kommt man nun auf die Idee ein Feature zu benutzen, das — nennen wir es mal Postgres-nativ ist — stößt man in den Unit Tests schnell an die Grenzen der H2-Datenbank. In diesem Fall bei Benutzung des JSONB-Datentyps. Dieser erlaubt es, ähnlich wie in einem Document Storage, JSON-Objekte in einer Spalte zu persistieren....

November 15, 2019 · 2 min · marcel
Cover Image

Architektur einer Golang API

Long time no hear. Heute melde ich mich mit einem Thema zurück, dass mir immer mal wieder Kopfschmerzen bereitet. Kurzzeitgedächtnis sei dank. Kurzzeit-was? Aber genau dafür dient mir ja dieser Blog: als Dev Journal. Also, heute geht es um Go. Genauer gesagt, um das kleine 1x1 der Architektur einer API, bzw. eines kleinen Services, der eine API darstellen soll. Der Use Case Das ist relativ simpel: ein Proxy, der mit der Todoist-API telefoniert und mir meine Projekte, Tasks, Dues etc....

July 2, 2019 · 4 min · marcel
Cover Image

Go Container minimalisieren

Was ich an Go so charmant finde? Man kann kleine, wirklich kleine Mircoservices bauen ohne einen Overhead zu erzeugen, wie im Java/Spring Kontext. Daher wäre es natürlich schon, solch einen wirklich kleinen Microservice auch in Container-Form klein zu halten. Kleines Deployment und so. Daher möche ich es natürlich vermeiden, ein komplettes Betriebssystem inklusive der Go Lib zu laden. Als erstes sollte man die Go-Anwendung ohne statische Links zu den Go Libs kompilieren....

April 21, 2019 · 2 min · marcel