用 Codex 辅助迁移 Grafana 前端 React → Vue:HInsight 复盘 00

0 阅读4分钟

这篇先回答一个最直接的问题:

能不能用 Codex 辅助,把 Grafana 前端从 React 迁到 Vue?

我的答案是:可以,但不是一键迁移。

我基于 Grafana 开源能力体系迁移和改造出了现在的 HInsight。它已经进入真实生产场景使用,并不是几个页面的 demo。

但这件事真正有价值的地方,不是“AI 生成了多少代码”,而是:

AI 辅助编码工具如何被纳入复杂工程迁移的闭环。


1. 迁移范围不是几个页面

HInsight 的迁移范围包括前端和后端两部分。

前端侧,已经基本继承并适配了原有可观测系统的核心能力:

  • Dashboard
  • DataSource
  • Panel
  • Explore
  • 权限
  • 日志
  • 配置
  • 常用插件能力
  • packages 目录下的所有分包体系
  • UI 组件能力,尤其是 grafana-ui 相关能力

后端侧,也不是完全不动。

Go 后端代码、运行配置、工程结构、构建链路、demo 验证链路,都做了相应修改和适配。

所以这不是简单的:

React Component → Vue Component

而是一个成熟复杂系统的整体迁移。

运行图-Bar_gauge_01.png

运行图-TimeLine_01.png

运行图-cavas_01.png

运行图-Candlestick_01.png

运行图_Pipeline_01.png

运行图_AI助手_01.png


2. 为什么这件事难?

从零开发时,可以自己定义边界。

但迁移 Grafana 这类成熟系统时,真正难的是:

不能破坏原有行为。

Dashboard 要能跑。
Panel 要能渲染。
DataSource 要能查询。
Explore 要能用。
权限和日志不能断。
packages 体系不能散。
UI 组件能力要能承接。
后端运行配置和前端构建链路要能闭合。

这就是它和普通 demo 的区别。


3. Codex 不能直接放开干

我在迁移过程中主要使用 Codex。

但真实体验是:Codex 不能直接放开干。

当时经常遇到:

  • 长任务跑偏;
  • 上下文丢失;
  • 掉线后接不上;
  • 新会话需要重新建立背景;
  • 为了尽快完成选择短平快方案;
  • 修改范围扩大;
  • 页面实际运行和汇报不一致;
  • 花很久修一个问题,最后回到原点。

所以我后来不再让它直接执行大任务,而是先把任务纳入流程。


4. 后来形成的 AI 工程闭环

我最终形成的流程是:

微信公众号_02.png

这套流程的核心是:

不是让 AI 自由发挥,而是把 AI 纳入工程闭环。


5. 其中最关键的是差异表和验收标准

验收标准

必须先定义什么叫完成。

例如:

  • 是否构建通过;
  • 是否 typecheck 通过;
  • 是否单测通过;
  • 是否 e2e 通过;
  • 目标页面是否可用;
  • 核心交互是否一致;
  • 是否允许改接口;
  • 是否允许引入新依赖。

如果不定义验收标准,AI 很容易给出一个“看起来完成”的结果。

差异表

差异表用于记录:

  • 当前实现是什么;
  • 目标实现是什么;
  • 差异在哪里;
  • 哪些文件需要改;
  • 哪些逻辑必须保留;
  • 哪些风险需要注意。

差异表能防止 AI 一开始方向偏了,后面越改越远。


6. 方法论不绑定 Codex

这篇文章提 Codex,是因为 HInsight 迁移过程中我主要使用的是 Codex。

但这个方法论不只适用于 Codex。

Claude Code、Cursor、Copilot,以及未来其他 AI 辅助编码工具,只要进入复杂工程,都会遇到类似问题:

上下文保持
任务拆分
边界控制
自动化测试
人工验收
中断交接
经验沉淀

所以我真正关注的是:

AI coding agent 如何参与复杂工程交付。


7. 后续会继续写什么?

后续这个系列会继续展开:

  • Grafana 能力体系到 HInsight 的迁移;
  • React → Vue 的具体迁移规则;
  • packages 分包体系和 grafana-ui 相关能力;
  • Go 后端和运行配置;
  • Dashboard / DataSource / Panel / Explore;
  • Codex 跑偏和返工案例;
  • 差异表和交接书模板;
  • 本地记忆机制;
  • e2e 测试血泪史;
  • HInsight Core 开放核心版本。

HInsight Core 后续会整理为开放核心项目,预计包含:

  • Go 后端;
  • Vue 前端;
  • 核心 packages;
  • Docker demo;
  • 模拟数据源;
  • 示例 dashboard。

但不会包含真实生产数据、客户信息、现场接口、控制策略、内部算法和生产部署配置。


小结

能不能用 Codex 辅助迁移 Grafana 前端 React → Vue?

我的结论是:

能,但前提不是“让 AI 一键完成”,而是把 AI 纳入可控工程闭环。

这也是 HInsight 后续复盘的主线。