I’ve been struggling with finishing the next chapter of my "Building a System in Clojure" book. I tried to explain and draw the client-side architecture, but instead I’ve been procrastinating 1 around the conceptual drawings for days and now I realize why. The current architecture of the BirdWatch web client just plain sucks.
Which makes me think that procrastination is quite possibly more useful than its grim reputation suggests. Sure, I could have just forced myself to draw the current architecture while oppressing critical thought. The real message, though, was that I had a more than valid reason not to be excited. Anyway, I digress. Yesterday, I finally tried to draw it and the task made me feel uneasy in my stomach. Let’s just say that unsightly hairball had to go.
So instead, I grabbed a pencil and carefully drew the blueprint 2 for the architecture I desire. That’s done; it looks well groomed to me, and I’m excited about the refactoring ahead.
If you are a reader of the book, you can download the current version, see what I mean when I say it’s gruesome and compare that with the redesign when it’s finished. Consider that a feature of becoming a reader early on in the writing process.
That’s it; I’m back to a fun coding session. Thanks for reading.
Happy 2015, Matthias
PS - you can start reading the book right away: