副标题 / 摘要
当你在 AI 辅助开发中做迁移时,最容易踩的坑不是“写不出代码”,而是“把对齐和优化混在同一轮里”。本文给出一套可执行流程:先冻结参考基线,先完成行为等价迁移,再在独立波次做行为改造。中途新想法只记账,不插队。
目标读者
- 正在做历史分支迁移、模块重构、流程管线化的后端工程师
- 频繁与 AI 协作,想降低返工率与评审噪音的团队
- 负责主线稳定性,需要高可回滚交付节奏的技术负责人
背景 / 动机
很多团队在迁移时会同时做三件事:
- 对齐参考分支。
- 顺手优化流程设计。
- 修复中途发现的问题。
结果通常是:提交语义混乱、评审困难、出问题时无法快速定位根因。
问题不在“能力不够”,而在“工作流没有控制变量”。
核心概念
1. 双阶段改造模型
- 阶段 A:行为等价迁移(Move)
- 目标是“和参考基线行为一致”,不是“更优雅”。
- 阶段 B:行为改造优化(Change)
- 目标是“在可用基线之上提升设计质量”。
2. 任务记账机制
中途发现额外改动点,不打断当前主任务:
- 记录到
task ledger(任务清单)。 - 标注优先级、影响面、建议分支。
- 当前波次只做与目标直接相关的改动。
3. 工作区隔离机制
- 主任务在当前分支推进。
- 插件优化、实验性改造在独立 worktree/分支完成。
- 避免“一个工作区混杂多类语义变更”。
实践指南 / 步骤
Step 1:冻结参考分支
记录参考分支 commit hash,作为迁移锚点。
git rev-parse task/feat/20260305-upload-entity-extract-pipeline
# 输出示例:a1b2c3d4...
规则:后续不再直接改这个参考分支,任何新想法开新分支。
Step 2:只做行为等价迁移
定义本轮完成标准:
- 接口契约不变。
- 关键行为不变。
- 可编译、可启动、最小 smoke 通过。
禁止事项:流程重排、命名体系重构、附带性能优化。
Step 3:打“基线锚点提交”
迁移完成后立即提交,提交信息只描述“等价迁移完成”。
git add -A
git commit -m "refactor: 完成上传实体抽取链路的行为等价迁移基线"
这个提交是后续所有改造的回滚点与对照点。
Step 4:把中途发现的问题记账
使用简单模板记录,不在本轮插队:
[Backlog]
- topic: document_processing 独立 workflow
- reason: 当前埋在 document_prepare 内,观测粒度不足
- risk: 中等
- next_branch: feat/workflow-step-split
Step 5:在独立分支做行为改造
git switch -c feat/workflow-step-split
git worktree add ../repo-workflow-split feat/workflow-step-split
在这轮里单独处理:document_prepare / document_processing / asset_extract 等步骤语义拆分。
Step 6:独立验证改造波次
验证维度与迁移波次分离:
- 新增行为是否符合设计目标
- 兼容性是否保持
- 观测与状态是否更清晰
Step 7:按语义分批提交
- 提交 1:结构拆分(无行为改动)
- 提交 2:行为改造(有契约变化)
- 提交 3:文档与运维说明
可运行示例:最小流程脚本
# 1) 冻结参考锚点
ANCHOR=$(git rev-parse task/feat/20260305-upload-entity-extract-pipeline)
echo "anchor=$ANCHOR"
# 2) 当前分支只做等价迁移
# ...修改代码...
# 3) 形成基线锚点提交
git add -A
git commit -m "refactor: 行为等价迁移基线"
# 4) 开下一波改造分支
git switch -c feat/workflow-behavior-change
解释与原理
这套方法本质是三条工程原则:
- Make it work, then make it right, then make it better.
- Separate move from change.
- Small, reversible commits.
它不是保守,而是更快的高质量交付:
- 评审方能快速理解每个提交在改什么。
- 出问题时能在“迁移问题 vs 改造问题”之间秒级分层。
- 回滚不需要牵连整条链路。
常见问题与注意事项
Q1:中途发现明显坏味道,为什么不顺手改?
因为这会污染当前波次语义。正确做法是记账,进入下一波改造。
Q2:这样会不会变慢?
单轮看似慢,整体更快。你减少了返工、沟通和回滚成本。
Q3:什么时候可以合并两波?
只有在影响面极小、可验证性极高、并且团队明确同意时才考虑合并。
最佳实践清单
- 每一轮只允许一种变更语义。
- 每轮结束必须有可验证“done_when”。
- 中途发现的问题只记账不插队。
- 所有架构改造放到独立分支/worktree。
- 提交信息写“变更类型 + 影响对象 + 结果状态”。
小结 / 结论
面对 AI 协作开发,真正的效率不是“改得多快”,而是“每一轮改动是否可解释、可验证、可回滚”。
先等价迁移,再行为改造,是复杂系统持续演进时最稳、也最可复制的工作流。
行动号召(CTA)
下一个迁移任务,直接套用这三个动作开始:
- 先记参考锚点 hash。
- 本轮只做行为等价对齐。
- 新想法全部记账,下一波独立改造。