OO Rules of Thumb
by Volker Weber
The following list is essentially the table of contents for my book Enough Rope to Shoot Yourself in the Foot (McGraw-Hill, 1995). The book was written with C/C++ in mind, but most of the rules apply to programming in general and OO programming in other languages (such as Java) in particular. You should go get the book if you want to see why the rules are what they are and to see detailed explanations for each rule. Bear in mind, though, that all of these are just rules of thumb. There are always exceptions.
1 The essentials of programming: No surprises, minimize coupling, and maximize cohesion
2 Stamp out the demons of complexity (Part 1)
2.1 Don't solve problems that don't exist
2.2 Solve the specific problem, not the general case
3 A user interface should not look like a computer program (the transparency principle)
4 Don't confuse ease of learning with ease of use
5 Productivity can be measured in the number of keystrokes