惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V2EX - 技术
V2EX - 技术
博客园 - 司徒正美
F
Fortinet All Blogs
D
Docker
aimingoo的专栏
aimingoo的专栏
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
U
Unit 42
The Register - Security
The Register - Security
Martin Fowler
Martin Fowler
IT之家
IT之家
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
Security Archives - TechRepublic
Security Archives - TechRepublic
Project Zero
Project Zero
T
Tenable Blog
S
Security Affairs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
W
WeLiveSecurity
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tailwind CSS Blog
TaoSecurity Blog
TaoSecurity Blog
T
The Blog of Author Tim Ferriss
L
Lohrmann on Cybersecurity
雷峰网
雷峰网
Forbes - Security
Forbes - Security
Recent Announcements
Recent Announcements
N
News | PayPal Newsroom
Schneier on Security
Schneier on Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
P
Palo Alto Networks Blog
C
Cybersecurity and Infrastructure Security Agency CISA
S
Schneier on Security
Attack and Defense Labs
Attack and Defense Labs
Latest news
Latest news
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
Last Week in AI
Last Week in AI
Scott Helme
Scott Helme
A
Arctic Wolf
L
LINUX DO - 最新话题
A
About on SuperTechFans
K
Kaspersky official blog
博客园 - Franky

博客园 - 我才是银古

第16章:常见问题、排错与最佳实践 第15章:扩展生态、MCAD 与外部集成 第12章:实战案例:机械结构与 3D 打印零件 第14章:构建、测试、调试与贡献流程 第13章:OpenSCAD 源码架构与核心执行流程 第11章:预览、渲染、网格精度与性能优化 第09章:列表推导、递归与算法建模 第08章:参数化零件库与复用设计 第10章:导入导出、命令行与自动化 第06章:CSG 布尔建模方法 第07章:二维图形、拉伸、旋转与投影 第05章:基础几何、坐标系与变换 第04章:参数、变量、函数、模块与作用域 OpenSCAD 教程目录 第03章:OpenSCAD 语言基础 第02章:安装、环境配置与开发工作流 第01章:OpenSCAD 项目全景与学习路线 第02章:源码获取、编译与开发环境配置 第01章:OCCT项目全景与学习路线 第18章:二次开发实战与综合案例 第17章:与 Qt VTK Python pythonOCC 生态集成 第18章:综合实战案例 第17章:数据交换与协同 第16章:源码架构与二次开发 第15章:插件与自定义工作台开发 第14章:Python脚本宏与自动化 第13章:FEM仿真分析 第12章:CAM数控加工 第11章:SurfaceMesh与逆向工程 第10章:Draft二维绘图与BIM建筑 第09章:工程图TechDraw 第07章:参数化表达式与Spreadsheet 第08章:装配设计Assembly 第06章:Part工作台与几何内核 第05章:PartDesign实体特征建模 第04章:草图Sketcher约束建模 第02章:安装版本与工作环境配置 第03章:界面工作台与基础操作 第01章:项目全景与学习路线 第十二章:插件开发、研究功能与最佳实践 第十章:定时任务与自动化(Cron) 第七章:技能、记忆与自学习闭环 第八章:MCP 集成与上下文文件 第六章:工具系统与终端后端 第五章:模型供应商与配置体系 Hermes Agent 教程目录 第十一章:语音、视觉、浏览器与子代理协作 第四章:CLI/TUI 与会话管理 第十二章:学习路线、实战方案与最佳实践 第十一章:源码结构、开发调试与插件开发 第十章:自动化、远程访问、日志与排障 第九章:Control UI、节点、Canvas 与语音能力 第七章:工具、技能、插件与能力扩展 第八章:安全模型、访问控制与沙箱实践 第六章:Agent 工作区、会话与多智能体路由 第五章:多通道消息接入与聊天平台配置 第四章:配置体系、模型接入与认证管理 第三章:Gateway 架构、协议与运行机制 第二章:安装、环境准备与快速上手 第一章:OpenClaw 项目概览与核心定位 oh-my-openagent 教程目录 09-命令模型回退与配置参考 10-实战案例最佳实践与故障排除 05-工作模式-Ultrawork-Prometheus-Atlas 08-Hooks与MCP系统 06-Category与Skill系统 07-核心工具链 04-智能体全景详解 03-安装与环境配置 02-整体架构与多模型编排机制 01-项目简介与核心理念 01-项目概览与学习路线 02-安装部署与工具适配 03-Skill机制与using-superpowers 05-TDD系统化调试与完成前验证 04-需求澄清方案设计与计划编写 07-并行智能体子智能体与Git-Worktree 08-中国特色Skills与本土团队落地 09-MCP构建工作流执行与自定义Skill 第23章:FreeCAD-Python-API Clipper2 C# 源码解读教程 第19章:PolyTree 多边形树结构 第20章:实际应用与最佳实践 第18章:Minkowski 和与差 第17章:RectClip 矩形裁剪优化 第16章:ClipperOffset 偏移类详解 第15章:填充规则详解 第14章:布尔运算执行流程 第13章:ClipperD 浮点裁剪类 第11章:OutRec 与 OutPt 输出结构 第9章:Active 活动边结构 第10章:Vertex 顶点与 LocalMinima 局部极小值 第12章:Clipper64 裁剪类详解 第7章:高精度运算与128位整数 第8章:ClipperBase 基类详解 第5章:枚举类型与常量定义 第6章:InternalClipper 内部工具类 第2章:核心数据结构 - Point64、PointD 第3章:路径与多边形表示 - Path64、PathD、Paths64、PathsD 第4章:矩形边界 - Rect64、RectD
第六章:代码审查、反馈处理与分支收尾
我才是银古 · 2026-05-04 · via 博客园 - 我才是银古

第六章:代码审查、反馈处理与分支收尾

6.1 为什么 AI 也需要代码审查

AI 生成代码速度快,但也容易在局部最优中遗漏问题:

  • 满足了显性需求,但破坏了隐含约定。
  • 测试覆盖了快乐路径,却遗漏安全和错误路径。
  • 引入不必要抽象,违反 YAGNI。
  • 没有遵守项目风格。
  • 修改了不相关文件。

requesting-code-review 的目的就是在问题扩散前引入第二视角,尤其是在子 Agent 驱动开发中,每个任务完成后都应审查。

6.2 requesting-code-review 的核心原则

该 Skill 强调「早审查,勤审查」。必须审查的场景包括:

  • 子 Agent 驱动开发中每个任务完成后。
  • 完成重要功能后。
  • 合并到 main 之前。

可选但有价值的场景包括:

  • 调试卡住时。
  • 大重构之前。
  • 修复复杂 Bug 之后。

审查不是走形式,而是为审查者提供清晰上下文:实现了什么、预期是什么、要比较的 base/head SHA 是什么、关注哪些风险。

6.3 审查上下文应该包含什么

好的审查请求应包含:

  • 实现摘要: 这次改动做了什么。
  • 需求或计划来源: 设计文档、计划文档或用户需求。
  • 变更范围: 主要文件和模块。
  • 验证结果: 已运行哪些测试或构建。
  • 对比范围: base commit 和 head commit。
  • 关注点: 安全、性能、兼容性、可维护性等。

如果只说「帮我审查一下」,审查者可能缺少判断标准,容易泛泛而谈。

6.4 处理审查反馈的正确姿势

receiving-code-review 的核心原则是:先验证再实施,技术正确性优先于社交舒适度。

收到反馈后的流程:

  1. 阅读。 完整读完反馈,不急于回复。
  2. 理解。 用自己的话复述,必要时提问。
  3. 验证。 对照当前代码库检查反馈是否成立。
  4. 评估。 判断对当前项目是否技术上合理。
  5. 回应。 技术性确认或有理有据反驳。
  6. 实施。 一次一项,逐个测试。

特别注意:外部审查者的反馈是待评估建议,不是必须执行命令。用户或核心维护者的明确要求权重更高,但仍要澄清范围。

6.5 不明确反馈不要猜

如果反馈包含多项,其中有几项不理解,不要先实现理解的部分再回头问。正确做法是先澄清所有不明确项,因为这些项可能互相关联。

例如:

第 1、2、3 项我理解了。第 4 项中「统一错误模型」具体是指复用现有 ErrorKind,还是新增 API 响应结构?澄清后我再一起处理。

这比盲目猜测更高效,也能避免部分修改导致后续返工。

6.6 何时反驳审查意见

以下情况应技术性反驳或请求讨论:

  • 建议会破坏现有功能。
  • 审查者不了解完整上下文。
  • 建议违反 YAGNI,当前没有调用方。
  • 与项目技术栈不兼容。
  • 存在兼容性或历史原因。
  • 与用户已确认的设计决策冲突。

反驳时不要情绪化,应引用代码、测试、约束和事实:

我检查了当前调用链,这个接口仍被旧版客户端使用。直接删除会破坏 v1 API 兼容性。建议先标记 deprecated,并在下个主版本移除。

6.7 中文代码审查的叠加使用

在中文团队中,requesting-code-reviewreceiving-code-review 负责流程,chinese-code-review 负责表达方式。

推荐反馈分级:

  • [必须修复] 安全漏洞、数据丢失、逻辑错误,不修不能合。
  • [建议修改] 性能、可维护性、校验不足,可本次或下次修。
  • [仅供参考] 命名、风格、替代方案,不强制。
  • [问题] 不确定意图,需要作者解释。

这种分级既保留中文沟通的缓和语气,又不会让关键问题被客气话淹没。

6.8 finishing-a-development-branch 的收尾流程

当实现完成并准备集成时,使用 finishing-a-development-branch。它要求先验证测试,再提供 4 个选项:

  1. 在本地合并回基础分支。
  2. 推送并创建 Pull Request。
  3. 保持分支现状,稍后处理。
  4. 丢弃这项工作。

注意:在提供选项之前必须运行测试或项目验证命令。如果测试失败,不能继续合并或创建 PR。

6.9 分支收尾前的验证

收尾前至少确认:

  • 工作区没有意外未提交文件。
  • 相关测试和构建通过。
  • 文档或示例已更新。
  • 代码审查中的 Critical / Important 问题已处理。
  • 如果使用 Worktree,知道当前工作树位置和基础分支。
  • 如果创建 PR,PR 描述包含摘要和测试计划。

对于文档站点,本仓库这类 Jekyll 项目通常应运行站点构建命令;对于 Node 项目可能是 npm testnpm run build;对于 Go 项目可能是 go test ./...

6.10 PR 描述建议

一个适合 superpowers-zh 工作流的 PR 描述可包含:

## 摘要

- 新增/修改了什么
- 为什么这样做
- 影响范围

## 验证

- [x] 运行单元测试
- [x] 运行构建
- [x] 完成代码审查

## 风险与回滚

- 主要风险
- 回滚方式

中文团队可以结合 chinese-git-workflow 中的 PR/MR 模板,补充需求链接、部署注意事项、截图录屏和影响范围。

6.11 常见反模式

只在最后审查

最后才审查会让问题叠加,修复成本高。更好的方式是每个独立任务完成后审查。

审查反馈全盘接受

外部建议要验证,尤其是会改变架构、删除兼容逻辑或新增复杂功能的建议。

为了面子放过问题

中文团队可以语气温和,但 [必须修复] 问题不能放过。

测试失败仍创建 PR

如果验证失败,应如实报告失败并修复,不能用「CI 上再看」代替本地验证。

丢弃分支不确认

finishing-a-development-branch 要求丢弃前精确确认,避免误删成果。

6.12 本章小结

代码审查和分支收尾让 AI 编程从「写完」走向「可合并」。requesting-code-review 提供审查入口,receiving-code-review 保证反馈处理严谨,chinese-code-review 让中文团队沟通更顺畅,finishing-a-development-branch 则把验证、PR 和清理纳入结构化流程。