SuperAPI AI 工具集

rails-engine-extraction

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

用途:当需要把 Rails 应用中的既有代码移出并封装为 engine 时使用本技能。核心原则是增量抽取而非大爆炸式重写,先保持行为一致,再在迁移完成并验证后单独做设计改进。

硬性约束:不得在同一步骤中既抽取又改变行为;抽取必须保持现有行为,重构与优化放到迁移完成并验证之后的独立步骤。

主要步骤:识别有界功能(单一内聚职责);列出宿主依赖(模型、服务、配置);定义 engine 边界与宿主契约;先迁移稳定逻辑(PORO、服务、值对象),再处理控制器;为宿主拥有的依赖添加适配器或配置接缝;最后迁移控制器、路由、视图或任务;全程保持回归测试通过。

优先迁移:PORO 与服务、值对象、策略或查询对象、宿主耦合有限的 engine 本地模型。延后处理:对宿主应用模型的直接引用、认证集成、路由归属变更、资源与 UI 集成。

耦合策略:用配置值、适配器对象、服务接口、通知或回调替换硬编码的宿主依赖;若代码仍依赖大量宿主私有内部实现,则不要迁入 engine。例如引擎内通过 MyEngine.config.current_user_provider.call(request) 获取当前用户,宿主在初始化器中设置该 provider。

安全切片清单:单一内聚职责、最小新增公共 API、有测试证明宿主行为无回归、首次迁移后有明确的下一切片计划。

红旗信号:engine 直接依赖宿主模型而无配置或适配器;缺少增量迁移计划;行为变更与抽取混在同一提交;engine 引用大量宿主顶层常量;引入循环依赖;初始化顺序变得脆弱;dummy 应用通过但真实宿主契约仍为隐式。

输出风格:描述所抽取的边界、列出需抽象的宿主依赖、提出最小的安全首个切片、在迁移前后添加回归测试。可与 rails-engine-author、rails-engine-testing、refactor-safely 等技能衔接。具体安装命令、价格与平台支持资料中暂未提供。