Code Review Aspects（代码复查的各个方面）
- Design documents. Design documents are important, as it describes the requirements (leading to scenarios) and the design. With those in mind, it would be possible to understand various cases a piece of code can undergo (scenario review), making correctness provable.
- Readability. This is very important to new comers of the reviewed area.
- Comments. Code describes how to do, but it doesn’t describe what to do (the requirements) and why we do (the design). This way, we need to use comments to write down the usage and interface of a method (related to the variable lifecycles) and the possible cases of it (related to the scenarios). Inside a method, for special cases (related to the scenarios) and for complex code (related to the design), comments are also helpful.
- Logic correctness. After the reviewer got familiar with the code, this is the second important thing to the reviewer, possible to achieve through scenario review and variable lifecycle review.
- Architectural quality. This is related to OO-design and design patterns. Try to use OO appropriately. If necessary, refactor the code.
- Maintainability. For the long term, the code must be maintainable. Tricky logic is not maintainable. Magic numbers are not maintainable. Lacking of necessary comments is not maintainable. Mass duplicate code is not maintainable.
- Error handling. Error handling is an aspect easy to be ignored but still important. Proper error handling gives a better user experience.
- Performance. Pre-mature optimization is not good, but we should keep performance in mind if we know the data is going to be big.