Just a quickie post to share an analogy I came up with the other day about projects/DLLs and code organization.
I had just created a new project in our .NET application, with only one file in it. Previously I created a couple of new classes and when I did, I added them to various projects where they didn’t really belong, so after doing that a few times I decided it was time I created a new project.
When asked about that project with only one file in it, I gave my above rationale, and then gave the following statement:
Think of it like buying a new bookshelf, right now we only have one book on it, but now we have a place to put our books.
We will likely never migrate all those items that belong in the project to be there. But from now on, as we take the book off the bookshelf, we now have a place that we can put that book when we put it up where it makes more sense, instead of putting our cookbook back between Homer’s Odyssey and Bill Willingham‘s Fables or Neil Gaiman‘s Sandman.