
要说这两天AI圈最火的一条消息,莫过于MiniMax正式通过港交所聆讯,即将冲刺IPO。
而前段时间,MiniMax M2 刚在 OpenRouter 上拿下了“全球前五、开源第一”的成绩,GitHub 上的 Cline、Roo Code 等硬核开发社区都在热议这个来自中国的模型。就在大家还在回味 M2 的代码生成能力时,MiniMax 团队没有任何喘息,反手又把 M2.1 端到了我们面前,在正式发布之前,先在社群里面掀起了一波讨论和内测高潮。优快云也特别申请了内测资格,来个一手的评测体验。
说实话,时间走到 2025 年底,咱们开发者对 AI 的祛魅过程已经基本完成了。当最初那种生成个贪吃蛇、写个俄罗斯方块 Demo 的多巴胺刺激逐渐消退后,整个行业终于开始正视一个略显尴尬的现实:AI 写新代码容易,但想让它读懂并维护旧代码,真的很难。
在真实的软件工程世界里,我们 90% 的时间其实并非在从零创造什么惊天动地的算法,而是在与三年前(甚至三个月前)遗留的“屎山”搏斗。那些错综复杂的业务上下文、牵一发而动全身的架构债、莫名其妙的并发 Bug,以及前任开发者留下的“神之一手”,这才是资深工程师日常的主战场。
MiniMax M2.1 显然是瞄准了这一痛点。官方将核心能力押注在了多语言代码能力,在内测文档中我们了解到,M2.1在Multi- SWE-bench上表现优异,试图在“存量代码维护”这个让无数 AI 翻车的深水区开辟一条新赛道。
为了验证它到底是不是真有“资深维护工程师”的素养,这次测评我们决定玩点狠的。我们摒弃了那些常规的玩具级测试,专门构建了一个名为 LegacyShop 的电商后台项目。这个系统虽然表面上基于 React 与 TypeScript 的标准技术栈,但内里被我们刻意埋设了严重的性能陷阱、高度耦合的巨型模块以及基础设施配置的缺失。
这种“带病上线”的状态,主打一个完美复刻让无数开发者头疼的工程灾难现场。我们很好奇,面对这种顶级难度的“烂摊子”,M2.1 到底是会像普通 AI 那样胡言乱语,还是能真正拿出点工程级的解决方案?

优化细节直接让页面飞起
LegacyShop 的实时销售大屏模块,是我们设置的第一道关卡。
面对一个需要承载 5000 条高频更新数据的列表,前任开发者在 Dashboard.tsx 里留了个典型的大坑:简单粗暴地将所有 Mock 数据一次性映射为 DOM 节点。结果就是文档流里堆积了数千个带复杂内联样式的 div,页面卡得像幻灯片。
现状可谓惨烈:本地实测 LCP(最大内容绘制)高达 4.57 秒,这意味着用户打开页面后要盯着白屏发呆近 5 秒;CLS(累积布局偏移)高达 0.50,代表页面元素在渲染时像疯了一样乱跳,想点个按钮结果它自己跑了。更致命的是,由于 useEffect 里存在闭包陷阱,定时器从未被正确清除,浏览器内存占用曲线走出了一条惊悚的“上扬线”。

面对这种性能瓶颈,通用型助手通常会唯唯诺诺地建议“加个分页”这种避重就轻的方案。但 M2.1 拿到代码后,没有任何废话,直接祭出了 VirtualList(虚拟列表) 方案。

它通过精确计算可视窗口高度,引入 VirtualList 将页面承载的 DOM 节点从数千个瞬间压缩至几十个,从根本上解决了渲染阻塞;同时在处理隐蔽的内存泄漏时,模型表现得更为老练。它没有止步于简单补齐 clearInterval,而是巧妙地引入 useRef 挂载回调,这种高级技巧不仅完美规避了闭包陷阱,更避免了因依赖项抖动导致的定时器频繁重建。
甚至在指令之外,M2.1 还主动表现出了“代码洁癖”。它顺手对 TradeRow 子组件进行了深度清理,剥离冗余内联样式的同时包裹了 React.memo。这种防御性编程思维,把不必要的子组件重渲染压到了最低。
结果是直观且震撼的:LCP 从 4.57 秒暴跌至 0.16 秒,基本上鼠标刚松开页面就刷出来了,实现了真正的瞬开;CLS 直接归零,整个布局稳得像张静态图片。这种从代码底层运行机制出发的精准治理,证明 M2.1 在微观层面已经超越了简单的“翻译代码”,它懂的不仅仅是语法,而是代码在浏览器里到底是怎么跑的。


重构代码边拆屎山边把新功能做了
性能优化是为了用户体验,重构则是为了保住开发者的发际线。LegacyShop 的商品管理模块单文件超过 1600 行,业务逻辑和视图层缠绕得像一团乱麻,改动任何一行代码都可能导致整个页面崩溃。

这次考题堪称地狱难度。任务要求以资深架构师视角将庞大单体拆解为 MVC 模式,还得顺手加个按库存状态筛选的新功能。这不仅要构建完整的架构图,更要确保新功能逻辑能穿透数据层直达 UI。

M2.1 的操作相当老练。系统没有机械地按行数切割文件,而是玩起了 Type First 策略。先提取 TypeScript 类型定义,再把散落在各处的十余个状态收敛进自定义 Hook,最后才把 UI 剥离出去。这种先理清脉络再动刀子的方式,直接避开了重构最容易翻车的类型丢失坑。

最见功力的地方在于新增功能。库存筛选逻辑被自然地融进了数据流转中,而不是事后打上的补丁。这种一边重构地基一边加盖新房的能力,确实只有资深开发才具备。
视图层的细节也没掉链子。生成的 ProductFilter 子组件拒绝了偷懒的行内样式,选用了严谨的 CSS Modules 方案。文件头部显式定义了 Props 接口,彻底告别了 any 类型这种埋雷行为。

整个过程最让人惊喜的是自我纠错闭环。代码生成后,M2.1 并没有直接交差,而是主动跑了一遍 TypeScript 检查。发现类型匹配报错后,模型迅速定位文件并修正断言,直到检查全部通过。这种写代码、跑检查、修 Bug 的一条龙服务,像极了一位靠谱的独立开发者。

最终交付结果非常清爽,原本臃肿的入口文件变成了一行 Hook 调用。这波操作不仅还清了技术债,还留下了一套扩展性极强的架构。

帮裸奔的项目穿上防弹衣
如果将业务重构视为功能交付的表层升级,那么工程基础设施建设则是保障系统稳定性的底层防线。在 LegacyShop 项目中,这道防线几乎形同虚设:核心的登录组件缺乏测试覆盖,一旦修改极易引发回归问题;而陈旧的构建工具配置导致热更新(HMR)失效,每一次微小的样式调整都需要忍受漫长的手动刷新,开发体验堪比坐牢。
这一环节,我们决定对 M2.1 发起更高维度的挑战,要求其协助构建防御体系并优化开发环境。
在测试编写环节,我们将目光锁定于关键的 LoginPage 组件。不同于简单的静态展示页,这个组件包含了表单验证、异步接口请求与路由跳转等复杂交互。M2.1 并未产出那种仅校验 DOM 是否存在的“注水代码”,而是基于 React Testing Library 交付了一套完整的行为驱动测试用例。
它熟练运用 Jest Mock 模拟网络层响应,精准覆盖了用户提交空密码时的校验提示、服务端异常时的全局报错以及登录成功后的路由重定向。

值得一提的是,在编写测试的过程中,M2.1 展现出了 TDD(测试驱动开发) 的敏锐度。它发现原有业务代码中的中文报错提示与测试用例不符,于是竟然主动修改了 src/pages/Login/index.tsx 源码,将错误信息标准化为英文 "Password is required",从而确保了代码与测试的一致性。

随后,我们将矛头对准了失效的构建配置。面对被我们恶意破坏的 webpack.config.js,M2.1 展现出了精准的诊断能力。它迅速识别出 hot: false 和 liveReload: false 是导致热更新瘫痪的元凶,并顺手补回了丢失的 cacheDirectory 缓存配置与 CSS Modules 支持。
修复过程相当稳,M2.1 没有像某些愣头青 AI 那样上来就搞暴力覆盖,而是精准地只修补了坏掉的那几行。随着配置文件改好,终端里终于跳出了久违的热更新激活提示。

当绿色的 Pass 信号亮起,按一下 Ctrl+S 浏览器就能秒更新,这种感觉真的很爽。这时候你就会觉得,它不仅仅是个生成代码的工具,更像是个能帮你兜底的工程老手。能把这些让人头秃的基建坑填平,把风险掐灭在上线前,这才是咱们真正想要的 AI 队友。


一次成型手搓个太阳系
修复旧代码验证了工程底蕴,从零构建则能检验创造力上限。在完成了上述一系列繁重的修复工作后,我们决定换个口味,玩点大的。
我们给 M2.1 发出了最后一道终极指令:“作为一个资深的前端图形学工程师,请帮我们从 0 到 1 构建一个基于 Three.js 的太阳系引力模拟系统。”
这绝不是写几个 CSS 动画画个圆那么简单。我要求它必须在浏览器里从零手搓一个微型物理引擎:彻底抛弃预设动画,严格基于牛顿万有引力公式实时计算天体轨迹;不仅要处理三维空间中的向量运算来实现公转与自转的力学闭环,还要搞定复杂的 Raycasting(光线投射) 算法来实现 3D 交互——鼠标拖拽旋转、滚轮无级缩放、点击行星精准反馈。这哪里是考代码,分明是在考它能不能把高等数学和天体力学完美翻译成 JavaScript。
这对 AI 的跨学科知识融合能力是一个巨大的考验。
结果直接 One-Shot 一把过。

模型生成的 HTML 单文件代码没有任何语法错误,直接在浏览器中跑通了。视觉效果方面,M2.1 使用了程序化生成的纹理贴图,质感细腻;星空背景采用了粒子系统,营造出了深邃的宇宙感。
物理逻辑更是严谨。通过阅读源码我们发现,行星的公转速度与相对距离经过了数学换算,不再是简单的平移运动。交互层面,Raycaster 射线检测准确无误,点击行星后的弹窗信息响应极快。这种将天体物理公式瞬间转化为三维视觉交互的能力,代表 M2.1 不仅仅精通代码语法,更展现出了物理、数学与设计美学的融合能力。

总结
LegacyShop 的实战演练,配合最后太阳系模拟的现场演示,我们彻底把 MiniMax M2.1 的底子摸透了。
这次评测给我们的最大感受,不是“被替代”的恐惧,而是一种久违的职业解脱感。我们亲历了 AI 从单一的代码片段生成工具,进化为通晓架构拆解、测试驱动与工程构建的全栈协作伙伴。
夸了这么多,说说不足吧。我们在用M2.1生成测试项目的时候,因为要做一些劣质代码,所以不是按套路地提要求。对于这种复杂要求,M2.1 在规划任务时还是有点问题。当我要求 M2.1生成“请你生成一套可以运行,但充满坏味道的代码” 之后,并没有触发任务规划,而是依次生成项目文件,并且生成的代码会报错,无法运行,但是在后续我们先创建基础项目,再做破坏性建设的思路下就没有出现这个问题。因此需要加强一下任务规划能力。
说实话,M2.1 在实战中展现出的多维素养表明,它完全有能力接管高风险的存量治理工作。既然 AI 能搞定基础设施维护与技术债治理这种消耗热情的“脏活累活”,那我们人类开发者就该腾出手来,回归架构设计与业务创新的高地。
从 LegacyShop 的起死回生到太阳系的无中生有,M2.1 的表现恰恰印证了 MiniMax 在 Multi-SWE 赛道上的技术远见。作为一款专为 Coding、复杂 Agent 工作流及长链条推理任务设计的模型 ,它的核心竞争力正在从单一的代码生成向深度的工程理解跃迁。它跳出了单纯比拼生成速度的怪圈,转而攻克复杂上下文理解与存量债务治理这两个最难啃的硬骨头 。这种进化让 M2.1 不再局限于做一个只会补全语法的插件,而是真正成为了能独立思考架构并解决系统级问题的工程智能体。这才是我们真正需要的未来分工,让机器去消化那些确定性的工程繁琐,让人类彻底回归不确定性的价值创造。
年底了,与其盯着那些枯燥的跑分榜单看,不如直接前往 MiniMax 开放平台上手跑一跑。把你手头最棘手、最复杂的真实业务场景丢进去,看看这位 AI 工程师到底能不能抗住压力——它大概率会给你一点小小的震撼。
1814

被折叠的 条评论
为什么被折叠?



