#####General
- Are all files added that are needed to build the code?
- Does the change comply to project conventions (naming, repo structure, license, documentation, etc.)?
#####Tests
- Is the code tested?
- Are the tests showing the intention how to use the code?
- Is the expected behavior clear?
- Are there gaps that also need testing?
#####Functions and Methods
- Is the name reflecting the behavior / expected result?
- Are parameters validated, if any?
- Do parameters make sense? Or is there a way to get rid of them?
- Does the return value make sense?
- Is global state changed? Are pure/safe/trusted functions declared as such?
- Can the function / method take the parameter by reference? Is the parameter mutated?
#####Objects
- Are referenced ressources cleaned up?
- Where and when are
nullreferences possible? Are those circumstances evaluated and / or tested? - Can the ressource be allocated on the stack?
- Can the livetime and and scope of the ressource be further restricted?
#####Best Practices