Railway Oriented Programming mit Java

Railway Oriented Programming mit Java

Am vergangenen Freitag ist bei Heise Developer ein Fachartikel von mir erschienen. Es geht um das Thema Railway Oriented Programming in Java. So lautet auch der Titel meines Vortrags auf der diesjährigen JavaLand in Brühl.

Kurz gesagt geht es darum, wie man in Java auch ohne Exceptions programmieren kann. Es wird dafür eine Monade verwendet, die vergleichbar mit Optional aus Java 8 ist. Anstatt das Nicht-/Vorhandensein eines Wertes zu repräsentieren, wird im Falle des ROP allerdings das erfolgreiche oder fehlerhafte Ergebnis einer Berechnung dargestellt. Der daraus resultierende Code sieht deutlich anders aus, als man es von Lava gewohnt ist. Kein try/catch mehr und eine Fluent API für den Programmablauf.

Die Idee ist offensichtlich recht spannend, denn die heiße Diskussion in den Kommentaren fördert viele verschiedene Einstellungen anderer Entwickler zutage. Es ist aber auch sehr schwierig, bei Ansätzen der Softwareentwicklung den Geschmack aller Programmierer da draußen zu treffen. 😉

Falls du dich in deinen Projekten etwas intensiver mit der funktionalen Programmierung beschäftigen möchtest, schau dir meinen Artikel doch einmal als Einstieg in die Welt der Monaden an. Über Feedback würde ich mich natürlich auch freuen.


Arbeitest du in deinen Projekten bereits mit Konzepten der funktionalen Programmierung? Welche Ideen findest Du hilfreich und welche unsinnig?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax