"The cleaner and nicer the program, the faster it's going to run. And if it doesn't, it'll be easy to make it fast."
Joshua Bloch
When the hierarchy is correct, anyone can successfully create a new subclass.
"The way you get programmer productivity is not by increasing the lines of code per programmer per day. That doesn’t work. The way you get programmer productivity is by eliminating lines of code you have to write.
The line of code that’s the fastest to write, that never breaks, that doesn’t need maintenance, is the line you never had to write."
"Someone will try to read your code in a few months' time to make some changes. We easily forget that extra user of the code, yet that user is actually the most important. Who cares if the computer takes a few more cycles to compile something? It does matter if it takes a programmer a week to make a change that would have taken only an hour if she had understood your code."