Add value-scan and value-dig skills for reverse-engineering value points

- 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
This commit is contained in:
zhuyongxin
2026-09-18 18:23:23 +08:00
parent 24a71e78f1
commit fddefab0c9
10 changed files with 1748 additions and 0 deletions
@@ -0,0 +1,174 @@
# ⟨域⟩ 域 · 功能点清单
> **用途**:把「⟨链路主题⟩」这条链路按其设计文档与代码实读整理成功能点
> **流程**(与上游一致):**先记录功能点 → 定稿文档 → 再讨论最佳设计与取舍**
> **上游**:`⟨域⟩-候选价值点.md`(S1)+ 勾选结果(S2)
> **素材来源**:`⟨wiki/xxx-spec.md⟩`(⟨N⟩ 行)+ `⟨仓库名⟩` 代码实读
> **路径简写**:`⟨简写1⟩/` = `⟨真实路径⟩`;`⟨简写2⟩/` = `⟨真实路径⟩`
---
# 一、链路总览
**一句话**:⟨统领句——给出这条链路的**主线判断**,不是复述流程⟩
```mermaid
flowchart TD
A["⟨起点⟩"] --> B["⟨★ 机制节点⟩"]
B --> C{"⟨分支⟩"}
C -->|"⟨路径⟩"| D["⟨汇合点 / 分级发生地⟩"]
C -->|"⟨路径⟩"| D
D --> E{"⟨结果类型⟩"}
E -->|"⟨可逆⟩"| F["⟨处置⟩"]
E -->|"⟨不确定⟩"| G["⟨处置⟩"]
```
⟨可选⟩**关键差异表(设计的核心)**
| ⟨维度⟩ | ⟨取值1⟩ | ⟨取值2⟩ | ⟨取值3⟩ |
|---|---|---|---|
| ⟨例:对方结果⟩ | | | |
| ⟨例:可逆性⟩ | | | |
| ⟨例:处置⟩ | | | |
---
## 主干调用骨架(一眼看清哪一步用了什么方式)
> **这是"整条链路的技术地图"**——把 N 段主干压成**一段连续伪代码**,每行标注**用了什么方式**(`[锁]` `[幂等]` `[策略]` `[MQ]` `[兜底]` …)。
> 局部片段回答"一个机制长什么样",这一段回答"**哪些地方用了什么**",以及**哪些地方本该有兜底却没有**。
```java
// ═══ ① ⟨阶段名⟩ ═══
⟨方法名⟩(): ⟨动作⟩ // [锁]
⟨动作⟩ // [幂等]
⟨动作⟩ // [策略]
⟨动作⟩ // [外调]
// ═══ ② ⟨阶段名⟩ ═══
⟨方法名⟩(): ⟨动作⟩ // [验签]
⟨动作⟩ // [MQ]
⟨动作⟩ // [落库]
// ═══ ③ ⟨兜底 / 失败处置⟩ ═══
⟨方法名⟩(): ⟨动作⟩ // [兜底]
⟨动作⟩ // [重试] 只重超时
⟨动作⟩ // [履历]
```
**方式图例(反向索引:一种方式出现在哪些地方)**
| 标记 | 方式 | 出现在 |
|---|---|---|
| `[锁]` | ⟨分布式锁(注解式 / Redisson)⟩ | ⟨…⟩ · ⟨…⟩ |
| `[幂等]` | ⟨状态短路 + CAS + 一次性消费⟩ | ⟨…⟩ · ⟨…⟩ |
| `[策略]` | ⟨策略模式 + 工厂⟩ | ⟨…⟩ |
| `[MQ]` | ⟨Kafka⟩ | ⟨…⟩ |
| `[兜底]` | ⟨延时队列 + XXL-Job⟩ | ⟨…⟩ |
| `[重试]` | ⟨`@Retryable`(**只重超时**)⟩ | ⟨…⟩ |
| `[履历]` | ⟨DB 台账⟩ | ⟨…⟩ |
| `[验签]` | ⟨网关签名⟩ | ⟨…⟩ |
| `[隔离]` | ⟨try-catch / 线程池⟩ | ⟨…⟩ |
| `[外调]` / `[落库]` / `[通知]` | ⟨外部系统调用 / DB 写 / 站内信⟩ | 全链路 |
> **这张骨架的两个用处**:① **评审时一眼看清技术分布**(⟨锁 3 处、幂等 5 处、兜底 4 处⟩);② **横向对比**"同样的机制在别处有没有用"。
---
# 二、功能点(⟨N⟩ 个)
> 每个点:**核心内容** / **这个点在讲什么** / **一句话价值** / **图** / **关键片段(≤10 行伪代码)** / **关键表与字段** / **关键做法与证据**。
> **段落式**,不要压成表格("做了什么"常是 5–7 条,塞进单元格必然被简化)。
## ① ⟨功能点名⟩ ⭐⭐⭐⭐⭐
**核心内容**:⟨1 句,把"形状"说清(一把锁 + 三级短路 + 一条条件更新)⟩
**这个点在讲什么**
- **业务场景**:⟨谁在什么时刻触发了什么,为什么这事难;点出"同一时刻还有谁在改同一行数据"⟩
- **做了什么**(⟨用一句话概括做法⟩):
1. ⟨…⟩;
2. ⟨…⟩;
3. ⟨…⟩。
- **只把 fail 留给"我真的还没处理"**:⟨边界在哪⟩(若适用)
- **临界场景**:⟨并发 / 乱序 / 迟到时的行为⟩(若适用)
- **解决了什么问题**:⟨不做会怎样⟩
**一句话价值**:⟨说清"判断权 / 控制权"落在谁手里⟩
**图 · ⟨图名⟩**
```mermaid
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 · 关键类索引
| 类 | 角色 |
|---|---|
| `⟨类名⟩` | ⟨在链路里的角色⟩ |