我如何用 AI 处理历史遗留代码:MiniMax M2.1 升级体验
一、
最近,我写了好几篇 AI 教程,就收到留言,要我谈谈我自己的 AI 编程。
今天就来分享我的 AI 编程,也就是大家说的"氛围编程"(vibe coding)。
![]()
声明一下,我只是 AI 初级用户,不是高手。除了不想藏私,更多是为了抛砖引玉,跟大家交流。
二、
平时,我很少用 AI 生成新项目。因为每次看 AI 产出的代码,我总觉得那是别人的代码,不是我的。
如果整个项目都用 AI 生成,潜意识里,我感觉不到那是自己的项目。我的习惯是,更愿意自己写新项目的主体代码。
我主要把 AI 用在别人的项目和历史遗留代码,这可以避免读懂他人代码的巨大时间成本。
就拿历史遗留代码为例,(1)很多时候没有足够的文档,也没有作者的说明,(2)技术栈和工具库都过时了,读懂代码还要翻找以前的标准,(3)最极端的情况下,只有构建产物,没有源代码,根本无法着手。
AI 简直就是这类代码的救星,再古老的代码,它都能读懂和修改,甚至还能对构建产物进行逆向工程。
下面就是我怎么用 AI 处理历史遗留代码,平时我基本就是这样来 AI 编程。
三、
我的 AI 编程工具是 Claude Code。因为命令行对我更方便,也容易跟其他工具集成。
我使用的 AI 模型,大部分时间是国产的 MiniMax M2。我测过它的功能,相当不错,能够满足需要,它的排名也很靠前。
![]()
另外,它有包月价(29元人民币),属于最便宜的编程模型之一,可以放心大量使用,反复试错。要是改用大家都趋之若鹜的 Claude 系列模型,20美元的 Pro 套餐不够用,200美元的 Max 套餐又太贵。
MiniMax 接入 Claude Code 的方法,参考我的这篇教程。
四、
就在我写这篇文章的时候,MiniMax 本周进行了一次大升级,M2 模型升级到了 M2.1。
![]()
因为跟自己相关,我特别关注这次升级。
根据官方的发布声明,这次升级特别加强了"多语言编程能力",对于常用编程语言(Rust、Java、Golang、C++、Kotlin、Objective-C、TypeScript、JavaScript 等)有专门强化。
它的 WebDev 与 AppDev 开发能力因此有大幅提升,可以用来开发复杂的 Web 应用和 Android/iOS 的原生 App。
"在软件工程相关场景的核心榜单上,MiniMax M2.1 相比于 M2 有了显著的提升,尤其是在多语言场景上,超过 Claude Sonnet 4.5 和 Gemini 3 Pro,并接近 Claude Opus 4.5。"
根据上面这段介绍,它的编程能力,超出或接近了国外旗舰模型。
这个模型已经上线了,现在就能用。那么,这篇文章正好测一下,官方的介绍是否准确,它的 Web 开发能力到底有没有变强。
至于价格,跟原来一样。但是,官方表示"响应速度显著提升,Token 消耗明显下降",也算变相降价了。
M2.1 接入 Claude Code,我的参数如下。
![]()
五、
我这次选择的历史遗留项目是 wechat-format,一个 Web 应用,将 Markdown 文本转为微信公众号的样式。
![]()
上图左侧的文本框输入 Markdown 文本,右侧立刻显示自动渲染的结果,可以直接复制到微信公众号的编辑器。
它非常好用,大家可以去试试看。我的公众号现在就用它做排版,效果不错(下图)。
![]()
问题是,原作者六年前就放弃了,这个项目不再更新了。我看过源码,它用的是老版本的 Vue.js 和 CodeMirror 编辑器,没有任何文档和说明,还经过了编译工具的处理,注释都删掉了。
如果不熟悉它的技术栈,想要修改这些代码是很困难的,可能要投入大量时间。
那么废话少说,直接让 AI 上场,把这些代码交给 MiniMax M2.1 模型。
六、
接手老项目的第一步,是对项目进行一个总体的了解。
我首先会让 AI 生成项目概述。大家可以跟着一起做,跟我的结果相对照。
# 克隆代码库 $ git clone git@github.com:ruanyf/wechat-format.git # 进入项目目录 $ cd wechat-format # 启动 Claude Code $ claude-minimax
上面的claude-minimax是我的自定义命令,用来在 Claude Code 里面调用 MiniMax 模型(参见教程)。
输入"生成这个仓库的概述"。
![]()
AI 很快就给出了详细说明,包括项目的总体介绍、核心功能、技术栈和文件结构(下图)。
![]()
有了总体了解以后,我会让 AI 解释主要脚本文件的代码。
【提示词】解释 index.html 文件的代码
![]()
它会给出代码结构和页面布局(上图),然后是 JS 脚本加载顺序和 Vue 应用逻辑,甚至包括了流程图(下图),这可是我没想到的。
![]()
![]()
做完这一步,代码库的大致情况应该就相当了解了,而 AI 花费的时间不到一分钟。
七、
既然这个模型号称有"多语言编程能力",我就让它把项目语言从 JavaScript 改成 TypeScript。
对于很多老项目来说,这也是常见需求,难度不低。
![]()
它先制定了迁移计划,然后生成了 tsconfig.json 和 types.d.ts,并逐个将 JS 文件转为对应的 TS 文件(下图)。
![]()
修改完成后,它试着运行这个应用,发现有报错(下图),于是又逐个解决错误。
![]()
最终,迁移完成,它给出了任务总结(下图)。
![]()
我在浏览器运行这个应用,遇到了两个报错:CodeMirror 和 FuriganaMD 未定义。
我把报错信息提交给模型,它很快修改了代码,这次就顺利在浏览器跑起来了。
至此,这个多年前的 JavaScript 应用就成功改成了 TypeScript 应用,并且所有内部对象都有了完整的类型定义。
你还可以接着添加单元测试,这里就省略了。
八、
简单的测试就到此为止,我目前的 AI 编程大概就到这个程度,用 AI 来解释和修改代码。我也建议大家,以后遇到历史遗留代码,一律先交给 AI。
虽然这个测试比较简单,不足以考验 MiniMax M2.1 的能力上限,但如果人工来做上面这些事情,可能一个工作日还搞不定,但是它只需要十几分钟。
总体上,我对它的表现比较满意。大家都看到了,我的提示词很简单,就是一句话,但是它正确理解了意图,如果一次没有成功,最多再修改一两次就正确了。
而且,就像发布说明说的一样,它运行速度很快,思考过程和生成过程最多也就两三分钟,不像有的模型要等很久。
另外,不管什么操作,它都会给出详细的讲解和代码注释。
总之,就我测试的情况来看,这个模型的 Web 开发能力确实很不错,可以用于实际工作。
最后,说一点题外话。著名开发者 Simon Willison 最近说,评测大模型越来越困难,"我识别不出两个模型之间的实质性差异",因为主流的新模型都已经足够强大,足以解决常见任务,只有不断升级评测的难度,才能测出它们的强弱。
这意味着,对于普通程序员的常见编程任务,不同模型不会构成重大差异,没必要迷信国外的旗舰模型,国产模型就很好用。
(完)
文档信息
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
- 发表日期: 2025年12月23日