Video thumbnail for 要 Code Review 幹嘛?5招做得更好

Code Review Best Practices: 5 Tips for Better Collaboration

Summary

Quick Abstract

Want to level up your code review process? Learn how to make co-reviews more effective for both reviewers and those being reviewed. Bruce, a seasoned software developer, shares actionable techniques to improve team collaboration and knowledge sharing. Discover how to avoid common pitfalls and foster a culture of continuous improvement.

Quick Takeaways:

  • Focus on business logic, structural issues, and security vulnerabilities, not just bugs and coding style.

  • Use friendly and constructive language; frame suggestions as questions.

  • Categorize suggestions into "Merge Blocker," "True Discuss," and "Minor" to prioritize feedback.

  • Empower PR authors to merge their own code to promote ownership.

  • Avoid large PRs to ease the review process and prevent reviewer overload.

Implement these tips to transform your team's co-review practices and enhance overall code quality, knowledge circulation, and team ownership.

This article discusses how to improve the code review process within a development team, making it more effective and beneficial for all members. Whether you are reviewing code or having your code reviewed, the following techniques can enhance collaboration and code quality.

The Importance of Code Review

Why do we need code reviews? Development aims to solve problems, so why add an extra step? Code reviews are crucial for knowledge sharing and preventing potential issues. Imagine a senior engineer working with a junior developer who writes code quickly but potentially with errors or inconsistencies. Code reviews provide an opportunity for learning and knowledge transfer, preventing future problems. Instead of waiting for issues to arise in production, proactive review fosters mutual improvement and reduces the risk of "disasters." It also facilitates knowledge circulation within the team, making it easier for members to cover for each other in urgent situations.

It is important to note that the necessity of code review varies. Different teams and project stages have different needs. If a faster turnaround time is critical, sacrificing code review might be more cost-effective. However, when code review is implemented, it should be done effectively.

Taking Initiative to Improve Code Reviews

Even if you are not a team manager, you can still improve the code review process. The best approach is to start by taking action yourself, without disrupting existing workflows. By demonstrating the benefits of better code review practices, you can gradually influence the team culture. This approach can be applied to other areas beyond code review.

Key Code Review Skills

1. Focus Beyond Bugs and Coding Style

It's easy to get caught up in finding bugs and enforcing coding style during code reviews. While these are important, focusing solely on them is like "bikeshedding" – spending excessive time on trivial matters while ignoring more critical engineering problems.

  • Coding Style: Use a mainstream standard to avoid unnecessary debates.

  • Beyond the Obvious: Focus on:

    • Business Logic: Does it align with the requirements and effectively solve the problem? PMs and bosses may have blind spots too.

    • Structure: Are there potential maintenance issues? Document these and create tickets to address them later.

    • Security: Are there any vulnerabilities like SQL Injection or XSS? Code review can be a learning opportunity for junior developers.

    • Automated Testing: Analyze test code. Test code is also code, and it represents the business logic. Poorly written tests can become technical debt. Examining tests reveals how well the business logic is covered and exposes unexpected blind spots.

2. Use Friendly Language

Code review is not a trial. It's essential to use polite and constructive language to avoid causing burnout or resentment.

  • Frame suggestions as questions: "Have you considered using this solution? If so, why didn't you use it later?" Instead of accusatory statements like "You don't know how to use this?"

  • Aim to minimize impoliteness by setting the clear standard for code review.

3. Categorize Suggestions

Divide suggestions into three levels to prioritize and communicate effectively:

  • Merge Blocker: Must be addressed before merging due to significant issues.

  • True Discuss: Potential major bugs that require discussion to determine if a change is needed.

  • Minor: Acceptable if not changed, but presents an opportunity for minor improvement or alternative solutions.

This categorization helps to manage expectations and prioritize discussions. Always reply to every comment, even if you decide not to make a change, explaining your reasoning.

4. Empower PR Authors to Merge

Allow the person who created the Pull Request (PR) to merge it after review. This fosters a sense of ownership and responsibility. The author is accountable for the code they are merging. This approach may not be suitable for every team, but it can reflect a strong culture of ownership. But it's a good idea to ensure the quality of the project.

5. Avoid Large PRs

If you are submitting code for review, avoid creating large PRs. Overly large PRs require reviewers to spend significant time understanding the changes, which can be frustrating and lead to less thorough reviews. Break down large changes into smaller, more manageable PRs.

Additional Considerations

Other important details, such as whether to allow force pushing or how long to wait for a code review, should be clarified and documented by the team. These details help create a consistent and efficient code review process.

Was this summary helpful?