Eines der wichtigsten und auch schwierigsten Prinzipien in Clean Code ist die konsequente Trennung von Logik und Komposition.

Vereinfacht gesagt: Kein "if" in der Komposition, keine Komposition wenn "if". Funktionale Programmiersprachen bieten hier elegante Lösungen. Diese Konzepte wurden im Laufe der letzten Jahre immer mehr in C# und in die Laufzeitumgebung integriert. Union Types haben es jetzt endlich nativ in C# 15 geschafft.

In diesem Code- und Demo-Intensiven Vortrag zeigt uns Aydin, wie wir diese Pattern in unseren Programmieralltag übernehmen können, um stabileren Code zu schreiben. Wir erhalten Einblick in Result-Types, Map, Bind und Match um ohne Exceptions und If-Bedingungen alle Fälle im Code abzubilden. Wir sehen, wie wir Union-Types erstellen und nie wieder „raten“ müssen, was das Ergebnis einer Operation ist. Jeder Union-Type bringt sein eigenes typsicheres Pattern-Matching mit. Wir lernen, wie wir mit Lambda-Ausdrücken strukturelle Wiederholungen vermeiden können und DRY auf einer neuen Ebene führen.

Auch wenn am Anfang das ungewohnt ist, insgesamt führen diese funktionalen Konzepte dazu, dass Klassen und Methoden eine deutliche Trennung zwischen Komposition und Logik erhalten. Dadurch wird das Testen sehr stark vereinfacht, der Code wird mehr KISS und die Domäne ist sichtbarer.