Files
gplan-2/design/dev/code-conventions-cases.md
T
DKChan 5858629719 docs(规约): 第二刀按真实范本密度压缩——CLAUDE.md 67行祈使句体+流程纪律独立成文(2026-10-15 用户令)
- 对照实测范本(anthropics/claude-code 40 行、openai/codex ≈250 行纯祈使句等七份)逐类清除叙事层:
- CLAUDE.md 140→67:三段开发流程/批次清单/分支纪律/两入口与MC细则/像素纪律全部降级出主文件;红线压成一行一条祈使句+指路;呈报六问压缩为单条索引行
- 新增 process-conventions.md(86 行):三段流程表格化+批次清单 14 条+两入口/MC 触发/分级周期/MC 档位/闸机轮次细则+像素结构件纪律——批次开工时加载
- 新增 code-conventions-cases.md(55 行):全部反面案例+缺陷对照表迁入(不常驻加载);code-conventions 148→92 行纯规则
- doc-conventions 149→120:总纲收一行、论证段压括注、骨架与生命周期条款表格全保
- 规则名全保(两入口铁规/文档同步闸/MC 触发细则等外部按名引用零断链,已全仓扫描核实)
- 机械闸:七文件≤150 ✓ IMPORTANT=0 ✓ 日期残留=0 ✓ 主文件叙事残留=0 ✓ 熵增闸 PASS ✓ doc 两闸零波及 ✓
- 行为验证:全新上下文子代理六问导航 6/6 正确(新增流程/像素面全命中)
2026-10-15 15:38:16 +08:00

56 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 代码规范反面案例库(code-conventions 配套)
> 本文件是 `code-conventions.md` 各条规则对应的真实反例,说明每条规则针对什么缺陷;规则本体以规约为准,规约与本文冲突时以规约为准。不随规约常驻加载——写码前不必通读,对某条规则的适用有疑义时再查。
## 1.1 上帝对象
main.gd 曾长到 ~1100 行——棋盘渲染、HUD、结算日志格式化、四种模态覆盖层、调整板、模拟器、关卡流程全部内联;后拆分为 9 个单一职责单元(views/ + hud_presenter),main 回到 ~430 行组合根。
## 1.2 裸函数堆
供给控制器曾以裸函数伪代码呈现被否;正式实现按私有组合件 RewardSupplyController 封装。
## 1.4 ID 前缀命名
ID 前缀是跟随 GDD 文档名的事实约定,从未成文;`config_db`/`rng_service` 无前缀与 A/B/C 系列并存——两套命名并行即规范缺失。
## 1.4.1 文件头失守
main.gd 头注曾累积 42 行——历次提交各自追加「本批做了什么」而全部闸静默放行;删掉叙事后仍剩 31 行,约 2/3 是对 code-conventions §1.3 与 ADR-0001 的整段复制、场景结构/生命周期机制描述(对规约与代码零新信息)。
## 2.1 信号契约缺失(软锁)
旗动作花完末点 AP 后相位翻 Waiting 但不发 round_end,结算点依赖该事件 → 整局软锁;自动玩家不用旗,冒烟路径覆盖不全没抓住。
## 2.2 标识符语义错位
窗口选择契约 = 窗口条目位置,UI 却传库存数组句柄——未消耗时二者巧合相等;消耗一件后错位 → 选中件不消耗、邻件被误耗。
## 2.3 覆盖层不可达
数值调整板已实现,但打开时被不透明的开始覆盖层完全遮住 = "点击无反应"。功能存在 ≠ 功能可达。
## 2.4 状态字段语义隐式
spawn 把 hero 的 max_hp 设为入参 hero_hp——跨战斗携带 HP 时上限被压扁,恢复点/治疗包的满血守卫全部失效。
## 5.3 单尺度校准的关卡灾难
可选类 25% 格子配比在单战斗尺度校准(击杀需求 18/54),×"库存关内延续"× 5 张板复合后 = 每关 24.8 件、刀总伤 180 > Boss 130 HP——单尺度合理的参数在关卡尺度坐实灾难。
## 5.4 拍板范围外自行发挥
清图奖励被自行设计成入库刀,用户纠正为"一次性高额伤害不入库"。
## 缺陷-规范对照表
| 缺陷 | 现象 | 对应规则 |
|---|---|---|
| UI 抖动 / "第3轮"消失 | 悬停文案换行推挤侧栏,末行被挤出视口 | 1.1 拆分 + 视图定长槽 |
| Boss 战 AP 用完不结算(软锁) | 插旗耗尽末点 AP 后整局冻结 | 2.1 事件发射完整性 |
| 道具使用后不消失 | 选用件留存、邻件被误耗 | 2.2 标识符语义单一 |
| 调整板点击无反应 | 面板已实现但被开始层遮挡 | 2.3 层级规则 + test-conventions §2 |
| 上帝对象 | main.gd ~1100 行 | 1.1–1.3 |
| ID 前缀命名 | 两套命名并存 | 1.4–1.5 |
| 可选类每关 24.8 件 | 速杀退化、囤刀秒 Boss | 5.3 跨尺度推演 |