# Book club - Domain Modeling Made Functional

**URL:** <https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374>\
**Category:** Journals & Book Clubs\
**Tags:** book-domain-modeling-made-functional, book-club\
**Created:** [14 August 2021 16:48 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374 "2021-08-14T16:48:59Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![mafinar](https://forum.devtalk.com/user_avatar/forum.devtalk.com/mafinar/32/723_2.png) [@mafinar](https://forum.devtalk.com/u/mafinar)\
**Post date:** [14 August 2021 16:48 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374/1 "2021-08-14T16:48:59Z")

</div>

> 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)](https://pragprog.com/titles/swdddf/domain-modeling-made-functional/)

 ![swdddf](https://forum.devtalk.com/uploads/default/original/2X/b/b32a65773c6fb5b270e7bcdd973e0736b44bf241.jpeg)

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!

---

<div class="post-metadata">

**Author:** ![Erica](https://forum.devtalk.com/letter_avatar_proxy/v4/letter/e/9dc877/32.png) [@Erica](https://forum.devtalk.com/u/Erica)\
**Post date:** [16 August 2021 14:18 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374/3 "2021-08-16T14:18:13Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![AstonJ](https://forum.devtalk.com/user_avatar/forum.devtalk.com/astonj/32/7_2.png) [@AstonJ](https://forum.devtalk.com/u/AstonJ)\
**Post date:** [18 November 2022 20:34 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374/4 "2022-11-18T20:34:45Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mafinar](https://forum.devtalk.com/user_avatar/forum.devtalk.com/mafinar/32/723_2.png) [@mafinar](https://forum.devtalk.com/u/mafinar)\
**Post date:** [19 November 2022 01:07 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374/5 "2022-11-19T01:07:30Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![mafinar](https://forum.devtalk.com/user_avatar/forum.devtalk.com/mafinar/32/723_2.png) [@mafinar](https://forum.devtalk.com/u/mafinar)\
**Post date:** [19 November 2022 01:09 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374/6 "2022-11-19T01:09:34Z")

</div>

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 😉

---

<div class="post-metadata">

**Author:** ![andrea](https://forum.devtalk.com/user_avatar/forum.devtalk.com/andrea/32/6677_2.png) [@andrea](https://forum.devtalk.com/u/andrea)\
**Post date:** [19 November 2022 23:06 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374/7 "2022-11-19T23:06:13Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![adamaiken89](https://forum.devtalk.com/user_avatar/forum.devtalk.com/adamaiken89/32/2661_2.png) [@adamaiken89](https://forum.devtalk.com/u/adamaiken89)\
**Post date:** [20 November 2022 02:26 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374/8 "2022-11-20T02:26:26Z")

</div>

Would it be an Elixir version?

---

<div class="post-metadata">

**Author:** ![mafinar](https://forum.devtalk.com/user_avatar/forum.devtalk.com/mafinar/32/723_2.png) [@mafinar](https://forum.devtalk.com/u/mafinar)\
**Post date:** [20 November 2022 05:16 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374/9 "2022-11-20T05:16:55Z")

</div>

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 🙂

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

---

<div class="post-metadata">

**Author:** ![gflashner](https://forum.devtalk.com/user_avatar/forum.devtalk.com/gflashner/32/6665_2.png) [@gflashner](https://forum.devtalk.com/u/gflashner)\
**Post date:** [20 November 2022 09:33 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374/10 "2022-11-20T09:33:20Z")

</div>

Does the book require knowledge/experience in F#?

---

<div class="post-metadata">

**Author:** ![mafinar](https://forum.devtalk.com/user_avatar/forum.devtalk.com/mafinar/32/723_2.png) [@mafinar](https://forum.devtalk.com/u/mafinar)\
**Post date:** [20 November 2022 12:05 UTC](https://forum.devtalk.com/t/book-club-domain-modeling-made-functional/17374/11 "2022-11-20T12:05:15Z")

</div>

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.
