Code reviews have been proven to improve software quality and save developers’ time in the long run. Also peer code reviews as a process have increasingly been adopted by engineering teams around the world in all tech companies.
Be respectful, humble, and kind. Finally, the quality of the code review feedback does not only depend on WHAT you are saying, but also on HOW you are saying it. So, the best code review feedback is worth nothing when it isn’t carefully phrased, humble, and kind.
Want to excel code review skills? Checkout Code Review Best Practices for 10x Engineers
In this article we will be covering the 10 detailed code review checklist.
- Does the PR work as expected?
- Does the new feature add value or is it a sign of feature-creep?
- Will it impact existing functionality?
- Is it going to create inconsistency at other places?
2. Readability, Code syntax & formatting
- Is the code clear and concise?
- Does it comply with PEP-8 / best practices?
- Are all language and project conventions followed?
- Are identifiers given meaningful and style guide-compliant names?
- Ensure that proper naming conventions (Pascal, CamelCase etc.) have been followed.
- Ensure code is properly indented and team follows same rule (two space/tab) in the project.
- Does the PR add test-cases for the modified code?
3. Design Principle
- Is the code properly planned and designed?
- Separation of Concerns followed?
- Is code in sync with existing code patterns/technologies?
- Did we thought about reusuability?
- Is the code well organised in terms of placement of components?
- Did we explored exisitng design principle that suits the need?
4. Patterns, idioms & best practices
- No hard coding, use constants/configuration values.
- Does the code keep with the idioms and code patterns of the language?
- Does the code make use of the language features and standard libraries?
5. Documentation and maintainability
- Is the code self-documenting or well-documented?
- Did you add Comments mentioning reason of change, todo, workaround, hacks did in the code?
- Is the code free of obfuscation and unnecessary complexity?
- Is the control flow and component relationship clear to understand?
6. Debuggability, Testability and Configurability
- Are we logging execptions, flow of control, user behavior for better debugging and consumer behavior understanding?
- Is code testable?
- Is code configurable enough, to avoid changes in business or view layers or even code changes?
7. Performance, reliability and scalability
- Is the code optimised for in terms of time and space complexity?
- Does it scale as per the need?
- Does it cover failure scenarios?
- Does it have instrumentation like reporting for metrics and alerting for failures?
- Is the code free of implementation bugs that could be exploited?
- Have all the new dependencies been audited for vulnerabilities?
- Does it have Authentication, authorization, input data validation against security threats?
- Is the PR atomic?
- Does the PR follow the single concern principle?
- Are the commit messages well-written?
10. Notice What’s Missing
- Did you tried using app/functionality as end user?
- Does it covers loading, error handling, edge cases and unexpected input handling?
- Will it work in all support environment OS, browsers, platforms etc?
- Does it need feature flag control?
- Does it have proper instrumentation?
Code review doesn’t just improve the project’s code, but the trust between project and it’s consumers in long terms.
Woo! We are done with the Effective Code Review Checklist.
Was this article helpful for you? Let me know in the comments below if you have any questions or thoughts! I’d love to hear them :)
Thanks for reading. Did this article help you in any way? If I did, I hope you consider sharing it you might just help someone who felt the same way you did before reading the article. Thank you.
Sharing makes you bigger than you are. The more you pour out, the more life will be able to pour in.