>
你出事故不是因为没看前方,而是因为没看侧面。
当你深入一个模块时,你的注意力是中央凹式的——聚焦于眼前的代码。但破坏你工作的代码很少是你正在盯着的那段,而是它旁边的代码:改变了响应格式的上游服务、开始发送意外输入的下游消费者、在你开发中途被他人重构的共享工具。
周边视野在你当前工作上下文周围创建一个情境感知场。它持续扫描你注意力的边缘,并提醒你注意以下变化:
在人类视觉中:
在代码中:
| 区域 | 代码对应物 | 周边视野的作用 |
|---|---|---|
| 中央凹 | 你正在积极编辑的文件 | 无操作(你已经在看这里) |
| 旁中央凹 |
扫描内容:
├── 接口变更(新增必需参数、删除字段、重命名导出)
├── 行为变更(相同接口,不同语义)
├── 影响你使用范围的依赖版本升级
├── 你正在使用的函数的弃用警告
└── 依赖树中标记为破坏性的更新日志条目
扫描内容:
├── 你不知道的模块新消费者
├── 以你未预期方式使用你代码的消费者
├── 如果你更改当前接口会崩溃的消费者
├── 其他模块中测试你行为的测试文件(耦合信号)
└── 重新实现你功能的下游代码(信任信号)
扫描内容:
├── 你使用的共享工具、辅助函数或常量的变更
├── 影响你模块行为的配置文件变更
├── 可能与你当前工作冲突或重复的新文件
├── 更改了你代码遵循的命名规范的重构
└── 你的测试依赖的测试基础设施或夹具的变更
扫描内容:
├── 你代码查询的表中列的添加/删除
├── 你代码读取或写入的字段类型变更
├── 可能导致你写入失败的新约束(NOT NULL、UNIQUE)
├── 你消费的服务的API版本变更
└── Protobuf/GraphQL字段弃用或重命名
扫描内容:
├── 你代码读取的环境变量变更
├── Docker/容器配置变更
├── 影响你构建/测试/部署的CI/CD流水线修改
├── 基础设施变更(新区域、超时时间变更、限制更新)
└── 共享工具变更(lint规则、格式化设置、构建配置)
扫描内容:
├── 与你的文件在同一提交中变更超过3次的文件
├── 与你的文件在24小时内变更超过5次的文件
├── 与你的文件触发相同CI失败的文件
└── 与你的文件共享相同bug修复模式的文件
阶段1:上下文捕获
├── 识别中央凹区域(当前打开/修改的文件)
├── 追踪旁中央凹区域(直接依赖,包括导入和导出)
├── 映射周边区域(传递依赖、共享资源、共变文件)
└── 识别盲点(通过隐式通道连接)
阶段2:变更检测
├── 对每个区域,检测自你工作开始以来的变更:
│ ├── Git:他人在你感知区域内的文件提交
│ ├── 模式:迁移或类型定义变更
│ ├── 配置:环境或基础设施变更
│ └── 依赖:上游版本升级或更新日志条目
├── 按与当前工作的相关性对每个变更分类
└── 评估影响概率(对你造成影响的可能性)
阶段3:警报分类
├── 过滤噪音(影响概率低于20%的变更)
├── 按紧急程度对剩余变更分类:
│ ├── 停止:你当前工作可能无效
│ ├── 审查:你当前工作应考虑此变更
│ ├── 注意:仅需感知,暂无需操作
│ └── 形成中:模式正在形成,尚不可操作
└── 生成包含对你工作具体影响的上下文警报
阶段4:持续监控
├── 定期重新扫描(可配置间隔)
├── 随焦点转移更新感知区域
├── 积累模式数据用于时间邻居分析
└── 淡化不再相关的旧警报
╔══════════════════════════════════════════════════════════════╗
║ 周边视野警报 ║
║ 上下文:你正在处理 src/checkout/ ║
╠══════════════════════════════════════════════════════════════╣
║ ║
║ 🔴 停止(1) ║
║ ├── [模式] payments表:currency列类型已变更 ║
║ │ 从 varchar(3) 改为 enum — 你的INSERT将失败 ║
║ │ 变更者:@devB 在迁移 20250301alterpmts 中 ║
║ │ 操作:更新 PaymentBuilder 以使用枚举值 ║
║ ║
║ 🟡 审查(2) ║
║ ├── [上游] CartService.getTotal() 现在返回 ║
║ │ {amount, currency} 而不仅仅是 amount ║
║ │ 变更者:@devC 在提交 a8f3d2e(2小时前) ║
║ │ 操作:正确解构,否则你的amounts将变成对象 ║
║ │ ║
║ ├── [同级] src/checkout/utils.ts 已重构 ║
║ │ formatPrice() 已重命名为 formatCurrency() ║
║ │ 变更者:@devA 在提交 b9c4e1f(4小时前) ║
║ │ 操作:推送前更新你的导入 ║
║ ║
║ 🔵 注意(1) ║
║ ├── [时间] test/fixtures/cart-data.json 已更新 ║
║ │ 该文件与 checkout/ 共变概率为73% ║
║ │ 你的checkout测试可能需要更新夹具 ║
║ ║
╚══════════════════════════════════════════════════════════════╝
最令人沮丧的bug不是你引入的,而是在你旁边被引入的——当你专注于自己的工作时,在你没有理由去看的代码中。等你发现它们时,你已经建立在错误的假设之上。
周边视野不会取代仔细的代码审查。它给你的代码审查带来周边感知——这样你不仅审查了什么发生了变化,还审查了变化周围发生了什么变化。
零外部依赖。零API调用。纯git和静态分析。
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 peripheral-vision-1776274773 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 peripheral-vision-1776274773 技能
skillhub install peripheral-vision-1776274773
文件大小: 4.36 KB | 发布时间: 2026-4-16 15:40