Type-Driven Domain Design: Use the Types, Luke!
Typen in Programmiersprachen schützen uns davor, Fehler zu machen. Es hängt von der gewählten Sprache ab, wann und wie streng diese Typenüberprüfungen durchgeführt werden. Ein bekannter Code-Smell heißt „Primitive Obsession“. Er tritt auf, wenn man sich zu sehr auf eingebaute Datentypen wie Integer oder Strings verlässt.
Eric Evans zeigte uns vor fast zwanzig Jahren in seinem Buch „Domain-Driven Design: Tackling Complexity in the Heart of Software“, wie wir unsere Geschäftsregeln erfolgreich in Code einbetten können.
In diesem Vortrag werden wir sehen, wie wir Domänenlogik und Sicherheit in unsere Typen integrieren können, um Fehler und Schwachstellen durch Design zu vermeiden.
Vorkenntnisse
Grundkenntnisse der Programmierung in handelsüblichen Sprachen sollten genügen um dem Vortrag folgen zu können. Idealerweise ist noch etwas Wissen bezüglich der Entwicklung von Webanwendungen und der OWASP Top 10 dabei. Sämtliche Codebeispiele werden anfängerfreundlich erklärt, auch die in den eher unbekannteren Sprachen wie F# und Haskell.
Lernziele
Die Teilnehmenden lernen, wie sie das Typsystem ihrer Programmiersprachen nutzen können, um Fehler in der Geschäftslogik und Sicherheitsschwachstellen von Haus aus zu verhindern. Das geschickte Einsetzen von eigenen Datentypen und Klassen, sowie die Wahl der passenden Architektur, soll zeigen, wie man Security in das Design einer Anwendung fließen lassen kann, ganz ohne dem Einbinden komplexer Abhängigkeiten und Frameworks.