I recently picked up an old classic by Eric Evans called Domain-Driven Design. I'm moving pretty slowly through the book doing my best to let it soak in. My process so far has been to highlight points of interest and take some notes in the margins. Then, at the end of the chapter, I try to summarize what I've learned. I really don't want to get through this book and only have vague ideas of what was talked about.
In addition, while working through the book I started a little side project. I'm recreating the game Sidereal Confluence. It has a ridiculous name, but it really is a fascinating game.
I enjoy just about any game that involves a heavy element of social interaction. If that interaction involves striking deals I'm even more interested! Well, this one has up to nine players sitting in a circle bartering and trading, wheeling and dealing. The premise is that players buy "converters" and use their resources on those converters to generate more resources. With their ever expanding piles of resources they'll be able to begin converting into victory points. The player with the most victory points wins. If you're still curious about how the game works, check out this 4 minute video.
I chose this as my side project for two major reasons. One, I really enjoy board games, and I love learning how they tick. Two, board games provide a really nice set of clear "business rules" perfect for implementing using Domain-Driven Design.
I'm currently focusing strictly on implementing the game in Go. That is, no framework, no database interaction, nothing. Eventually, I should have a library that's guaranteed to be loosely coupled with whatever the rest of the solution looks like. I'll add another post here later once I've gotten through that part. Wish me luck!