Flow Design in der Praxis

 
Agile Day - 22. Mai
 
14:30
 
Softwerkskammer
Raum Schwarzwald
 
Basic

Die klassische objektorientierte Programmierung hat den Anspruch, Programme einfacher, verständlicher und wiederverwendbar zu machen. Dies wurde aber nur teilweise erfüllt. Zunächst scheint zwar OOP mit Hilfe von Vererbung und Polymorphie eine große Flexibilität mit sich zu bringen. Diese Flexibiltät steht aber oftmals im Widerspruch zu einem einfach verständlichen Programm. So gibt es heute unzählige Bücher mit Design Patterns, welche uns lediglich Antworten auf Probleme geben, die wir ohne OOP garnicht hätten.

Neue Regeln und Initiativen wie die Clean Code Developers versuchen die Programme wieder lesbarer zu machen. Wie schwierig das jedoch in der Praxis aussieht, zeigt allein das Liskov-Substitution-Principle, weswegen bereits einige Softwareentwickler dazu raten, möglichst ganz auf Vererbung zu verzichten.

Flow Design stellt dagegen alles auf den Kopf. Im Gegensatz zu immer abstrakteren Regeln und verkopften undurchsichtigen Strukturen werden hier die Prozesse wieder in den Vordergrund gestellt. Der Fokus liegt auf dem Datenfluss, also wie die Daten durch das Programm fließen. Damit ist es viel verständlicher, was das Programm in welcher Reihenfolge tun soll. Auch die Wiederverwendung von Code ist ohne Seiteneffekte einfach umsetzbar. Zudem funktioniert das ganze ohne schwergewichtige Frameworks, umständliche Design Patterns oder komplizierte Regeln.

Der Vortrag zeigt warum klassisches OOP innerhalb kürzester Zeit zu unwartbaren Code führen kann und was Flow Design hier anders macht. Nach einem anschaulichen Praxisbeispiel schließt der Vortrag mit einer offenen Diskussions- und Fragerunde.

Robin Danzinger

Robin Danzinger ist seit 2008 als Softwareentwickler und Berater für unterschiedliche Unternehmen tätig. Zunächst über das Steinbeis Transferzentrum IDA an der Hochschule Karlsruhe angestellt, hat er sich 2012 als Freiberufler selbständig gemacht. Seine Schwerpunkte liegen bei Java, JavaScript, Testgetriebener Entwicklung und Clean Code.