This page contains links to the slides, video and code from my talk “Domain Driven Design with the F# Type System”.

Here’s the blurb for the talk:

Statically typed functional programming languages like F# encourage a very different way of thinking about types. The type system is your friend, not an annoyance, and can be used in many ways that might not be familiar to OO programmers.

Types can be used to represent the domain in a fine-grained, self documenting way. And in many cases, types can even be used to encode business rules so that you literally cannot create incorrect code. You can then use the static type checking almost as an instant unit test – making sure that your code is correct at compile time.

In this talk, we’ll look at some of the ways you can use types as part of a domain driven design process, with some simple real world examples in F#. No jargon, no maths, and no prior F# experience necessary.

I am also planning to upload some posts on these topics soon. Meanwhile, please see the Designing with Types series, which covers similar ground.

You should also read “why type-first development matters” by Tomas Petricek and a great series of articles by Lev Gorodinski.

Slides from F#unctional Londoners Meetup, March 13, 2014

Domain Driven Design with the F# type System -- F#unctional Londoners 2014 from my Slideshare

The slides are also available from the links below:

  • NDC London 2013 version (Slideshare), (Github)
  • F#unctional Londoners 2014 version (Speakerdeck) with added sections on why OO, not FP is scary, and designing with states and transitions.

Video from F#unctional Londoners Meetup, March 13, 2014

(Click image to view video)

Video from F#unctional Londoners Meetup, March 13, 2014

Getting the code

If you want to follow along with the code, then:


blog comments powered by Disqus