Code Review Excellence
Transform code reviews from gatekeeping to knowledge sharing through constructive feedback, systematic analysis, and collaborative improvement.
When to Use This Skill
- Reviewing pull requests and code changes
- Establishing code review standards for teams
- Mentoring junior developers through reviews
- Conducting architecture reviews
- Creating review checklists and guidelines
- Improving team collaboration
- Reducing code review cycle time
- Maintaining code quality standards
Core Principles
1. The Review Mindset
Goals of Code Review:
- Catch bugs and edge cases
- Ensure code maintainability
- Share knowledge across team
- Enforce coding standards
- Improve design and architecture
- Build team culture
Not the Goals:
- Show off knowledge
- Nitpick formatting (use linters)
- Block progress unnecessarily
- Rewrite to your preference
2. Effective Feedback
Good Feedback is:
- Specific and actionable
- Educational, not judgmental
- Focused on the code, not the person
- Balanced (praise good work too)
- Prioritized (critical vs nice-to-have)
❌ Bad: "This is wrong."
✅ Good: "This could cause a race condition when multiple users
access simultaneously. Consider using a mutex here."
❌ Bad: "Why didn't you use X pattern?"
✅ Good: "Have you considered the Repository pattern? It would
make this easier to test. Here's an example: [link]"
❌ Bad: "Rename this variable."
✅ Good: "[nit] Consider `userCount` instead of `uc` for
clarity. Not blocking if you prefer to keep it."
3. Review Scope
What to Review:
- Logic correctness and edge cases
- Security vulnerabilities
- Performance implications
- Test coverage and quality
- Error handling
- Documentation and comments
- API design and naming
- Architectural fit
What Not to Review Manually:
- Code formatting (use Prettier, Black, etc.)
- Import organization
- Linting violations
- Simple typos
Review Process
Phase 1: Context Gathering (2-3 minutes)
Before diving into code, understand:
- Read PR description and linked issue
- Check PR size (>400 lines? Ask to split)
- Review CI/CD status (tests passing?)
- Understand the business requirement
- Note any relevant architectural decisions
Phase 2: High-Level Review (5-10 minutes)
- Architecture & Design - Does the solution fit the problem?
- For significant changes, consult Architecture Review Guide
- Check: SOLID principles, coupling/cohesion, anti-patterns
- Performance Assessment - Are there performance concerns?
- For performance-critical code, consult Performance Review Guide
- Check: Algorithm complexity, N+1 queries, memory usage
- File Organization - Are new files in the right places?
- Testing Strategy - Are there tests covering edge cases?
Phase 3: Line-by-Line Review (10-20 minutes)
For each file, check:
- Logic & Correctness - Edge cases, off-by-one, null checks, race conditions
- Security - Input validation, injection risks, XSS, sensitive data
- Performance - N+1 queries, unnecessary loops, memory leaks
- Maintainability - Clear names, single responsibility, comments
Phase 4: Summary & Decision (2-3 minutes)
- Summarize key concerns
- Highlight what you liked
- Make clear decision:
- ✅ Approve
- 💬 Comment (minor suggestions)
- 🔄 Request Changes (must address)
- Offer to pair if complex
Review Techniques
Technique 1: The Checklist Method
Use checklists for consistent reviews. See Security Review Guide for comprehensive security checklist.
Technique 2: The Question Approach
Instead of stating problems, ask questions:
❌ "This will fail if the list is empty."
✅ "What happens if `items` is an empty array?"
❌ "You need error handling here."
✅ "How should this behave if the API call fails?"
Technique 3: Suggest, Don't Command
Use collaborative language:
❌ "You must change this to use async/await"
✅ "Suggestion: async/await might make this more readable. What do you think?"
❌ "Extract this into a function"
✅ "This logic appears in 3 places. Would it make sense to extract it?"
Technique 4: Differentiate Severity
Use labels to indicate priority:
- 🔴
[blocking] - Must fix before merge
- 🟡
[important] - Should fix, discuss if disagree
- 🟢
[nit] - Nice to have, not blocking
- 💡
[suggestion] - Alternative approach to consider
- 📚
[learning] - Educational comment, no action needed
- 🎉
[praise] - Good work, keep it up!
Language-Specific Guides
根据审查的代码语言,查阅对应的详细指南:
| Language/Framework |
Reference File |
Key Topics |
| React |
React Guide |
Hooks, useEffect, React 19 Actions, RSC, Suspense, TanStack Query v5 |
| Vue 3 |
Vue Guide |
Composition API, 响应性系统, Props/Emits, Watchers, Composables |
| Rust |
Rust Guide |
所有权/借用, Unsafe 审查, 异步代码, 错误处理 |
| TypeScript |
TypeScript Guide |
类型安全, async/await, 不可变性 |
| Python |
Python Guide |
可变默认参数, 异常处理, 类属性 |
| Java |
Java Guide |
Java 17/21 新特性, Spring Boot 3, 虚拟线程, Stream/Optional |
| Go |
Go Guide |
错误处理, goroutine/channel, context, 接口设计 |
| C |
C Guide |
指针/缓冲区, 内存安全, UB, 错误处理 |
| C++ |
C++ Guide |
RAII, 生命周期, Rule of 0/3/5, 异常安全 |
| CSS/Less/Sass |
CSS Guide |
变量规范, !important, 性能优化, 响应式, 兼容性 |
| Qt |
Qt Guide |
对象模型, 信号/槽, 内存管理, 线程安全, 性能 |
Additional Resources
- Architecture Review Guide - 架构设计审查指南(SOLID、反模式、耦合度)
- Performance Review Guide - 性能审查指南(Web Vitals、N+1、复杂度)
- Common Bugs Checklist - 按语言分类的常见错误清单
- Security Review Guide - 安全审查指南
- Code Review Best Practices - 代码审查最佳实践
- PR Review Template - PR 审查评论模板
- Review Checklist - 快速参考清单
1---2name: code-review-excellence3description: Provides comprehensive code review guidance for React 19, Vue 3, Rust, TypeScript, Java, Python, and C/C++. Helps catch bugs, improve code quality, and give constructive feedback. Use when: reviewing pull requests, conducting PR reviews, code review, reviewing code changes, establishing review standards, mentoring developers, architecture reviews, security audits, checking code quality, finding bugs, giving feedback on code.4---56# Code Review Excellence78Transform code reviews from gatekeeping to knowledge sharing through constructive feedback, systematic analysis, and collaborative improvement.910## When to Use This Skill1112- Reviewing pull requests and code changes13- Establishing code review standards for teams14- Mentoring junior developers through reviews15- Conducting architecture reviews16- Creating review checklists and guidelines17- Improving team collaboration18- Reducing code review cycle time19- Maintaining code quality standards2021## Core Principles2223### 1. The Review Mindset2425**Goals of Code Review:**2627- Catch bugs and edge cases28- Ensure code maintainability29- Share knowledge across team30- Enforce coding standards31- Improve design and architecture32- Build team culture3334**Not the Goals:**3536- Show off knowledge37- Nitpick formatting (use linters)38- Block progress unnecessarily39- Rewrite to your preference4041### 2. Effective Feedback4243**Good Feedback is:**4445- Specific and actionable46- Educational, not judgmental47- Focused on the code, not the person48- Balanced (praise good work too)49- Prioritized (critical vs nice-to-have)5051```markdown52❌ Bad: "This is wrong."53✅ Good: "This could cause a race condition when multiple users54access simultaneously. Consider using a mutex here."5556❌ Bad: "Why didn't you use X pattern?"57✅ Good: "Have you considered the Repository pattern? It would58make this easier to test. Here's an example: [link]"5960❌ Bad: "Rename this variable."61✅ Good: "[nit] Consider `userCount` instead of `uc` for62clarity. Not blocking if you prefer to keep it."63```6465### 3. Review Scope6667**What to Review:**6869- Logic correctness and edge cases70- Security vulnerabilities71- Performance implications72- Test coverage and quality73- Error handling74- Documentation and comments75- API design and naming76- Architectural fit7778**What Not to Review Manually:**7980- Code formatting (use Prettier, Black, etc.)81- Import organization82- Linting violations83- Simple typos8485## Review Process8687### Phase 1: Context Gathering (2-3 minutes)8889Before diving into code, understand:90911. Read PR description and linked issue922. Check PR size (>400 lines? Ask to split)933. Review CI/CD status (tests passing?)944. Understand the business requirement955. Note any relevant architectural decisions9697### Phase 2: High-Level Review (5-10 minutes)98991. **Architecture & Design** - Does the solution fit the problem?100 - For significant changes, consult [Architecture Review Guide](reference/architecture-review-guide.md)101 - Check: SOLID principles, coupling/cohesion, anti-patterns1022. **Performance Assessment** - Are there performance concerns?103 - For performance-critical code, consult [Performance Review Guide](reference/performance-review-guide.md)104 - Check: Algorithm complexity, N+1 queries, memory usage1053. **File Organization** - Are new files in the right places?1064. **Testing Strategy** - Are there tests covering edge cases?107108### Phase 3: Line-by-Line Review (10-20 minutes)109110For each file, check:111112- **Logic & Correctness** - Edge cases, off-by-one, null checks, race conditions113- **Security** - Input validation, injection risks, XSS, sensitive data114- **Performance** - N+1 queries, unnecessary loops, memory leaks115- **Maintainability** - Clear names, single responsibility, comments116117### Phase 4: Summary & Decision (2-3 minutes)1181191. Summarize key concerns1202. Highlight what you liked1213. Make clear decision:122 - ✅ Approve123 - 💬 Comment (minor suggestions)124 - 🔄 Request Changes (must address)1254. Offer to pair if complex126127## Review Techniques128129### Technique 1: The Checklist Method130131Use checklists for consistent reviews. See [Security Review Guide](reference/security-review-guide.md) for comprehensive security checklist.132133### Technique 2: The Question Approach134135Instead of stating problems, ask questions:136137```markdown138❌ "This will fail if the list is empty."139✅ "What happens if `items` is an empty array?"140141❌ "You need error handling here."142✅ "How should this behave if the API call fails?"143```144145### Technique 3: Suggest, Don't Command146147Use collaborative language:148149```markdown150❌ "You must change this to use async/await"151✅ "Suggestion: async/await might make this more readable. What do you think?"152153❌ "Extract this into a function"154✅ "This logic appears in 3 places. Would it make sense to extract it?"155```156157### Technique 4: Differentiate Severity158159Use labels to indicate priority:160161- 🔴 `[blocking]` - Must fix before merge162- 🟡 `[important]` - Should fix, discuss if disagree163- 🟢 `[nit]` - Nice to have, not blocking164- 💡 `[suggestion]` - Alternative approach to consider165- 📚 `[learning]` - Educational comment, no action needed166- 🎉 `[praise]` - Good work, keep it up!167168## Language-Specific Guides169170根据审查的代码语言,查阅对应的详细指南:171172| Language/Framework | Reference File | Key Topics |173| ------------------ | ------------------------------------------- | -------------------------------------------------------------------- |174| **React** | [React Guide](reference/react.md) | Hooks, useEffect, React 19 Actions, RSC, Suspense, TanStack Query v5 |175| **Vue 3** | [Vue Guide](reference/vue.md) | Composition API, 响应性系统, Props/Emits, Watchers, Composables |176| **Rust** | [Rust Guide](reference/rust.md) | 所有权/借用, Unsafe 审查, 异步代码, 错误处理 |177| **TypeScript** | [TypeScript Guide](reference/typescript.md) | 类型安全, async/await, 不可变性 |178| **Python** | [Python Guide](reference/python.md) | 可变默认参数, 异常处理, 类属性 |179| **Java** | [Java Guide](reference/java.md) | Java 17/21 新特性, Spring Boot 3, 虚拟线程, Stream/Optional |180| **Go** | [Go Guide](reference/go.md) | 错误处理, goroutine/channel, context, 接口设计 |181| **C** | [C Guide](reference/c.md) | 指针/缓冲区, 内存安全, UB, 错误处理 |182| **C++** | [C++ Guide](reference/cpp.md) | RAII, 生命周期, Rule of 0/3/5, 异常安全 |183| **CSS/Less/Sass** | [CSS Guide](reference/css-less-sass.md) | 变量规范, !important, 性能优化, 响应式, 兼容性 |184| **Qt** | [Qt Guide](reference/qt.md) | 对象模型, 信号/槽, 内存管理, 线程安全, 性能 |185186## Additional Resources187188- [Architecture Review Guide](reference/architecture-review-guide.md) - 架构设计审查指南(SOLID、反模式、耦合度)189- [Performance Review Guide](reference/performance-review-guide.md) - 性能审查指南(Web Vitals、N+1、复杂度)190- [Common Bugs Checklist](reference/common-bugs-checklist.md) - 按语言分类的常见错误清单191- [Security Review Guide](reference/security-review-guide.md) - 安全审查指南192- [Code Review Best Practices](reference/code-review-best-practices.md) - 代码审查最佳实践193- [PR Review Template](assets/pr-review-template.md) - PR 审查评论模板194- [Review Checklist](assets/review-checklist.md) - 快速参考清单