docs/current/04-标准库与防线/TODO注释规范.md
GitHub ↗
当前有效

Vitro 代码内问题追踪规范

679 字·约 2 分钟 阅读 2026-10-10 17:07

最后核对:2026-10-04(全库逐份翻新复核——标签体系与 #DXX 编号约定未变,编号事实源《工程债务维护方案.md》持续在册。前一沿革 2026-09-11 前端切割后文档翻新)

目的

将隐形技术债务显式化,使维护者能快速定位已知待改进点、缺陷与临时 workaround。

注释标签

标签 含义 使用场景 示例
TODO(#<issue>): 已知待改进点 有明确改进方向但当前未实现 // TODO(#D08): 将此处 unwrap 替换为 Result 传播
FIXME(#<issue>): 已知缺陷 代码能运行但行为/边界有问题 // FIXME(#D14): 生产代码 unwrap 未清零,此处应改为 Result 传播以消除 panic 风险
HACK: 临时 workaround 为赶工期或绕过阻塞而采用的非理想方案 // HACK: 通过空字符串占位避免 None 分支,后续应改 Option
NOTE: 重要设计决策 非显而易见的实现选择,需要解释原因 // NOTE: 这里故意不用递归,避免深层嵌套栈溢出
SAFETY: unwrap/expect 合理性说明 对 clippy unwrap_used/expect_used 的豁免依据 // SAFETY: 前面已检查非空

编号约定

  • 优先使用现有债务编号(如 #D07、#D08)或 GitHub issue 编号。
  • 若无现成编号,可临时使用 #DXX 并在 工程债务维护方案.md 中追加。
  • 前端相关债务编号(D02/D06/D09)已随前端切割(2026-09-11)冻结,不再新增:这三项对应的 Dart/Flutter 代码已迁出本仓库(标签 before-frontend-split),编号保留在 工程债务维护方案.md 中备查,不得复用于新的 Rust 侧问题。

禁止行为

  • 禁止用 TODO/FIXME 标记掩盖真实缺陷而不跟踪。
  • 禁止过度标记(如每行都加 NOTE),应聚焦真正需要沟通的设计点。
  • 禁止删除他人的 TODO/FIXME 而不说明原因;修复后应在提交信息中引用。

统计与 review

TODO/FIXME/HACK 数量统计:原 engineering_health / lint_check.sh 两工具的对象(native/ Rust 侧、前端 Dart 段)均已退役,两脚本已随删区批删除;moonbit/ 活跃区的 TODO 趋势统计暂无专用工具(如实记录——待补),当前以 `grep -r "TODO(#DXX)" moonbit/ 人工抽查。

MoonBit 侧沿用同一标签集与 #DXX 编号(// TODO(#DXX): 形式);豁免依据标签对应 moon check / moon fmt 口径,新增活账目在工程债务维护方案登记。