SuperAPI AI 工具集

refactor-module

部署与运维

查看项目

更新于 10-15 08:18

技能介绍

用途

该技能面向已掌握 Terraform 语法的使用者,帮助判断何时应将内联 Terraform 代码抽取为可复用模块、如何确定模块边界,以及模块化后如何安全迁移状态。它不讲解 Terraform 基础语法,而是聚焦“何时模块化、何时保持内联”的决策。

主要能力

  • 提供核心决策树:按使用次数、配置相似度、团队归属、合规要求等条件判断是否模块化。
  • 给出抽取前的战略检查表,包括使用次数、相似度、变更频率、测试覆盖率、消费者数量等阈值。
  • 识别并纠正常见反模式:泄漏抽象、状态迁移陷阱、模块版本地狱。
  • 提供模块边界划分原则:按生命周期、团队归属划分较好;按技术类型、资源类型划分较差。
  • 提供重构检查清单,涵盖确认使用次数、比较配置差异、设计意图接口、备份状态、逐资源迁移、验证计划等步骤。
  • 说明何时加载 references/error-recovery.md,以及何时不需要加载。

使用方式

技能以决策树和检查清单形式组织。使用者先根据“核心决策”判断是否模块化,再通过“抽取前战略检查”确认风险,然后按“重构检查清单”执行。关键操作包括:

  • 使用 grep 确认资源出现次数。
  • 使用 diff 比较不同使用处的配置相似度。
  • 围绕意图设计模块接口,而非直接暴露资源参数。
  • 执行 terraform state pull > backup.tfstate 备份状态。
  • 使用 terraform state mv <old-address> <new-address> 逐资源迁移。
  • 运行 terraform plan,必须显示 “No changes” 才能继续。

适用场景

  • 决定是否将 Terraform 代码抽取为可复用模块。
  • 确定模块边界。
  • 模块化后迁移状态。
  • 识别和修复泄漏抽象、状态迁移陷阱、模块版本地狱等问题。
  • 在合规或安全要求下需要统一执行点时立即模块化。

限制

  • 假设使用者已了解 Terraform 语法,不提供语法帮助。
  • 不适用于基础模块化决策之外的简单场景;单资源状态移动可直接使用重构检查清单。
  • 若状态迁移已应用并导致资源销毁重建,需加载 references/error-recovery.md。
  • 模块是否值得抽取的盈亏平衡点为:4 次以上相同使用 + 稳定 API + 合规需求。
  • 时间成本:简单模块约 2 小时;复杂模块含状态迁移约 2 天规划 + 4 小时执行。
  • 资料未提供具体收费、价格、平台或效果信息。