- 对照实测范本(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 正确(新增流程/像素面全命中)
56 lines
3.0 KiB
Markdown
56 lines
3.0 KiB
Markdown
# 代码规范反面案例库(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 跨尺度推演 |
|