(these will be in reverse order...)
#7 - Excessive Coupling
We start out with a simple one.
Coupling is obviously a necessary evil. The Console class, for example, wouldn't be able to send text through Win32 without being coupled to Win32.
Given that, less coupling is nearly always better that more coupling. A few cases that I see:
- Using switch statements rather than polymorphism or interfaces.
- Classes that do too much, rather than being focused on a single goal.
What do you think? Do you have more examples?