Wie vom Problem zu lauffähiger Software kommen? OO-Patterns? Model-Driven Development? Irgendwie kommt dabei oft Gewurstel heraus. Beide Disziplinen bieten zwar Lösungen für die Umsetzung von Modellen in Code, es fehlt aber eine umfassende Methodik für das Design der Modelle selbst. Hier ergänzen sich Domain-Driven Design (DDD) und der Ansatz der design recipes bzw. Konstruktionsanleitungen aus der funktionalen Programmierung ganz hervorragend.
DDD propagiert eine saubere Trennung zwischen Domänenlogik und technischem Programmcode. Des weiteren formuliert DDD wichtige Eigenschaften, welche die Domänenlogik haben sollte. Aber wie
kann man auf systematische Weise zu einem tragfähigen Modell kommen? Welche Werkzeuge und Vorgehensweisen gibt es, wenn man sich nicht allein auf die Genialität seines Architekten verlassen will?
Hier setzen die konstruktiven design recipes aus der funktionalen Programmierung an: Ein häufig verwendetes und mächtiges Muster ist das Kombinatormodell, bei dem die Fachlichkeit in kleinste Bestandteile zerlegt wird, die mit Hilfe eines theoretisch fundierten und praktisch erprobten Verfahrens zu größeren Einheiten kombiniert werden, was zu einem Modell mit deklarativer, modularer und aggregierter Struktur führt.
Der Vortrag zeigt, wie sich DDD und funktionale Programmierung ergänzen und welchen Mehrwert beide in die Entwicklung einbringen.
Nicole Rauch ist freiberufliche Softwareentwicklerin und Softwareentwicklungscoach mit umfangreichem Hintergrund in Compilerbau und formalen Verifikationsmethoden. Zu ihren Schwerpunkten gehören Specification by Example und Domain-Driven Design sowie die Sanierung von Legacy Code Applikationen. Unabhängig davon ist die funktionale Programmierung ihre heimliche Liebe. Neben ihrer Entwicklertätigkeit wirkte sie an der Ausrichtung mehrerer selbstorganisierter Konferenzen und an der Initiierung der Softwerkskammer, einer deutschsprachigen User Community zum Thema Software Craftsmanship, sowie ihrer Karlsruher Regionalgruppe mit. In ihrer Freizeit ist sie an der Entwicklung der Softwerkskammer-Webplattform, einem node.js Projekt, beteiligt.
Michael Sperber ist CTO der Active Group GmbH. Er ist international anerkannter Experte für funktionale Programmierung und wendet sie seit über 20 Jahren in Forschung, Lehre und industrieller Entwicklung an. Außerdem hat er zahlreiche Fachartikel und einige Bücher zum Thema verfasst. Michael Sperber ist Mitbegründer des Blogs funktionale-programmierung.de.