Es ist Zeit für das wöchentliche Tagebuch. Letzte Woche habe ich 7 Stunden in meiner Freizeit damit verbracht, meine persönliche Website zu programmieren.
Integration von Huma & OpenAPI 🌐
Ich habe das Framework Huma Rest in mein Projekt integriert. Die Idee war schon lange da, aber ich konnte mich irgendwie nicht dazu entschließen, mit der Umsetzung zu beginnen. Letzte Woche habe ich den Wechsel aber schließlich vollzogen. Ich habe versucht, ein LLM zu nutzen, um die Arbeit zu beschleunigen, aber da Huma Rest keine besonders beliebte Bibliothek ist, macht das LLM oft Probleme. Besonders in der Anfangsphase, als es noch keine Beispiele im Code meines Projekts gab, war das deutlich spürbar.
Das Ergebnis ist eine OpenAPI-Dokumentation für meinen Server. Diese Dokumentation wird automatisch in den Frontend-Code importiert. Früher gab es diesen Luxus nicht, und ich musste alle Funktionen doppelt selbst schreiben: erst in Go und dann in TypeScript. Jetzt reicht es, sie in Go zu definieren, und der Compiler erkennt die Fehler in TypeScript.
Ich habe die Serverleistung nach dem Wechsel auf Huma Rest überprüft und folgendes Ergebnis erhalten:
- Go Standard Library HTTP: 300 Anfragen pro Sekunde
- Mit Huma Rest: 260 Anfragen pro Sekunde
Die Performance ist gesunken, aber nicht kritisch: wir verlieren etwa 13 % 📉
Fazit
Am Ende stellt sich mir folgende Frage selbst: Wusste ich eigentlich, dass das geht?? 🙄 Von Anfang an Huma Rest einbinden und mich nicht mit dem manuellen Schreiben jeder neuen API abplagen? Ja, aber es ist nicht alles so einfach. Neben dem Performance-Verlust gibt es noch zwei weitere Nachteile:
- Der Framework-Code ändert sich regelmäßig, während die Go-Standardbibliothek fast ewig stabil bleibt.
- Ich habe die letzte Woche mit Refactoring verbracht. Diese Zeit hätte ich für neue Features nutzen können.
Über die Nachteile werde ich natürlich nicht trauern. Das Projekt wird weiterhin Huma Rest nutzen, da die Reduzierung der manuellen Arbeit ein großer Vorteil ist 💹