微服务重构是后端开发中最复杂的任务之一——代码量大、业务逻辑复杂、风险高。2026年我们用 AI 编程工具(Claude Code + Cursor)完成了投递系统从 PHP 到 Go 的微服务重构,效率比纯人工提升了 3 倍。今天把完整实践分享出来。

一、项目背景

投递系统是招聘平台的核心业务,负责职位投递、简历处理、状态流转、通知推送。原系统是 PHP 单体,随着业务增长遇到了瓶颈:

  • 性能瓶颈:核心接口 QPS 到 800 就扛不住,P99 延迟 120ms
  • 维护困难:PHP 代码耦合严重,改一个功能影响一片
  • 人才断层:PHP 开发者越来越少,招人难
  • 扩展性差:单体架构无法独立扩展,高峰期整个系统都慢

重构目标:

  • 从 PHP 单体迁移到 Go 微服务
  • 核心接口 QPS 从 800 提升到 5000+
  • P99 延迟从 120ms 降到 15ms
  • 保持业务逻辑不变,用户无感知
  • 灰度上线,可回滚

二、AI 工具选型

重构过程中用了两个 AI 工具,各有分工:

工具用途优势场景
Claude Code终端里的 AI 编程助手,复杂重构、批量修改、脚本编写后端代码迁移、批量重构、命令行操作
CursorAI 原生 IDE,多文件编辑、代码理解、UI 操作多文件新功能开发、代码审查、界面操作

分工策略

  • 理解代码和规划:Cursor(看代码方便,多文件对比)
  • 批量迁移和重构:Claude Code(终端操作快,批量处理强)
  • 新功能开发:Cursor(Composer 多文件编辑)
  • 测试和脚本:Claude Code(写测试、写迁移脚本)
  • Bug 修复和调试:都可以,看个人习惯

两个工具配合使用,比只用一个效率高很多。

三、重构工作流

阶段1:理解和规划(AI 辅助)

第一步:AI 理解旧代码

用 Cursor 打开 PHP 项目,让 AI 分析代码结构:

@12345c.....odeRedisPHRPabbitMQ

AI 会分析整个项目,输出结构化的报告。这一步人工做可能要 2-3 天,AI 辅助 2-3 小时就够了。

第二步:AI 生成迁移方案

基于分析报告,让 AI 生成迁移方案:

123456......线gRPGCoprot@o/docs/resume-service-migration.md

AI 生成方案后,人工 review 和调整,确认后进入实施。

第三步:搭建项目骨架

用 Claude Code 搭建 Go 项目骨架:

1234567.......--------GciiiiicsMD.imnnnnnocaogGndtttttnrvkcioh/eeeeefiiekt+arrrrrippfeinnnnnngteirgGdaaaaassrlfnOllllll/eioRe////lrMrhsrpmeeaeeri+nrpoddvotdzbgslisolaudRReeci/epioEPrretwlcACv//ogadkDirRr/eMcHyPetrEeT/C/e-TscPtmr访lpeiopnsotes/.igytemonlry

Claude Code 会自动创建所有文件和目录,几分钟搭好项目骨架。

阶段2:逐模块迁移(AI 主力)

按模块逐个迁移,每个模块的流程:

第一步:AI 理解 PHP 代码

@/old/apply/controller/ApplyController.phpPHP

第二步:AI 生成 Go 代码

1234567.......@/PGiHOnPRztMaepvranlaild/rasGeteoqorurveissceter_/vSiriQdecLseume_service.go

AI 生成代码后,人工 review:

  • 业务逻辑是否一致
  • 有没有边界条件没处理
  • 错误处理是否正确
  • 性能有没有问题(如 N+1 查询)

第三步:AI 生成测试

123456......@/inmttoeecsrktnei8arf0lyy%/smeorcvkicree/paopspiltyo_rsyervice.go

AI 写测试比人快很多,而且覆盖更全。但要注意 review 测试逻辑——AI 有时会写"放水"的测试(断言太松或 mock 不对)。

第四步:运行测试和修复

gotest/internal/service/v

Claude Code 可以自动运行测试、分析失败原因、修复代码,循环直到测试通过。

阶段3:集成和验证(AI 辅助)

接口对比测试

写一个对比测试工具,同时调用旧 PHP 接口和新 Go 接口,对比返回结果是否一致:

12345.....JSPOHNPGoID

用这个工具跑几千个请求,确保新旧接口行为一致。不一致的地方 AI 辅助分析原因。

性能测试

1234....QPPHSPP5h0e/GyPo95/wPr9k9

压测发现性能问题,AI 辅助分析和优化:

pprPo9f950ms15ms

阶段4:灰度上线(AI 辅助)

灰度策略

  1. 双写:写流量同时写 PHP 和 Go,读流量走 PHP
  2. 数据对比:对比两边的数据,确保一致
  3. 读流量灰度:按用户 ID 灰度,1% → 10% → 50% → 100%
  4. 监控:实时监控错误率、延迟、业务指标
  5. 回滚:有问题立即切回 PHP

AI 辅助写灰度脚本、监控面板、回滚脚本。

四、AI 在各环节的效率提升

环节纯人工耗时AI 辅助耗时提升
代码理解和分析3天3小时8倍
迁移方案设计2天4小时4倍
项目骨架搭建1天10分钟48倍
单模块代码迁移2天4小时4倍
单元测试编写1天2小时4倍
Bug 修复4小时/个30分钟/个8倍
性能分析优化2天4小时4倍
脚本工具编写1天2小时4倍
整体约30人天约10人天3倍

AI 辅助下,整个重构从 30 人天缩短到 10 人天,效率提升 3 倍。而且代码质量更高(测试更全、规范更统一)。

五、AI 辅助重构的最佳实践

1. 先理解再迁移

不要让 AI 直接"把 PHP 翻译成 Go",要先让 AI 理解业务逻辑,再基于理解生成 Go 代码。直接翻译会保留 PHP 的写法和坏味道,不是地道的 Go 代码。

2. 小步快跑,逐模块迁移

不要一次迁移整个系统,拆成小模块,每个模块:

  1. AI 理解旧代码
  2. AI 生成新代码
  3. 人工 review
  4. AI 生成测试
  5. 运行测试验证
  6. 集成测试

每个模块可独立验证、独立回滚,风险可控。

3. 人工 review 不能省

AI 生成的代码可能有问题:

  • 业务逻辑理解错误
  • 边界条件没处理
  • 性能问题(N+1 查询、内存泄漏)
  • 安全问题(SQL 注入、权限绕过)
  • 测试"放水"(断言太松)

特别是业务逻辑,AI 可能理解偏差,必须人工仔细 review。

4. 测试是安全网

重构前先有测试(旧系统的集成测试),重构后跑测试,确保行为一致。AI 写测试快,但要 review 测试逻辑。

5. 用 AI 做重复劳动

AI 擅长重复劳动:

  • 批量代码转换
  • 写 CRUD 代码
  • 写单元测试
  • 写脚本工具
  • 代码格式化和规范化

人专注于:

  • 架构设计
  • 业务逻辑理解
  • 代码 review
  • 性能优化
  • 风险决策

6. 保留旧代码,灰度切换

重构期间新旧代码并存,灰度切换,不要一上来就删旧代码。有问题随时回滚。

六、踩坑经验

  1. AI 直接翻译代码:一开始让 AI"把 PHP 翻译成 Go",结果生成的代码充满 PHP 味道(如用数组代替结构体、全局变量),不是地道的 Go。要先让 AI 理解逻辑,再用 Go 的方式重写
  2. 业务逻辑理解偏差:AI 有时会误解业务逻辑(特别是隐含的规则),生成的代码看起来对但行为不对。一定要有对比测试,新旧接口结果对比
  3. 测试"放水":AI 写的测试有时断言太松(如只检查不报错,不检查返回值),测试通过但实际没验证逻辑。测试代码也要人工 review
  4. 一次迁移太多:一开始想一次迁移整个模块,结果代码量大、问题多、难以定位。拆成小函数/小接口,逐个迁移,逐个验证
  5. 忽略性能问题:AI 生成的代码功能对但性能差(如 N+1 查询、循环里查数据库)。要做性能测试,AI 辅助分析和优化
  6. 不保留旧代码:重构时急于删旧代码,结果新代码有问题想回滚都回滚不了。新旧代码并存,全量稳定运行一周后再删旧代码
  7. AI 生成的代码风格不统一:不同时间让 AI 生成代码,风格可能不一致(如错误处理方式、命名风格)。用 .cursorrules 统一规范,AI 生成的代码风格一致
  8. 过度依赖 AI:有人觉得"AI 生成的就一定对",不 review 直接合并,结果出 Bug。AI 是助手不是替代,代码必须人工 review

七、总结

AI 辅助微服务重构核心:

  1. 工具配合是关键:Claude Code(终端/批量/脚本)+ Cursor(多文件/理解/UI),各有分工,配合使用效率最高
  2. 先理解再迁移:不要直接翻译,先让 AI 理解业务逻辑,再用目标语言的地道方式重写
  3. 小步快跑是原则:逐模块/逐接口迁移,每个可独立验证、独立回滚,风险可控
  4. 人工 review 是底线:AI 生成的代码必须人工 review,特别是业务逻辑、性能、安全,AI 可能出错
  5. 测试是安全网:重构前有测试,重构后跑测试,对比新旧接口结果,确保行为一致
  6. AI 做重复劳动:批量转换、CRUD、测试、脚本让 AI 做,人专注架构、业务、review、优化
  7. 灰度上线是保障:新旧并存,双写验证,灰度切流量,有问题随时回滚
  8. 效率提升 3 倍是真实的:我们的实践证明,AI 辅助下重构效率提升 3 倍,代码质量更高(测试更全)

AI 编程工具不是要替代开发者,而是要把开发者从重复劳动中解放出来,专注于更有价值的架构设计和业务决策。微服务重构这种复杂任务,AI 能大幅提升效率,但人的判断力和经验仍然不可替代。AI 负责"做",人负责"决策"和"审查",这才是 AI 辅助研发的正确姿势。