Design is one of my favourite parts of programming, but I constantly run into the problem of how to tell whether my design is any good. Before we go any further, I think we should define what makes a good design is. My definition is that if you can change it in the future without cursing your past self, it must have been good design. You may have noticed that using.. Read More