FunicularSwitch - 'Railway Oriented' Programmierung (in C#)

Wer kennt das nicht: Beim Programmieren sind wir immer mindestens „zweigleisig“ unterwegs. Da ist der „Happy Path“, unser eigentlicher Use Case, den wir mit dem aktuellen Stück Code gerade verwirklichen. Das ist der Pfad, wenn alles passt. Wenn.

· 1 Min Lesezeit · Alexander Wiedemann
Bild eines Rangierbahnhofs: Stellwerk mit vielen verschiedenen Zuggleisen
By Arne Hückelheim - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=23003609

Der Happy Path ist der Pfad, der eingeschlagen wird, wenn die Eingaben passen, die Infrastruktur mitspielt und alle Vorbedingungen im System so sind, wie wir erwarten. Das „Wenn“ im Vorsatz macht jedoch klar, dass es leider nahezu immer eine dunkle Seite gibt: Das sind die Fehlerpfade, auf die man immer dann gerät, wenn mindestens eine der Annahmen nicht erfüllt ist.

„Railway Oriented Programming“ ist ein Ansatz aus der funktionalen Programmierung, um die dunkle Seite in den Griff zu bekommen.

Unter der Federführung von Alexander Wiedemann haben wir eine Bibliothek erstellt, um diesen Ansatz im objektorientierten C# zu ermöglichen.

Der gesamte Code ist auf GitHub erhältlich. Aus Erfahrung können wir berichten, dass dieser Ansatz sehr ansteckend ist. Alle, die ihn verstanden haben, wollen ihn nie wieder hergeben und verwenden ihn ununterbrochen im Code.

Die Dokumentation funktioniert übrigens wunderbar mit dotnet try.

Pull Requests sind herzlich willkommen. Viel Spaß!