Domain Modeling Made Functional
Tackle Software Complexity with Domain-Driven Design and F#
Even if you don’t work with F# or functional languages there are valuable lessons for any software developer. If you really want the code to be the documentation for your application, start here.