Railway Oriented Programming – Mit Exceptions im Gleis bleiben
Abstract
Thu 9:50 - 10:35 Uhr | 2023
Und dann war es endlich so weit. Wir durften unser Java 8 auspacken. Mit den Monaden Optional und Stream wurden uns damit mächtige Werkzeuge geschenkt. Plötzlich musste sich das Programmiermodell nicht mehr sklavisch an der von Neuman-Architektur orientieren. Stattdessen konnte nun Code verfasst werden, der Algorithmen in deklarativer Form realisierte. Herausgekommen ist dabei besser lesbarer und seiteneffektfreier Code. Daher werden Optional und Stream von den meisten Entwicklern heute wohl täglich benutzt. Warum hat man für die Fehlerbehandlung nicht den gleichen Weg eingeschlagen? Noch immer ist unser Code mit dem sehr technischen Exception-Handling verwoben. Kritische Stimmen bezeichnen dies als das letzte verbliebene Goto in der Sprache. Dabei haben wir uns doch auf die Fahnen geschrieben, mehr fachlichen Code zu schreiben. Geht das besser? In der funktionalen Programmierung gibt es hierfür Railway Oriented Programming. Vereinfacht gesagt wird hierbei der Kontrollfluss nicht verlassen, sondern der Fehlerzustand auf einem “Nebengleis” durch den Programmablauf geleitet. In diesem Talk wollen wir der Frage nachgehen, wie gut sich Railway Orientend Programming in Java anwenden lässt. Wir werden dabei auf die unterschiedlichen Möglichkeiten der Realisierbarkeit eingehen. Durch die Gegenüberstellung von Code-Beispielen sollte am Ende jeder in der Lage sein zu beurteilen, ob damit sauberer und besser wartbarer Code geschrieben werden kann.
Vortragsimpressionen
Matthias Koch ist seit mehr als 10 Jahren als Expert Software Developer bei der sidion GmbH tätig. Seit über 25 Jahren setzt er unterschiedlichste Kundenprojekte um – vor allem mit Java. Bei seinen Code- und Architekturreviews setzt er auf das Prinzip “Clean Code”. Spannend findet er funktionale Programmierung und den Einsatz von Kreativitätstechniken wie “Code Katas”. Ferner interessiert er sich für Secure Coding und Continuous Delivery. Als Dozent an der Hochschule für Technik in Stuttgart hat er ein starkes Interesse an praxisrelevanten Algorithmen.
Thomas Kloppe ist seit 2006 als Entwickler in der Java Welt unterwegs. In zahlreichen, sehr unterschiedlichen Projekten hat er sich über das Backend hinaus auch mit Frontend und Infrastruktur Themen befasst.
In den letzten Jahren ist er immer tiefer in die Welt der Microservices eingetaucht – nicht zuletzt aufgrund seiner aktuellen Projekte.
In seiner Rolle als Lead Entwickler kümmert er sich um Clean Code, modernes Software-Design und Architekturthemen.