Problem
Der nächste Node.js Server muss her – sei es wegen eines neuen Projekts oder weil etwas in einem bestehenden System umgebaut werden soll. Es stellt sich also wieder einmal die Frage nach der Technologie-Auswahl. Ihr wollt:
- am liebsten so wenig Code wie möglich schreiben?
- TypeScript benutzen?
- auf funktionale Programmierparadigmen setzen?
Lösung
Dann ist das Framework namens Marble etwas für euch! Dieses basiert auf RxJS und verfolgt somit die Idee, dass alles(!) ein Stream ist. Marble ist eine gute Alternative zu Express, Koa, Hapi und co., wenn man RxJS oder Reactive Programming bereits aus anderen Programmiersprachen kennt. Die bei RxJS im Mittelpunkt stehende Observable-Monade ermöglicht es, dem Railway Oriented Programming Ansatz zu folgen. Wir behandeln eine Anfrage an einen Server als Input-Stream, welcher in einen Output-Stream umgewandelt wird. Das passiert anhand von Effects und sieht ungefähr so aus:
Beispiel
Weiterführende Aspekte
- RxJS – Intro: https://rxjs.dev/guide/overview
- Railway Oriented Programming – Intro: https://medium.com/geekculture/better-architecture-with-railway-oriented-programming-ad4288a273ce
---
Autoren: Robert Gruner / Software Engineer / Standort Leipzig und Daniel Straub / Software Architect / Business Division Media
Toilet Paper #160 als Download: Ein Server ist auch nur ein Stream (PDF)
Lust, das nächste ToiletPaper zu schreiben? Jetzt bei jambit bewerben!