all repos — notes @ caef450b0cab035d0c38768cc10e5721c614786a

Unnamed repository; edit this file 'description' to name the repository.

Bericht Middleware
kate kate@breadlabs.de
Tue, 24 Mar 2026 13:52:35 +0100
commit

caef450b0cab035d0c38768cc10e5721c614786a

parent

1857e1f8b3f5ac59f004c81d211f6505b7a43ecb

1 files changed, 7 insertions(+), 2 deletions(-)

jump to
M uni/Praktikum/Praktikumsbericht.typuni/Praktikum/Praktikumsbericht.typ

@@ -110,6 +110,13 @@ Als ersten Schritt bei einer solchen Aufgabe hat es sich angeboten das UI mit einem Tool wie Figma zu designen. Da ich allerdings in der Vergangenheit schlechte Erfahrungen mit Figma gemacht habe und grundsätzlich Freie und Offene Software bevorzuge habe ich mich für die Alternative Penpot entschieden welches ähnliche Funktionalitäten zum erstellen von Mockups hat.

Nachdem das Frontend geplant war, wurden die geplanten Aspekte nach und nach mit Next.js, einem React Framework umgesetzt. +== Middleware Entwicklung +Im Rahmen des neu geschriebenen Frontends für die Webapplikation, sollte eine Art Benchmark-System erstellt werden welches Teilergebnisse der Applikation anzeigt. Dabei war es wichtig das die vollen Ergebnis-Daten nicht an das Frontend gesendet werden sondern nur die Teilergebnisse. + +Um das umzusetzen habe ich ein weiteres Backend als eine Art Middleware zwischen dem vollen Backend und dem Frontend der Applikation geschrieben um die vollen Ergebnisse abzufangen, zu den Teilergebnissen zu verarbeiten und nur diese an das Frontend zu senden. + +Dieses Backend wurde ebenfalls in Go geschrieben da es sich auch super für API-Entwicklung wie diese anbietet. Diese sind besonders leicht umzusetzen dank Golangs sehr ausführlichen Standard-Bibliothek, welche sehr reife und direkt nutzbare Werkzeuge zur Umsetzung von APIs bietet ohne auf externen Paketen aufbauen zu müssen wie es in den meisten Programmiersprachen der Fall ist (z.B. Python und ein Paket wie Flask). + \ == Datenaufbereitung Im Rahmen eines Prozesses zur Verarbeitung von Kundendaten mussten diese aus dem Ursprungsformat welches uns zur Verfügung gestellt wurde in ein von unseren Programmen nutzbares Format konvertiert werden. Dabei handelte es sich nicht nur um eine simple Dateiformat Konvertierung da einige Daten ergänzt oder mit einer Anfrage an andere bereits bestehende Datensätze angepasst werden mussten.

@@ -119,8 +126,6 @@

Da ich bei diesem Praktikum oft mit der Deserialisierung von Daten aus meist JSON oder CSV zu tun hatte war das ein häufig vorkommendes Dilemma: Eine Umsetzung in Go ist etwas, was ich generell bevorzuge, aber kann sich manchmal als zu Umständlich herausstellen, da Go als statisch typisierte Sprache bei der Deserialisierung eine feste Zuweisung von Feld zu Typ erwartet. Bei Eingangsdaten wo sich die Felder-namen oder Typen dessen je nach Bedingung ändern, wird eine saubere Typisierung schnell sehr verbos oder unklar, da entweder jedes Ergebnis einzeln als Typ abgebildet werden muss oder mit der Hilfe von Interfaces die Typisierung generalisiert wird, was die Vorteile der statischen Typisierung zum großteil zu Nichte macht. \ -== Middleware Entwicklung - #pagebreak() = Fazit