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.

Speaker

 

Michael Koppmann
Michael Koppmann ist ein Information Security Consultant bei SBA Research. Michaels Beratungstätigkeit konzentriert sich insbesondere auf die technischen Aspekte der Informationssicherheit. Seine Forschungsinteressen liegen auf den Gebieten der sicheren Softwareentwicklung, Datenschutz, als auch auf der funktionalen Programmierung und der Sicherheit mobiler Applikationen.

Gold-Sponsoren

CyberRes
securai
SignPath
WIBU Systems

heise-devSec-Newsletter

Sie möchten über die heise devSec
auf dem Laufenden gehalten werden?

 

Anmelden