One aspect of strong design is that separation is created between the various concerns of the system. This adds clarity, promotes re-use, improves cohesion, and in general adds value to the work. It can be difficult to know, however, if one has separated things sufficiently, or perhaps has overdone it. This is one area where … Continue reading "TDD and the Separation of Concerns"