Read each line of code line by line. Never assume, always check.
- When in doubt create a dissuscion to check.
- Learn the list of code smells by heart.
If something is to hard to understand, maybe it's too hard to justify supporting it in the future.
This is a good example of a code review checklist
Live by the ten commandments of egoless programming. It will be great for yourself and the team.
- As reviewer it is not expected that you have all the answers.
- Don't assume you know more than writer of the code, It could be the Dunning-Kruger effect (You think you are more knowledgable than you actually are)
- Don't assume you know less then the writer of the code. It could be Imposter Syndrome (You know more than you think you do)
- If something is unclear ask questions, maybe some comments in the code could help the next person reading the code.
Make sure your comments don't fall under law of triviality. If the only thing you can suggest is change of variable name or something similarly small, maybe it's not important enough to change.
A great comment has three parts.
- Problem statement, include why it's a problem.
- Possible Solution, why does this solve the problem, and how good is the suggestion?
- Link to documentation / stackoverflow for more information.
This project is a RESTful json api (atleast it tries to be :)), other formats if needed.
Returning a string directly (like you did here with "bar") instead of a json object, will break with the rest of the app.
To quote [The zen of Python](https://www.python.org/dev/peps/pep-0020/):
> Special cases aren't special enough to break the rules.
Instead of returning a string, you should return an object like so:
return jsonify({"foo": "bar"})
For more information about our RESTful app see the link to our documentation: http://mycompany.com/docs/restful-api.md