用途
Code Review Excellence 是面向代码审查的指导型技能,核心定位是把代码审查从「把关拦截」转变为知识共享、系统性分析与协作改进。它可用于审查 Pull Request 与代码变更、为团队建立代码审查标准、通过审查指导初级开发者、开展架构评审、创建审查清单与指南、改善团队协作、缩短代码审查周期以及维护代码质量标准。
核心原则
审查心态方面,目标是发现缺陷与边界情况、保证可维护性、在团队内共享知识、执行编码规范、改进设计与架构、建设团队文化;明确不应把审查当作炫耀知识、纠结格式(应交由 linter)、无必要地阻塞进度或按个人偏好重写代码的手段。
有效反馈应具体可执行、具有教育意义而非评判、针对代码而非个人、兼顾对优秀工作的肯定,并区分优先级。资料中给出的对比示例包括:把「This is wrong.」改为说明可能引发竞态条件并建议使用互斥锁;把「Why didn't you use X pattern?」改为以提问方式建议 Repository 模式并附示例链接;把「Rename this variable.」改为标注 [nit] 的命名建议并说明不阻塞合并。
审查范围上,应关注逻辑正确性与边界情况、安全漏洞、性能影响、测试覆盖与质量、错误处理、文档与注释、API 设计与命名、架构契合度;格式、import 组织、lint 违规和简单拼写错误则不必人工审查。
审查流程
第一阶段为上下文收集(约 2–3 分钟):阅读 PR 描述与关联 issue、检查 PR 规模(超过 400 行可要求拆分)、查看 CI/CD 状态、理解业务需求并记录相关架构决策。
第二阶段为高层审查(约 5–10 分钟):评估架构与设计是否契合问题(涉及 SOLID 原则、耦合度/内聚度、反模式,重大变更需参阅架构审查指南);评估性能(算法复杂度、N+1 查询、内存占用,关键代码参阅性能审查指南);检查文件组织是否合理;评估测试策略是否覆盖边界情况。
第三阶段为逐行审查(约 10–20 分钟):逐文件检查逻辑与正确性(边界、off-by-one、空值检查、竞态条件)、安全(输入校验、注入风险、XSS、敏感数据)、性能(N+1 查询、多余循环、内存泄漏)、可维护性(命名清晰、单一职责、注释)以及复用(在接受新代码前搜索已有工具函数与共享模块,参考通用质量指南中的参数蔓延、抽象泄漏、嵌套条件、字符串类型化、TOCTOU、无操作更新等反模式)。
第四阶段为总结与决策(约 2–3 分钟):汇总关键问题、指出做得好的部分,并给出明确结论——✅ Approve、💬 Comment(次要建议)、🔄 Request Changes(必须处理),复杂情况可提议结对处理。
审查技巧
清单法:使用清单保证审查一致性,安全审查可参考安全审查指南中的完整清单。提问法:以问题代替断言,例如把「This will fail if the list is empty.」改为「What happens if items is an empty array?」。建议而非命令:使用协作式措辞,例如「Suggestion: async/await might make this more readable. What do you think?」。严重程度区分:使用 🔴 [blocking] 必须修复、🟡 [important] 应修复、🟢 [nit] 非阻塞、💡 [suggestion] 备选方案、📚 [learning] 教育性评论、🎉 [praise] 表扬等标签标明优先级。
语言与框架专项指南
技能按被审查代码的语言/框架提供对应指南:React(Hooks、useEffect、React 19 Actions、RSC、Suspense、TanStack Query v5)、Vue 3(Composition API、响应性系统、Props/Emits、Watchers、Composables)、Angular 17+(Signals、Standalone 组件、RxJS、Zoneless 变更检测、模板优化)、Rust(所有权/借用、Unsafe 审查、异步代码、取消安全性、错误处理)、TypeScript(类型安全、async/await、不可变性)、Python(可变默认参数、异常处理、类属性)、Django/DRF(安全审查、N+1 查询、Serializer 反模式、ViewSet、异步视图)、FastAPI(Depends、Pydantic v2 校验、异步正确性、会话/N+1、认证与授权、测试驱动验证)、Java(Java 17/21 新特性、Spring Boot 3、虚拟线程、Stream/Optional)、PHP(PHP 8.x 类型系统、PDO、安全审查、Composer、PHPUnit/PHPStan)、C#/.NET(C# 12 特性、异步编程、EF Core 性能、ASP.NET Core、LINQ)、Go(错误处理、goroutine/channel、context、接口设计)、Kotlin/Android(协程、Flow、Jetpack Compose、空安全、内存泄漏、架构模式)、NestJS(依赖注入、分层架构、DTO 验证、Guard/Interceptor、循环依赖)、Svelte/SvelteKit(Runes、Load 函数、Form Actions、Store 迁移、SSR/CSR 边界)、C(指针/缓冲区、内存安全、UB、错误处理)、C++(RAII、生命周期、Rule of 0/3/5、异常安全)、CSS/Less/Sass(变量规范、!important、性能优化、响应式、兼容性)、Qt(对象模型、信号/槽、内存管理、线程安全、性能)。
跨领域指南涵盖与语言无关的通用质量模式:复用审计、参数蔓延、抽象泄漏、嵌套条件、字符串类型化、TOCTOU、无操作更新、冗余状态等。
附加资源
包括架构审查指南(SOLID、反模式、耦合度)、性能审查指南(Web Vitals、N+1、复杂度)、按语言分类的常见错误清单、安全审查指南、代码审查最佳实践、PR 审查评论模板以及快速参考清单。
限制
资料未提供本技能的安装命令、具体运行方式、支持平台、收费与价格信息,也未说明其在不同开发环境中的集成方式;上述内容暂未提供。