🧨 一次『差点被换人』的重构任务
3 月初,组长突然把我拉进会议室:
“老支付模块太老了,业务要共用,2 周内搞成 SDK。别拖。”
我脑子嗡了一下:这个模块我之前接触过,结构巨乱:
- 主类
PayProcessor.java超过 3000 行 - 充满硬编码的 if-else
- 无测试、无注释、无文档
- 加一个支付渠道得动 7 个地方
我一度怀疑是不是在「找背锅侠」。直到后面组长私聊说:
“如果你搞不定,我只能换人了。”
我当时压力山大,但同时脑中闪过一个想法:
也许,这一次该用 AI 打一场硬仗。
🎯 目标拆解
PM 的 KPI:
"2 周搞定 + 交付稳定 + 易扩展 + 可测试"
我进一步拆解为:
| 目标 | 评估标准 |
|---|---|
| SDK 化 | 业务线可独立接入 |
| 插件化架构 | 支持动态注册支付通道 |
| 稳定性 | >= 85% 单元测试覆盖 |
| 提效 | 1 人干完 5 人量(没资源) |
💡 技术方案:用 AI 带路,我负责判断
传统搞法太慢,于是我大胆制定如下路线图:
📍Phase 1: 用 Cursor 总结旧逻辑结构
📍Phase 2: 让 GPT 设计插件架构草图
📍Phase 3: 用 AI + 手动协作重写主流程
📍Phase 4: 补测 + 压测 + 替换上线
下面详细拆解。
🧱 Phase 1:用 Cursor 快速理解旧模块结构
我对着 3000 行 PayProcessor.java,一行一行读根本读不动。
用 Cursor 直接输入:
"Summarize the architecture of PayProcessor.java"
输出让我惊了:
模块职责:
- 初始化支付配置
- 根据条件路由支付方式
- 分发回调
- 记录支付日志
甚至帮我标出 switch-case 嵌套 5 层的代码片段位置。
理解成本直接减少 80%。
🏗️ Phase 2:架构设计靠 GPT 给草图,我来 refine
我给 GPT 发了个 prompt:
请设计一个插件化的支付架构:
- 不同支付方式支持独立注册
- SDK 暴露统一调度器
- 每个支付方式封装成策略类
- 要可插拔、易测试
它回复了典型策略模式 + 注册表方案:
interface PaymentPlugin {
fun supports(type: String): Boolean
fun pay(req: PaymentRequest): Result
}
object PluginRegistry {
private val plugins = mutableListOf<PaymentPlugin>()
fun register(p: PaymentPlugin) { plugins += p }
fun resolve(type: String): PaymentPlugin = ...
}
我补上:
- 生命周期管理
- 回调中间件注入点
- 可测试性注解(使用 Hilt 注入)
再用 Cursor 在项目中自动生成插件类模版。
🔨 Phase 3:AI 协作式重构核心逻辑
这个阶段最耗时。以下是我用的 Prompt 迭代:
🎯 Prompt v1(失败)
请帮我把下面的 if-else 重构成策略类。
输出了基本结构,但命名、抽象都太通用。
✅ Prompt v3(最终版)
你是 Android 架构专家。请将以下支付判断逻辑:
- 重构为策略模式
- 每种支付方式是独立 Handler 类
- 要含日志记录点
- 保证接口不变、变量命名一致
- 生成的类应符合 Kotlin 命名风格
生成代码如下:
class WeChatHandler: PaymentHandler { override fun handle(...) }
class AliPayHandler: PaymentHandler { override fun handle(...) }
使用 Cursor,我只需要选中旧代码、输入提示,几乎一键替换。
最终重构了 11 个逻辑分支,拆出 14 个策略类,全部插入注册表。
🔍 Phase 4:补测 + 性能压测 + 结果对比
我重写了测试框架,用 JUnit5 + MockK 模拟所有支付回调路径。
构建覆盖率工具:jacoco.gradle + coverage 报表分析脚本。
性能对比结果如下:
| 指标 | 重构前 | 重构后 |
|---|---|---|
| 平均响应耗时 | 118ms | 104ms |
| 测试覆盖率 | 43.5% | 91.2% |
| 新增支付方式改动文件数 | 7 | 1 |
(见文末图示 👇)
上线当天无 bug,上线后一周无异常日志。组长拍着我肩膀说:
“你现在是组里的 GPT 指导员了。”
🧠 成果总结 & 可复刻清单
本次我产出如下成果:
- ✅ 插件化支付 SDK 架构(可复用)
- ✅ Prompt 模板 3 套(重构、注释生成、测试生成)
- ✅ 单元测试覆盖率 90%+
- ✅ 高能复刻清单(见下)
🚀 复刻指南(建议收藏)
| 步骤 | 工具 | 要点 |
|---|---|---|
| 1. 用 Cursor 提取代码结构 | Cursor | 总结模块边界、职责分布 |
| 2. 构建初版架构草图 | ChatGPT | 结合策略模式、注册表 |
| 3. 多轮 refine 重构逻辑 | GPT + 人工 | 命名规范、兼容性判断 |
| 4. 自动化测试覆盖 | JUnit + Jacoco | 报表、Mock、路径覆盖 |
❤️ 如果你也在做 Android 模块重构
别怕代码多、逻辑烂,只要方法对、工具用得好,AI 真的能救你一命。
别让 AI 写你不理解的代码,而要让它成为你思想的放大器。
欢迎留言交流,点赞 + 收藏 + 三连支持!我们评论区见 💬