Speaker

Stefan Lieser

Stefan Lieser

CCD Akademie GmbH

Wachtberg, Germany

Actions

Stefan Lieser ist Experte für Clean Code und Flow Design. Er hat Ende 2008 die Clean Code Developer Initiative mitbegründet und arbeitet als Trainer und Berater zu den Themen Clean Code Developer, Entwurf mit Flow Design sowie Softwarearchitektur. In seinem Buch „Mit Flow Design zu Clean Code“ beschreibt er einen Softwareentwicklungsprozess, bei dem das systematische Zerlegen der Anforderungen sowie der Entwurf im Vordergrund stehen. Er ist Geschäftsführer der CCD Akademie GmbH.

CCD Initiative - https://clean-code-developer.de
Flow Design - https://flow-design.info
CCD Akademie GmbH - https://ccd-akademie.de

Area of Expertise

  • Information & Communications Technology

Topics

  • Clean Code
  • Clean Architecture
  • Flow Design

Mit Flow Design zu Clean Code

Die Teilnehmer lernen in dieser DevSession, wie mit Hilfe von Flow Design Anforderungen in Code transformiert werden können. Teams wie einzelne Entwickler werden mit Flow Design in die Lage versetzt, auf klar strukturierte Weise mit Anforderungen umzugehen und vor der Kodierung einen Entwurf der Lösung zu erstellen. Flow Design schließt damit die Lücke, die durch Scrum u.ä. Prozesse nicht gefüllt wird: was tun, wenn wir eine Karte in die „In Bearbeitung“ Spalte bewegt haben?
Die DevSession ist sehr praxisorientiert. Teilnehmer werden aktiv in Übungen einbezogen. Es ist daher erforderlich, Schreibzeug sowie einen Rechner mit installierter Entwicklungsumgebung (z.B. JetBrains Rider, Visual Studio, o.ä.) mitzubringen.

Mit Flow Design flüssig zu Clean Code

Viele Teams arbeiten ohne einen klar definierten Softwareentwicklungsprozess. Erkennbar wird dies bspw. daran, dass jeder Entwickler als Einzelkämpfer an „seinem Modul“ arbeitet. Eine arbeitsteilige Zusammenarbeit mehrerer Entwickler an einem Feature der Anwendung ist nicht vorstellbar. Gemeinsam definierte Standards fehlen. Die sogenannte "Definition of Done“ ist nicht vorhanden oder entfaltet keine Wirkung.
In der Session zeigt Stefan Lieser an Beispielen, welche wesentlichen Arbeitsschritte zwischen Anforderungen und Code liegen müssen. Er verwendet dazu Flow Design als methodisches Vorgehen und Entwurfssprache. Teams werden mit Flow Design in kurzer Zeit in die Lage versetzt, zu einer flüssigen Zusammenarbeit zu gelangen. Dadurch werden die Clean Code Developer Werte Korrektheit und Wandelbarkeit in besonderer Weise gefördert. Die Teilnehmer erhalten einen Überblick darüber, welche Elemente ein Softwareentwicklungsprozess enthalten muss und wie die einzelnen Schritte konkret ausgestaltet werden können.

IODA Architektur - Viel zu lernen du noch hast

Die bekannten Architekturmodelle Clean Architecture, Onion Architecture und auch die hexagonale Architektur (Ports and Adapters) basieren alle auf dem selben Prinzip: Umkehr der Abhängigkeitsrichtung durch Einführung von Interfaces. Damit die Domänenlogik nicht direkt von der Datenbanklogik und anderer Infrastruktur abhängig ist, wird ein Interface dazwischen gestellt. Diese Anwendung des Dependency Inversion Principles (DIP) ist so allgegenwärtig, dass wir uns an die damit verbundenen Umstände wie Tests mit Attrappen gewöhnt haben.
Mit der Integration Operation Data API Architecture, kurz IODA Architecture, gibt es eine Alternative: durch das Herauslösen der Integration als eigene Verantwortlichkeit entsteht ein einfacheres Architekturmodell. In seinem Vortrag erläutert Stefan Lieser die Prinzipien und Hintergründe. Ferner stellt er die Architekturmodelle anhand von Beispielen gegenüber und zeigt, wie gut die IODA Architektur sich auf Korrektheit und Wandelbarkeit von Software auswirkt.

Automatisiertes Testen von Legacy Code

Eine große Herausforderung bei Bestandscode sind die fehlenden Tests. Bevor man sich an Refactorings traut, müssen diese jedoch vorhanden sein. Auch bei der Ergänzung von Features beschleunigen Tests die Entwicklung, weil nicht ständig die Frage im Raum steht, ob durch die Ergänzung an anderer Stelle etwas kaputt gegangen ist.
In dieser Session zeigt Stefan Lieser einige Verfahren, mit denen an jeden Bestandscode Tests ergänzt werden können. Das mag nicht immer leicht sein, aber es ist möglich und notwendig. In der Regel wird man dabei Integrationstests ergänzen, weil der Code noch nicht die Struktur hat, um kleinere Einheiten isoliert zu testen. Doch wie stellt man nun Ressourcen wie Datenbanken etc. bereit? Darauf gibt der Vortrag Antworten anhand zahlreicher Beispiele.

Mit Flow Design zu Clean Code

Viele Teams arbeiten ohne einen klar definierten Softwareentwicklungsprozess. Erkennbar wird dies bspw. daran, dass jeder Entwickler als Einzelkämpfer an „seinem Modul“ arbeitet. Eine arbeitsteilige Zusammenarbeit mehrerer Entwicklerinnen an einem Feature der Anwendung ist nicht vorstellbar. Gemeinsam definierte Standards fehlen. Die sogenannte "Definition of Done“ ist nicht vorhanden oder entfaltet keine Wirkung.
In seinem Vortrag zeigt Stefan Lieser an Beispielen, welche wesentlichen Arbeitsschritte zwischen Anforderungen und Code liegen müssen. Als Autor des Buchs "Mit Flow Design zu Clean code" verwendet er hierzu Flow Design als methodisches Vorgehen und Entwurfssprache. Teams werden mit Flow Design in kurzer Zeit in die Lage versetzt, zu einer flüssigen Zusammenarbeit zu gelangen. Dadurch werden die Clean Code Developer Werte Korrektheit und Wandelbarkeit in besonderer Weise gefördert. Die Teilnehmer erhalten einen Überblick darüber, welche Elemente ein Softwareentwicklungsprozess enthalten muss und wie die einzelnen Schritte konkret ausgestaltet werden können.

Vom DIP zum IOSP

Das Dependency Inversion Principle (DIP) ist seit vielen Jahren eines der fundamentalen Prinzipien der Softwareentwicklung. Es ist als „D“ in den SOLID Prinzipien enthalten und richtet den Blick auf die Umkehr der Abhängigkeitsrichtung. Neben seiner Relevanz für das automatisierte Testen basieren beinahe alle Architekturmodelle auf dem DIP. Mit dem Integration Operation Segregation Principle (IOSP) haben Westphal und Lieser jedoch eine Weiterentwicklung ins Spiel gebracht. Statt mit Abhängigkeitsketten zu arbeiten werden Abhängigkeiten als eigenständige Verantwortlichkeit aufgefasst. Dadurch kann der Umfang von Interfaces und Dependency Inversion deutlich reduziert werden. Dies wirkt sich äußerst positiv auf die Werte Korrektheit und Wandelbarkeit aus. In seinem Vortrag beleuchtet Stefan Lieser den status quo und gibt einen Einblick in die Möglichkeiten, die das IOSP eröffnet.

Stefan Lieser

CCD Akademie GmbH

Wachtberg, Germany

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top