Robert C. Martin
Coding best practices with examples in Java.
The name of a variable, function, or class, should answer all the big questions. It should tell you why it exists, what it does, and how it is used. If a name requires a comment, then the name does not reveal its intent. (Martin 2009, 18)
Inaccurate comments are far worse than no comments at all. (Martin 2009, 54)
If you have tests, you do not fear making changes to the code. Without tests every change is a possible bug. (Martin 2009, 124)
Duplication is the primary enemy of a well-designed system. (Martin 2009, 173)
Well-defined modules have very small interfaces that allow you to do a lot with a little. (Martin 2009, 291)
A slow test is a test that won’t get run. (Marting 2009, 314)