Improvement means deterioration.
- Prototype before polishing. Get it working before optimizing it.
- Separate policy from mechanism, separate interfaces from engines.
- Write simple modular parts connected by clean interfaces.
- Design programs to be connected to other programs.
- Write programs to write programs when you can.
- Design for the future, because it will be here sooner than you think.
- In interface design, always do the least surprising thing.
- When a program has nothing surprising to say, it should say nothing.
- When a program must fail, it should fail noisily and as soon as possible.
- Write big programs only when it is clear by demonstration that nothing else will do.
- Consider how you would solve your immediate problem without adding anything new.