Files
obsidian-notes/InBox/OpenMole:坏味道驱动重构的工程化实践.md

3.9 KiB
Raw Permalink Blame History

source, title, author, date, url, tags
source title author date url tags
微信公众号「逸言」 OpenMole坏味道驱动重构的工程化实践 张逸少 2026-06-17 https://mp.weixin.qq.com/s/Whc0JYUHcwI5pPZwDNUCqw
重构
BDR
OpenMole
AI编程
SDD
坏味道

OpenMole坏味道驱动重构的工程化实践

核心概念BDRBad smells-Driven Refactoring

规约驱动开发SDD让业务规约成为 AI 研发的唯一事实源。BDR 是 SDD 在重构领域的等价物——把代码坏味道当作与 PRD 同级的事实源

BDR 铁律: 没有写进坏味道规约的重构,原则上不准做;识别出坏味道之后,也不允许跳过规约直接开改。

BDR 与 SDD 五步同构:

  1. 建立重构宪法Constitution——定义重构第一性原则、标准步骤和流程门禁
  2. AI 扫描代码库,将坏味道写成可验收的规约条目(badsmells.md
  3. 根据规约分解任务(tasks.md
  4. 通过分析环节(analysis.md)做差分检查
  5. 按标准步骤执行重构

OpenMole 框架

开源地址:https://github.com/agiledon/openmole

将 BDR 封装为跨平台 Agent Plugin 框架,通过 npm 包 openmole 分发。

安装: npm install -g openmole,然后在目标项目中执行 openmole init

支持的 IDE7种

IDE 表现形式
Cursor .cursor/skills/ + .cursor/commands/ + 用户级 symlink
OpenCode opencode.json 注册 .opencode/plugins/openmole.js
Claude Code 用户级 ~/.claude/plugins/local/openmole symlink
Codex 项目 plugins/openmole symlink + marketplace 注册
Gemini CLI .gemini/skills/.gemini/commands/
Kiro .kiro/skills/.kiro/commands/
Qoder .qoder/skills/.qoder/commands/

工作区结构:

openmole/
├── config.yaml       # current_change · installed_ides
└── changes/
  ├── <change-name>/
  │  ├── badsmells.md
  │  ├── tasks.md
  │  └── analysis.md
  └── archive/

五个阶段

  1. Exploremole:explore)——系统性地识别代码坏味道,按元规约格式写入 badsmells.md
  2. Planmole:plan)——将坏味道分解为可执行的重构任务,输出 tasks.md
  3. Verifymole:verify)——差分检查,确保规约与任务一致
  4. Applymole:apply)——按任务顺序逐项执行重构,每项经用户确认
  5. Archivemole:archive)——归档

实际验证roncoo-payJava 在线支付系统)

扫描发现 32 条坏味道,按类别:

  • 重复代码8条BaseController 4 份 90% 相同、ConfigUtil 6 份相同模式、枚举 5 份 copy-paste 等
  • 大型类和方法4条DateUtils 1486 行、God Class 1532 行承担 8+ 职责等
  • 耦合问题4条DAO 层越权、Spring Bean 绕过 DI 等
  • 异常处理4条:异常吞没返回 null、fail-silent、e.printStackTrace()
  • 不良实践7条public static 可变字段、SimpleDateFormat 线程不安全、sun.misc API 等
  • 面向对象问题3条:贫血领域模型、字段注入等
  • 安全问题2条MD5 密码哈希、敏感信息泄露

分解为 31 个重构任务,分 9 个阶段执行(从快速清理→异常修复→配置规范化→重复代码消除→大型重构→耦合修复→领域模型提升→安全加固→代码规范)。

核心价值

  1. 可审计——规约可查、任务可追、测试可验,不再是"AI 改完就忘"的黑箱
  2. 降认知负荷——面对陌生遗留代码库AI 自动完成扫描→识别→分解→验证,开发者只需决策和确认
  3. 可持续治理——change 机制支持定期发起新重构周期,小步迭代持续提升代码质量

"在 AI 时代,若没有一个和代码同权的规约层,'重构'最容易退化成不可审计的聊天。把坏味道上升为重构的'纲',让规约走在前面。"