This is the coding guide that I use for my Unity games. It describes syntactic, structural, and process rules for writing code. I formed many of these rules based on my experience to avoid a lot of pitfalls, and prevent spaghetti code.
Any rule can be ignored if and only if enforcing that rule would clearly result in worse code, and the surrounding logic doesn't need to be refactored.
These rules do not affect the control flow, or functionality of code. These only serve to make code more consistent and readable.
These rules describe how code should be created to support extendability, and easier debugging.
These rules describe how developers should contribute to the same code base throughout a project.