- Blocks inside conditionals and loops should preferably be one line long and have descriptive names to improve readability and self-documentation
- Limit the number of arguments to functions (0 is best; flags are terrible)
- Comments are crutches for unclear code
- Only the code is guaranteed to be true - code should be its own documentation
- Replace comments with a function name that says the same thing
- No need for comments in non-public methods/classes - you can just look at the code itself
- That said, comments can be useful for informative explanation of intent, amplification of important, API documentation, etc.
- Write tests to learn API’s (bonus: documentation & feature checking)