网易首页 > 网易号 > 正文 申请入驻

90万行旧代码,3个月用AI重写成12万行

0
分享至

3月接手一个内部视频在线剪辑项目时,团队只有2到3个全栈,心态有点崩。


摆在他们面前的是:前后端代码约90万行,风格混杂、耦合严重,单个复杂组件超过6000行;相关文档和单测几乎没有;新需求还在不断催着加。任何一个改动都是牵一发而动全身,必须小心翼翼测试。

他们给自己定的目标很直接:3个月内把旧版本还在用的功能全部做上去,替换掉旧系统,再迭新功能,同时输出一套可复用的Harness开发模式。

6月底上了第一个试用版,随后转入功能持续迭新。截至8月底,重构版约12万行代码、15万行文档、6000+测试用例,测试覆盖率86%。开发节奏的变化更直观:旧项目半年只敢动不到3个需求或紧急Bug,7、8两个月已经迭代了30+新功能需求。

这套工作流的核心,是先回答一个问题:当AI写完代码,工程质量应该如何可靠验证,才敢合入上线?

拿“用户上传成功就能进剪辑”这个功能来说,AI两小时就能开发完成,单测全部通过,实际一看代码,连覆盖率可能都是它自己“圆”出来的。所以除了AI审查,他们还要求人对需求、设计文档和最终代码做交叉审查。整体思路两条:工程质量越往前控越可控;把运动员和裁判员分开,抵抗人性里的惰性。

工作流分三个阶段。立项设计阶段处理写代码前的相关工作:立项、需求澄清、需求审查、写验收标准、验收标准审查、前后端代码架构设计、架构设计审查、人工需求与设计文档交叉审查。开发阶段如果是跨端需求,前后端并行执行代码实现、代码审查、后端冒烟测试或前端链路自动化审查。最后是人工代码CR、验收、任务归档和发起代码MR。

需求审查环节,开发人员必须把需求文档看明白。需求一大,细节没沟通清楚,AI很容易自己脑补它认为正确的常见做法。比如转码参数细节、超时错误处理、老数据缺字段算不算坏数据,这些边界情况AI并不会停下来跟人确认,最终做出来的需求可能跟预想大相径庭。AI独立审查则负责扫那些看着累、机器扫得快的问题:含糊词、指代不明的代词、死链、缺失信息。

验收标准审查针对的是最终验收目标有没有写对。代码实现、审查、测试,AI都按这份文档当最终标准。一旦只写“用户上传成功”这种大而不细的结果,AI一偷懒就容易把结果“做”通过。

架构设计审查重点看技术方案合理性、可行性和扩展性。工作流搭建初期,代码质量扫描工具扫出重复代码的概率高了很多。分析发现这跟AI的工作原理有关:它写的局部代码比较优,但对全局未必。每次新需求对它都是一个新的开始,项目代码量越大,它需要了解的内容和遵守的准则越多,检索词太窄或者根本没搜类似实现,就着急自己动手。一旦有“屎山”前兆不加控制,问题会快速堆积——即使AI发现同一功能已有多种实现,它也不会自己收敛,反而去不停打各种奇怪的补丁。

行业观察GitClear对过去大量代码的质量研究里发现,AI Coding逐步普及后,代码的重复率从8.3%提升到了12.3%。所以他们在设计文档阶段就设定AI架构设计审查环节,要求人也对当前架构熟悉,能从设计文档上裁定新增或变更的代码能不能复用。

进入开发阶段,跨端需求分前后端两条链路并行实现,按设计文档使用TDD先写契约测试再实现,同时通过Rules和宪章让AI遵守代码习惯。但AI还是会写出烂代码,因为这些限制文件对AI来说更像叮嘱式的建议,随着Context使用越来越多,信息被稀释,AI往往会忽略曾经的约定,所以代码自动化CR必不可少。

在AI代码CR阶段,他们给各个SubAgent赋予架构、安全、契约、性能、接口契约、运行时、代码规范、测试几个维度的审查角色,让Agent专职审查同一类型的问题,确保注意力不分散。行业大佬Uncle Bob在Harness时会把实现、清理、强化、验收拆开,目的同样是给AI任务够细够聚焦,信息才不容易丢失。

接着是传统工程质量检查:单元测试、冒烟测试、E2E测试、测试覆盖率、质量指标。这些检查能确认可靠的质量,又不占Context,AI只需要看结果是否通过。但跑下来发现两个大问题。

一是AI会作弊。测试覆盖率阈值如果只写成“覆盖通过”,没写清超过多少,它为了过关会偷偷改条件通过质量检查。所以现在相关阈值不放在脚本默认值里,放进单独的红线配置,改动会触发门禁,工作流停下来等人工确认。

二是测试用例的质量问题。AI很容易把测试覆盖率写得很“感人”,部分代码轻轻松松达到90%+,但覆盖率只能说明覆盖到没有,说明不了测试质量。当同一模型既写函数又写测试时,很容易出现定制化断言,错的行为或者参数也能通过测试。

所以工作流里加入了变异测试环节,通过变异测试得分来评估单元测试有效性和质量。原理是自动修改源码,故意把大于改成大于等于、把条件反转,再跑测试。每修改一次就运行一遍完整测试,通过把代码故意改坏,预期测试用例应该失败。如果测试用例没有失败,就说明这个断言不够严谨,需要打回修改。

从搜索到的行业观察数据来看,AI生成测试的变异测试得分常在20到40分,人写一般能得到60到80分,作者实测下来一般在50到60。引入变异测试还有一个成本要注意:假设原本跑完一次全量单测要1分钟,引入后需要反反复复修改源码跑几百遍全量测试,全量跑完可能变成30分钟甚至更久。有时间效率要求的话,建议只对增量或修改的单测跑,旧单测可以当技术债需求来收。

工作流走到最后阶段,是人工CR这道容易被忽略的门禁。AI代码产出快、量大,人根本看不过来,整个工作流的效率瓶颈变成了“读懂才能放心合入”。他们目前的做法是验证需求和体系设计、问题分歧裁决、重要代码精读,集中阅读需求文档、设计文档、重要代码和验收报告。

业界里思路比较接近的,是谷歌大佬Addy Osmani的文章《Agentic Code Review》中提到的:程序员不是退出审查代码,是上移一层,抽查代码、审计方案,把有限的注意力花在更重要的地方。也有更极端的看法,Redis之父Antirez在文章《Control the ideas, not the code》中写到,他现在基本不读代码,只控制AI的想法和设计。他的理由是AI一天能产出成千上万行代码,逐行理解根本看不完。但他说能这样做的前提是能看懂AI的设计描述,能判断对不对、哪里有问题,同时有可靠的检测机制。他还提了一个问题:如果没有经验的年轻工程师看不懂设计、没有发现问题的能力,应该怎么办,他自己也没有答案。

工作流里还有几个值得提的设计。多Agent协同方面,刚开始他们让Agent自己写完代码后换个角色合约再CR一遍,很多时候CR报告都是通过状态,但仍有遗漏,本质是AI自己审查容易过度自信。所以现在CR和方案审查都拆分SubAgent独立执行验证角色,加上可程序化的验证命令。这样任务能拆得足够细、足够聚焦,每个专职SubAgent有自己的角色合约和审查清单;SubAgent从创建到执行任务再到消失,面对的是干净的上下文,不会被以前的内容干扰。

工作流进度由一个Python CLI管理,配合Hook守卫防篡改。核心思路是进度存文件,AI只能通过命令推进,不能手动篡改,防止AI偷偷标记“已完成”跳过某些步骤,同时记录每一步骤信息用于冷启动时恢复上下文,相关数据还能用于任务审计。

Token消耗上做了经济性设计。Context分层加载,把工作流资产设计为3档分时加载:L1会话常驻层每次对话都在,提供任务路由入口和全局约束,约300行;L2按阶段触发层,按当前工作流阶段决定读取内容,注入技能手册、SubAgent角色合约等;L3按需查询层,该读什么由当前遇到的问题决定,比如跨服务调用的服务契约、Debug指南。模型也按需分配,文档同步、冒烟验证用弱推理,设计、CR、开发用强推理。当对话轮数过多、AI响应明显变慢、Context接近上限时,利用工作流冷启动机制主动重启清除多余上下文,但不能无差别使用,过早重启反而丢失已建立的理解成本。

回到3月刚接手项目时,作者认为工作流最值得的投入是:Harness Engineering不是一次性工程,初步体系搭好只是开始,会跟着工程问题的出现或者AI模型能力的提升持续进化。开发者的角色也在变化,前后端边界在淡化,从过去专精某一端的实现者变成对整个需求全栈负责。如今AI代码产出越来越快,写代码的门槛越来越低,能把需求想清楚、在开发过程中守住工程判断、把控好工程质量、把最终结果验清楚,做好这几件事,可能才是程序员的护城河。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
林青霞、李连杰主演《笑傲江湖2:东方不败》官宣定档10月30日

林青霞、李连杰主演《笑傲江湖2:东方不败》官宣定档10月30日

手工制作阿歼
2026-10-18 00:04:38
304钢印随便刻,重金属超标34倍!怒割国人“毒保温杯”谁在买?

304钢印随便刻,重金属超标34倍!怒割国人“毒保温杯”谁在买?

鲸探所长
2026-10-17 09:33:28
法国爆发近年最严重骚乱 约1200人被捕 多地LV、爱马仕等门店 遭洗劫一空

法国爆发近年最严重骚乱 约1200人被捕 多地LV、爱马仕等门店 遭洗劫一空

每日经济新闻
2026-10-18 11:53:06
疯狂小杨哥新号“庆杨”粉丝被清零

疯狂小杨哥新号“庆杨”粉丝被清零

21世纪经济报道
2026-10-18 16:18:54
男子服刑7年账户50余万元被转走 只剩6.43元

男子服刑7年账户50余万元被转走 只剩6.43元

闪电新闻
2026-10-18 10:58:50
国产手机集体降价,力度有点大啊!

国产手机集体降价,力度有点大啊!

果粉俱乐部
2026-10-17 13:55:06
体制内外退休金的巨大差距引起老百姓的很大不满!

体制内外退休金的巨大差距引起老百姓的很大不满!

逍遥论经
2026-10-08 14:57:40
重磅消息!德鲁日科夫卡已被解放

重磅消息!德鲁日科夫卡已被解放

星火聊天下
2026-10-18 12:59:54
湖北推出“社银贷”帮困难群众贷款交社保

湖北推出“社银贷”帮困难群众贷款交社保

名人苟或
2026-10-18 07:02:18
南京博物院原院长徐湖平病死于南京一家监狱医院

南京博物院原院长徐湖平病死于南京一家监狱医院

坦腹斋
2026-10-15 19:40:45
1991年李瑞环视察华西村,吴仁宝陪着走,到了荣誉室的一张肖像前,李瑞环停下脚步看了好一会

1991年李瑞环视察华西村,吴仁宝陪着走,到了荣誉室的一张肖像前,李瑞环停下脚步看了好一会

史源观点
2026-10-16 20:44:15
俄军喷气动力无人机猛增6倍!时速500公里碾压乌军拦截系统,90%拦截率被砍到60%

俄军喷气动力无人机猛增6倍!时速500公里碾压乌军拦截系统,90%拦截率被砍到60%

可达鸭面面观
2026-10-16 21:47:08
广西壮族自治区党委书记陈刚主持会议:坚决拥护党中央决定,坚决拥护国家监委决定

广西壮族自治区党委书记陈刚主持会议:坚决拥护党中央决定,坚决拥护国家监委决定

政知新媒体
2026-10-18 17:54:59
埃塞俄比亚选手托拉打破北马男子赛会纪录

埃塞俄比亚选手托拉打破北马男子赛会纪录

新京报
2026-10-18 10:04:14
被停职审查、套现开溜、私生活混乱,董明珠身上标签该真相大白了

被停职审查、套现开溜、私生活混乱,董明珠身上标签该真相大白了

眼底星碎
2026-10-09 12:19:24
雷佳音夫妇看网球被偶遇,卷发配眼镜发福严重!网友:撞脸刘震云

雷佳音夫妇看网球被偶遇,卷发配眼镜发福严重!网友:撞脸刘震云

娱乐团长
2026-10-17 12:59:55
中国面临两大战略缺口:一个是“台湾”问题,另一个曾动用300万大军才勉强堵住的致命防线

中国面临两大战略缺口:一个是“台湾”问题,另一个曾动用300万大军才勉强堵住的致命防线

林杰论事
2026-10-18 15:37:07
“我们家三代人攒下的钱,不是让你去给别人家扶贫的”残忍又清醒

“我们家三代人攒下的钱,不是让你去给别人家扶贫的”残忍又清醒

另子维爱读史
2026-10-17 21:31:29
泰国电诈再升级!中使馆曝猛料,多方暗中勾结,专卖这两类中国人

泰国电诈再升级!中使馆曝猛料,多方暗中勾结,专卖这两类中国人

小鋭有话说
2026-10-17 23:02:04
火药味十足!张继科:邓亚萍老师都不认识你,刘丁硕回应:就笑!

火药味十足!张继科:邓亚萍老师都不认识你,刘丁硕回应:就笑!

大秦壁虎白话体育
2026-10-18 11:12:45
2026-10-18 20:28:49
算力游侠
算力游侠
游走在API与报错之间,用魔法(AI)打败魔法的非硬核玩家。
213文章数 98关注度
往期回顾 全部

科技要闻

王江舟院士:6G到底是不是骗局 是不是收割

头条要闻

俄圣彼得堡石油码头遭乌袭击起火 年吞吐量超1250万吨

头条要闻

俄圣彼得堡石油码头遭乌袭击起火 年吞吐量超1250万吨

体育要闻

升级版杨瀚森再闯难关:当上开拓者第三中锋还得拼

娱乐要闻

郭麒麟被传领证,女方戳破谣言

财经要闻

马斯克:美债问题只能靠AI和机器人解决

汽车要闻

星瑞L PLUS限时售价10.97万元起 开启智混3L时代

态度原创

艺术
教育
旅游
健康
房产

艺术要闻

有一种大美,叫对称的中国!

教育要闻

小升初当中,最难的恐怕就只有数学了

旅游要闻

省运邂逅西游!连云港盐河巷巡游点燃港城夜间烟火

看着很健康的人,怎么会突然猝死?

房产要闻

利好密集落地+现房好房断档,广州楼市买入窗口,正在倒计时!

无障碍浏览 进入关怀版