Book club - Domain Modeling Made Functional

TL;DR I am reading “Domain Modeling Made Functional” and discussing and keeping a journal of what I learned from it, any co-readers welcome because the topic alone is so interesting that I will get 4 times the fun if we chat about things here! F# or not, this is amazingly well-written and useful!

Here is the link (PragProg)

Hello! I’m back. This is something I’ve been trying to do for awhile now. Domain Modeling Made Functional is one of the best books I have read on the topic. I read it when it got out but I did not know F# nor had I any interested in it, so I just read the concepts and translated whatever I felt I earned into Elixir or Python, or JS depending on what I was in the mood for on that day.

During my (along with a friend’s) stunt of #100DaysOfCodeIn100Languages (started as a joke, got serious, now back a joke) I encountered F# on day/language 13, and I enjoyed solving the problem with it (I had C# earlier that had similar effect but not a saga-breaking one like F# had), I recalled I have a book on it so decided to give it another read.

I picked the book up two weeks ago while travelling to Alberta, and ended up spending 3 of the 4 hours on aeroplane reading it, thoroughly impressed and enlightened! I felt like it would be more effective if done at a much slower pace, on different reference project, and discussing with friends! So here I am, having my third (second one didn’t fail, I will continue it soon) book club in this group.

The routine’s regular, I read a chapter or two, and talk about what I learned and how it would influence how I reason about a unit of code that does something. If you join me, that’d help me more! Eitherways, I’ll treat it as a set of side-notes or scribble which would help me when I refactor a deserving monolith or give my next talk on DDD (It already helped in my 2018 PyCon Canada session).

I will reset and restart from chapter 1 here, starting right now!

6 Likes

Corresponding tweet for this thread:

Share link for this tweet.

2 Likes

We’re excited to see these book clubs. Sending cheers from Prag!

5 Likes

How did you get on with this after Mafinar? Is it something that could translate easily to Elixir?

Ah I was searching for this thread. I ended up learning F# and loved it. So didn’t get to translate. Once I am done with the other book club on concurrent Elixir I’ll be back here treating it with Elixir.

2 Likes

As far as translation is concerned, maybe not 1:1 but a lot of ideas could be explained through Elixir in a more idiomatic way. This is what we shall figure out it seems :wink:

3 Likes

Heard a lot of good stuff about the book, I should probably add it to my reading list. :slight_smile:

1 Like

Would it be an Elixir version?

1 Like

Yes I always wondered if I could translate the book’s codes and concept to Elixir and make notes. A few concepts at the later half might be tricky but we’ll see :slight_smile:

This could also be an excuse to try out libs like Domo and Commanded.

2 Likes

Does the book require knowledge/experience in F#?

1 Like

No it does not in my opinion. When I read this book for the first time, I had no knowledge of F# and had taken most of the concept and applied those to Python. It wasn’t a perfect application on my part because my goal was preparing for a conference talk back then, but I certainly didn’t feel anything was missing due to my lack of F# knowledge

However, I did know TypeScript at the time and also Python type hints have concept like Union Types, and those helped a little.

2 Likes