用途:该工作流用于重构已存在的代码库,核心目标是行为保持——重构前后可观察行为必须一致,包括既有测试全部通过、API 契约不变、副作用不变、性能在可接受范围内。它不用于新增功能;需要改变行为时应先修改 SPEC。
主要能力:围绕 ANALYZE-PRESERVE-IMPROVE 循环展开。ANALYZE 阶段识别领域边界、分析模块依赖与数据流,计算耦合内聚指标(如传入耦合 Ca、传出耦合 Ce、不稳定性 I、抽象度 A、距主序列距离),并用 AST-grep 识别上帝类、特性依恋、长参数列表、重复代码等结构问题。PRESERVE 阶段建立安全网:编写刻画测试(命名如 testcharacterize[component]_[scenario])、生成行为快照(API 响应、序列化输出、状态转换、错误信息),并验证既有测试 100% 通过、覆盖达标、无脆弱测试。IMPROVE 阶段以最小增量做结构变更,每次变更后跑全量测试,失败立即回滚,通过则提交;支持提取方法、提取类、移动方法、内联、重命名等安全重构模式,并借助 AST-grep 做语义感知的多文件改写。
使用方式:依据 .moai/config/sections/quality.yaml 中的 development_mode 选择。development_mode 为 ddd 时始终使用;为 hybrid 且重构既有代码时使用;为 hybrid 且新建包/模块时应改用 TDD 工作流。通过 moai:2-run 在 DDD 模式下执行,流程为初始评估、分析、保持、改进、验证与完成五步;复杂重构可用循环模式,按范围设定最大迭代次数,每次聚焦一个重构目标。
适用场景:有测试的遗留代码重构、不改变功能的结构改进、生产系统技术债削减、API 迁移与废弃处理、代码现代化。绿地项目可适配该循环(分析需求、用规格测试定义预期行为、实现代码满足测试),此时它是 TDD 的超集。
限制:行为变更需求不适用;无既有代码时需走适配流程。资料未提供具体安装命令、收费与平台信息。