code-review-hos
代码审查精华是一项面向实际任务的技能,主要用于通过建设性的反馈、系统分析和协作改进,将代码审查从门卫转移到知识共享。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
通过建设性反馈、系统性分析与协作式改进,将代码审查从“守门”转变为“知识共享”。
代码审查的目标:
非审查目标:
优质反馈的特征:
❌ 不佳:"这个是错的。" ✅ 优良:"当多个用户同时访问时,此处可能引发竞态条件。建议在此处使用 mutex。" ❌ 不佳:"你为什么没用 X 模式?" ✅ 优良:"你考虑过 Repository 模式吗?它会让这部分代码更易于测试。参考示例:[link]" ❌ 不佳:"把这个变量重命名。" ✅ 优良:"[nit] 建议将 `uc` 改为 `userCount` 以提升可读性。若你倾向保留原名,此条不构成阻塞。"
应当审查的内容:
无需人工审查的内容:
深入代码前,请先理解以下信息:
对每个文件依次核查:
借助标准化清单确保审查一致性。详见《Security Review Guide》中提供的完整安全审查清单。
避免直接指出问题,改用提问引导思考:
❌ "列表为空时此处会失败。" ✅ "如果 `items` 是一个空数组,会发生什么?" ❌ "此处需要增加错误处理。" ✅ "若 API 调用失败,这段逻辑应如何响应?"
采用协作性语言表达意见:
❌ "你必须将此处改为 async/await" ✅ "建议:async/await 或许能提升可读性。你怎么看?" ❌ "请将这段逻辑抽取为函数" ✅ "该逻辑在 3 处重复出现,是否适合抽取为独立函数?"
使用标签标识优先级:
[blocking] —— 必须修复后方可合并[important] —— 应当修复;如有异议需讨论[nit] —— 改进项,非阻塞项[suggestion] —— 值得考虑的替代方案[learning] —— 教育性说明,无需操作[praise] —— 表扬亮点,继续保持!根据被审查代码所使用的语言或框架,查阅对应详细指南:
| 语言/框架 | 参考文档 | 重点主题 |
|---|---|---|
| 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 | 对象模型、信号/槽机制、内存管理、线程安全、性能 |
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.5万人学习
最新文章