Decoupled by Default
Abstract
Thu 15:35 - 16:20 Uhr | 2025
Kopplung – das Maß der Abhängigkeiten zwischen Modulen – ist ein zentrales Konzept der Softwarearchitektur. Die herkömmliche Sicht auf Kopplung ist die, dass hohe Kopplung dann entsteht, wenn man nicht aufpasst beim Programmieren: wenn man _nicht_ gegen explizite Schnittstellen programmiert, wenn man _nicht_ die Aggregate richtig wählt, wenn man _nicht_ Dependency Injection verwendet … Kopplung, so scheint es, ist das Resultat von Unterlassung. Die Kopplung wieder zu senken, das erfordert dann ausdrückliche Gegenmaßnahmen.
Dieser Vortrag zeigt eine alternative Sichtweise: Viele Arten von Kopplung entstehen aufgrund von Unzulänglichkeiten des Programmierparadigmas. In funktionalen Sprachen treten solche Arten von Kopplung teilweise gar nicht auf. In jedem Fall ist die Werkseinstellung dieser Sprachen dergestalt, dass Kopplung vermieden wird. Wir illustrieren das im Vortrag insbesondere mit Blick auf den Umgang mit geteiltem Zustand und Plattformabhängigkeiten.
Zu guter Letzt zeigen wir, dass auch funktionale Programmierer:innen nicht automatisch vor allen Arten unnötiger Kopplung sicher sind. Wir stellen deshalb fortgeschrittene Techniken der funktionalen Softwarearchitektur vor, die an dieser Stelle Abhilfe schaffen können.
Markus ist Softwarearchitekt bei der Active Group GmbH in Tübingen.
Wir entwickeln Software ausschließlich mit funktionaler
Softwarearchitektur. Markus interessiert sich neben
Programmiersprachen und Compilerbau auch für GUI-Design,
Nebenläufigkeit und Formale Methoden.