Principles:
- Maximize readability
- Code should be immediately readable by someone not familiar with that area. If you have to continuously refer to documentation, comments or dig into implementation to understand what's happening, the code isn't sufficiently self-descriptive and needs to be improved. When not possible, you must comment. Coding is a team sport, always write with other developers in mind
- Be aware of the context
- Use your judgement
There are some hard rules, but good style is context-sensitive.