I am slowly reading blog of J.B. Rainsberger. I found it years ago thanks to book JUnit Recipes, but somehow I lost it.
I have found very interesting article there - The Four Elements of Simple Design. I find it fitting very well into my experience with design.I claim that developing strong skills of detecting duplication, removing duplication, identifying naming problems, and fixing naming problems equates to learning everything ever written about object-oriented design.Yes, developing skills and wanting to fix a problem every time it is spotted.