- value-scan: read-only breadth inventory of mechanisms in delivered code, stopping at the human selection gate - value-dig: depth write-up of chosen points (feature list, design review, refactor plan) with templates and mechanical checkers - Add skill-workbench design doc for the pair
6.4 KiB
6.4 KiB
⟨域⟩ 域 · 功能点清单
用途:把「⟨链路主题⟩」这条链路按其设计文档与代码实读整理成功能点 流程(与上游一致):先记录功能点 → 定稿文档 → 再讨论最佳设计与取舍 上游:
⟨域⟩-候选价值点.md(S1)+ 勾选结果(S2) 素材来源:⟨wiki/xxx-spec.md⟩(⟨N⟩ 行)+⟨仓库名⟩代码实读 路径简写:⟨简写1⟩/=⟨真实路径⟩;⟨简写2⟩/=⟨真实路径⟩
一、链路总览
一句话:⟨统领句——给出这条链路的主线判断,不是复述流程⟩
flowchart TD
A["⟨起点⟩"] --> B["⟨★ 机制节点⟩"]
B --> C{"⟨分支⟩"}
C -->|"⟨路径⟩"| D["⟨汇合点 / 分级发生地⟩"]
C -->|"⟨路径⟩"| D
D --> E{"⟨结果类型⟩"}
E -->|"⟨可逆⟩"| F["⟨处置⟩"]
E -->|"⟨不确定⟩"| G["⟨处置⟩"]
⟨可选⟩关键差异表(设计的核心)
| ⟨维度⟩ | ⟨取值1⟩ | ⟨取值2⟩ | ⟨取值3⟩ |
|---|---|---|---|
| ⟨例:对方结果⟩ | |||
| ⟨例:可逆性⟩ | |||
| ⟨例:处置⟩ |
主干调用骨架(一眼看清哪一步用了什么方式)
这是"整条链路的技术地图"——把 N 段主干压成一段连续伪代码,每行标注用了什么方式(
[锁][幂等][策略][MQ][兜底]…)。 局部片段回答"一个机制长什么样",这一段回答"哪些地方用了什么",以及哪些地方本该有兜底却没有。
// ═══ ① ⟨阶段名⟩ ═══
⟨方法名⟩(): ⟨动作⟩ // [锁]
⟨动作⟩ // [幂等]
⟨动作⟩ // [策略]
⟨动作⟩ // [外调]
// ═══ ② ⟨阶段名⟩ ═══
⟨方法名⟩(): ⟨动作⟩ // [验签]
⟨动作⟩ // [MQ]
⟨动作⟩ // [落库]
// ═══ ③ ⟨兜底 / 失败处置⟩ ═══
⟨方法名⟩(): ⟨动作⟩ // [兜底]
⟨动作⟩ // [重试] 只重超时
⟨动作⟩ // [履历]
方式图例(反向索引:一种方式出现在哪些地方)
| 标记 | 方式 | 出现在 |
|---|---|---|
[锁] |
⟨分布式锁(注解式 / Redisson)⟩ | ⟨…⟩ · ⟨…⟩ |
[幂等] |
⟨状态短路 + CAS + 一次性消费⟩ | ⟨…⟩ · ⟨…⟩ |
[策略] |
⟨策略模式 + 工厂⟩ | ⟨…⟩ |
[MQ] |
⟨Kafka⟩ | ⟨…⟩ |
[兜底] |
⟨延时队列 + XXL-Job⟩ | ⟨…⟩ |
[重试] |
⟨@Retryable(只重超时)⟩ |
⟨…⟩ |
[履历] |
⟨DB 台账⟩ | ⟨…⟩ |
[验签] |
⟨网关签名⟩ | ⟨…⟩ |
[隔离] |
⟨try-catch / 线程池⟩ | ⟨…⟩ |
[外调] / [落库] / [通知] |
⟨外部系统调用 / DB 写 / 站内信⟩ | 全链路 |
这张骨架的两个用处:① 评审时一眼看清技术分布(⟨锁 3 处、幂等 5 处、兜底 4 处⟩);② 横向对比"同样的机制在别处有没有用"。
二、功能点(⟨N⟩ 个)
每个点:核心内容 / 这个点在讲什么 / 一句话价值 / 图 / 关键片段(≤10 行伪代码) / 关键表与字段 / 关键做法与证据。 段落式,不要压成表格("做了什么"常是 5–7 条,塞进单元格必然被简化)。
① ⟨功能点名⟩ ⭐⭐⭐⭐⭐
核心内容:⟨1 句,把"形状"说清(一把锁 + 三级短路 + 一条条件更新)⟩
这个点在讲什么
- 业务场景:⟨谁在什么时刻触发了什么,为什么这事难;点出"同一时刻还有谁在改同一行数据"⟩
- 做了什么(⟨用一句话概括做法⟩):
- ⟨…⟩;
- ⟨…⟩;
- ⟨…⟩。
- 只把 fail 留给"我真的还没处理":⟨边界在哪⟩(若适用)
- 临界场景:⟨并发 / 乱序 / 迟到时的行为⟩(若适用)
- 解决了什么问题:⟨不做会怎样⟩
一句话价值:⟨说清"判断权 / 控制权"落在谁手里⟩
图 · ⟨图名⟩
flowchart TD
A["⟨入口⟩"] --> B{"⟨判断⟩"}
B -->|"⟨…⟩"| B1["⟨抢不到锁:直接回 success,让给持锁方⟩"]
B -->|"⟨…⟩"| C["⟨动作⟩"]
C --> D["⟨落库⟩"]
关键片段 · ⟨片段名⟩(伪代码,只示形状)
⟨CAS 语句 / 锁与短路顺序 / 状态分支 / DDL,≤10 行⟩
关键表与字段
| 表 | 关键字段 | 说明 |
|---|---|---|
⟨表名⟩ |
⟨字段⟩ · ⟨关键字段⟩ |
⟨说明⟩ |
关键做法与证据
| 做法 | 证据 |
|---|---|
| ⟨做法⟩ | ⟨简写⟩/⟨路径⟩.java:⟨行号⟩ |
| ⟨做法⟩ | 同上 :⟨行号⟩ |
⟨重复 ① 的结构,每个功能点一节⟩
三、推荐组合
| 组合 | 内容 | 适合 |
|---|---|---|
| 主线(推荐) | ⟨① + ⑤⟩ | ⟨最能体现什么能力,追问密度最高⟩ |
| 完整版 | ⟨① + ② + ③ + ④ + ⑤⟩ | ⟨讲清完整链路⟩ |
| 差异化 | ⟨④⟩ | ⟨少数候选人会讲的点⟩ |
四、设计亮点
4.1 亮点(面试可直接讲)
| # | 亮点 | 价值 |
|---|---|---|
| 1 | ⟨亮点⟩ | ⟨价值——逐条对着旧实现的病灶,不是堆框架⟩ |
| 2 |
本模板不设缺陷表:缺陷、严重度与改进方案统一在《⟨主题⟩-改造方案.md》中呈现。深挖过程中发现的结构缺口先记到工作笔记,写改造方案时再展开。
附录 A · ⟨状态 / 结果类型⟩速查
| ⟨类型⟩ | 含义 | 终态? | ⟨处置1⟩ | ⟨处置2⟩ | 重试 |
|---|---|---|---|---|---|
⟨枚举值⟩ |
✅ / ❌ |
附录 B · 参数速查
| 参数 | 值 | 出处 |
|---|---|---|
| ⟨锁 leaseTime⟩ | ⟨路径⟩.java:⟨行号⟩ |
|
| ⟨重试次数⟩ | ||
| ⟨延时 / 超时⟩ |
附录 C · 关键类索引
| 类 | 角色 |
|---|---|
⟨类名⟩ |
⟨在链路里的角色⟩ |