第二十四章 魔高一尺
周三下午。bug café。
老周看了一眼吧檯后面的钟。“一点你就来了,今天不加班?”
“自由职业没有加班。”韩路一端著美式坐到角落的老位置。“只有隨时在班。”
老周哼了一声。“我当程式设计师的时候可不这么自我感动。”
韩路一打开电脑。
codesafe的官网还停在上次的標籤页。註册数涨到了三千八。好评测评从三篇变成了七篇。
每篇测评他都看了。
他喝了一口咖啡。下载了codesafe的公测版,本地装好,打开。
上次只扫了一眼轮廓。这次要看仔细的。
开视界。
灰色代码流从屏幕底部浮上来,像透视图一样在眼前铺开,前端框架、后端微服务、数据管道、模型推理层,codesafe的整个技术栈一览无余。
先说好话。
前端react加typescript,组件拆分规范,交互动效流畅。ui比bugkiller好看三个档次,他们有专门的前端团队,这不是一个人能追的差距。后端go写的网关,python跑推理,中间kafka做消息队列。教科书一样的技术选型。支持三种语言,检测速度不慢。企业集成的文档写得比很多大厂都好。
视界在整体代码质量旁边浮出一个评级標籤:
【代码质量评级:b+】
不差。斯坦福cs博士加谷歌的经歷不是白混的,这套系统的工程化水准放在创业公司里算顶尖。赵文渊有两把刷子。
韩路一继续往下看。
视界深入核心检测引擎。代码流变密,信息量陡增。他集中注意力,精力值开始加速消耗。
然后他看到,核心引擎上方,一行黄色warning缓缓浮现:
【架构风险:检测引擎採用全量遍歷+大模型推理路线|当前性能:代码库<5万行时表现优秀|warning:代码库规模超过20万行后,误报率將非线形上升(预估:5万行误报率3%→20万行误报率17%→50万行误报率41%)|根因:特徵提取未做分层剪枝,大规模代码库的上下文窗口溢出导致模型幻觉】
5万行,3%。
20万行,17%。
50万行,41%。
三个数字,非线形上升。
现在codesafe的用户全是个人开发者和小团队,代码库普遍在5万行以下。体验好,好评是真的。赵文渊不是在作假。他的產品在当前用户规模下確实能打。
但企业客户的代码库动輒几十万行。
这不是bug。bug可以修。这是架构选型的根本性问题,特徵提取没做分层剪枝,核心引擎直接用大模型全量推理。5万行以下没问题,上下文窗口装得下。超过20万行,窗口溢出,模型开始產生幻觉。检测结果从“准確”变成“瞎猜”。
要修?重写核心引擎。
至少三个月。
赵文渊大概率还不知道。公测期用户全是小项目,数据漂亮得很,他肯定觉得自己牛逼坏了。
等真接了企业单,才会发现这事有多棘手。
韩路一关掉视界。精力掉了六十多点。
他靠在椅背上,看著codesafe首页那行“最完整的ai代码审查方案”。
苏念念推门进来带了一股外面的风。围巾还没摘,径直走到韩路一对面坐下,掏出电脑。两人约好了在bug café碰面。
“我註册了codesafe。”
“嗯。”
“搞个对比测试?”她打开一个github仓库。“这个开源项目,python后端服务,大概八万行。各跑一遍。”
两台电脑同时开始跑。
bugkiller的进度条先到底。codesafe慢了快一分钟。
结果出来了。苏念念把两个窗口並排放在一起。
bugkiller报了50个。codesafe报了36个。
韩路一又开视界扫了一遍,51个bug。
他拿视界的结果当答案,逐条比对。bugkiller:50个里48个是真的,2个误报,漏了3个。codesafe:36个里32个是真的,4个误报,漏了19个。
看了二十分钟源码確认之后,他把误报数据告诉苏念念。
苏念念在本子上算。“误报率,我们百分之四,他们百分之十一。”
漏报率他没提,总不能跟苏念念解释自己为什么知道真实答案是51个。心里默算了一下,百分之六比百分之三十七。
八万行代码库上,codesafe的误报率明显上升了。
但数量还不是关键。
苏念念点开bugkiller第一条检测结果。bug描述下面掛著一段影响评估:“上线后影响预测:高並发场景下触发概率约12%,预估月均影响用户1.2万,修復优先级:p0。”后面还有三行修復路径。
她点开codesafe的同一条。
“发现潜在空指针异常。建议检查。”
一句话。没了。
苏念念看完两边数据,安静了一会儿。
“检测能力我们碾压他们。”她抬头。“他们语言支持比我们多,企业那套集成也做得早,但这些都是时间问题。”
“对。而且他们的引擎在更大的代码库上会出问题。”韩路一说。“用户量上来之后自己会发现的。”
苏念念眯了一下眼睛。“你怎么知道?”
“看架构猜的。全量遍歷加大模型推理,代码库规模一大,上下文窗口扛不住。误报就炸了。”
苏念念盯著他看了两秒。
没追问。
她合上本子翻到新一页,標题写了五个字,“公测方案v0.1”。
“竞品分析先过一遍。”苏念念边写边说。“codesafe团队十五人。融资额具体查不到,但按赵文渊的配置,保守估计是你全部积蓄的五十倍。”
“谢谢,很提气。”
“钱和人我们都不占优。但他重我们轻,这一点没变。所以不能跟他全面打,得挑一个他补不上的点。”
苏念念翻到新一页,笔尖点了点纸。
“就打影响评估。別的都不碰。”
苏念念指著屏幕上的对比。“codesafe告诉你有bug。bugkiller告诉你这个bug上线后有什么影响。这完全是品类差距。”
“上线方案呢?”
“先在论坛,v2ex和掘金髮帖,內测用户那批人让他们帮忙扩一波,马小飞那边再出一期视频。首日註册能破五百就算成功了。”她手里的笔没停。
“什么时候上线?“
苏念念打开日历看了一眼,“假期回来第一天。上线方案加推广素材,趁假期搞定。五一大家放假,六號上班第一天刷论坛正好看到。再拖下去codesafe用户养起来就不好抢了。你写代码的时间够吗?”
“够。”
“那就六號。”
说著她就给马小飞发起了微信。
窗外天暗了。老周给他俩各续了一杯,把灯调亮了点。韩路一写代码,苏念念做方案。中间几乎没说话。偶尔苏念念抬头问一句“api文档改了吗”,或者韩路一甩过来一段逻辑让她確认產品流程。
八点半。老周开始收桌子。
“二位,打烊了。”
苏念念抬头看时间。“这么快?”
老周笑著摇摇头。
两人收拾东西出门,一起走向地铁站,一边继续討论上线方案。
地铁站口,苏念念忽然停下来。“路一。”
“嗯?”
苏念念笑了笑。
“……没事。明天见。”
她进地铁站了。韩路一转身往家走。
到502门口的时候,差不多九点了。
门口放著一个牛皮纸袋。
他蹲下来拎起来。是一块小蛋糕,奶油抹得歪歪扭扭,上面用巧克力酱画了个笑脸。纸袋底下压著一张蜡笔画。
画上是一个戴眼镜的小人坐在电脑前。旁边趴著一只巨大的瓢虫。瓢虫的壳是红色的,上面三个黑色大圆点。
他翻到背面。歪歪扭扭的铅笔字,每一笔都很用力:
“lu一哥哥加you”
“加”字写反了。
韩路一站在门口吃了一口。奶油太甜,蛋糕有点硬。他又吃了一口。
剩下的放进冰箱。
手机亮了。
顾司玥:“林晚晴的case予微接了。初步评估胜算很大。”
他回了一句“谢谢顾律师”。
又一条。苏念念发了个飞书文档连结,“bugkiller公测上线方案v0.1”。
他点开看了两眼,回了句“收到,早点休息”。
韩路一把朵朵的画贴在显示器边上。
然后打开编辑器。
瓢虫瞪著两只大眼睛看他。
老周看了一眼吧檯后面的钟。“一点你就来了,今天不加班?”
“自由职业没有加班。”韩路一端著美式坐到角落的老位置。“只有隨时在班。”
老周哼了一声。“我当程式设计师的时候可不这么自我感动。”
韩路一打开电脑。
codesafe的官网还停在上次的標籤页。註册数涨到了三千八。好评测评从三篇变成了七篇。
每篇测评他都看了。
他喝了一口咖啡。下载了codesafe的公测版,本地装好,打开。
上次只扫了一眼轮廓。这次要看仔细的。
开视界。
灰色代码流从屏幕底部浮上来,像透视图一样在眼前铺开,前端框架、后端微服务、数据管道、模型推理层,codesafe的整个技术栈一览无余。
先说好话。
前端react加typescript,组件拆分规范,交互动效流畅。ui比bugkiller好看三个档次,他们有专门的前端团队,这不是一个人能追的差距。后端go写的网关,python跑推理,中间kafka做消息队列。教科书一样的技术选型。支持三种语言,检测速度不慢。企业集成的文档写得比很多大厂都好。
视界在整体代码质量旁边浮出一个评级標籤:
【代码质量评级:b+】
不差。斯坦福cs博士加谷歌的经歷不是白混的,这套系统的工程化水准放在创业公司里算顶尖。赵文渊有两把刷子。
韩路一继续往下看。
视界深入核心检测引擎。代码流变密,信息量陡增。他集中注意力,精力值开始加速消耗。
然后他看到,核心引擎上方,一行黄色warning缓缓浮现:
【架构风险:检测引擎採用全量遍歷+大模型推理路线|当前性能:代码库<5万行时表现优秀|warning:代码库规模超过20万行后,误报率將非线形上升(预估:5万行误报率3%→20万行误报率17%→50万行误报率41%)|根因:特徵提取未做分层剪枝,大规模代码库的上下文窗口溢出导致模型幻觉】
5万行,3%。
20万行,17%。
50万行,41%。
三个数字,非线形上升。
现在codesafe的用户全是个人开发者和小团队,代码库普遍在5万行以下。体验好,好评是真的。赵文渊不是在作假。他的產品在当前用户规模下確实能打。
但企业客户的代码库动輒几十万行。
这不是bug。bug可以修。这是架构选型的根本性问题,特徵提取没做分层剪枝,核心引擎直接用大模型全量推理。5万行以下没问题,上下文窗口装得下。超过20万行,窗口溢出,模型开始產生幻觉。检测结果从“准確”变成“瞎猜”。
要修?重写核心引擎。
至少三个月。
赵文渊大概率还不知道。公测期用户全是小项目,数据漂亮得很,他肯定觉得自己牛逼坏了。
等真接了企业单,才会发现这事有多棘手。
韩路一关掉视界。精力掉了六十多点。
他靠在椅背上,看著codesafe首页那行“最完整的ai代码审查方案”。
苏念念推门进来带了一股外面的风。围巾还没摘,径直走到韩路一对面坐下,掏出电脑。两人约好了在bug café碰面。
“我註册了codesafe。”
“嗯。”
“搞个对比测试?”她打开一个github仓库。“这个开源项目,python后端服务,大概八万行。各跑一遍。”
两台电脑同时开始跑。
bugkiller的进度条先到底。codesafe慢了快一分钟。
结果出来了。苏念念把两个窗口並排放在一起。
bugkiller报了50个。codesafe报了36个。
韩路一又开视界扫了一遍,51个bug。
他拿视界的结果当答案,逐条比对。bugkiller:50个里48个是真的,2个误报,漏了3个。codesafe:36个里32个是真的,4个误报,漏了19个。
看了二十分钟源码確认之后,他把误报数据告诉苏念念。
苏念念在本子上算。“误报率,我们百分之四,他们百分之十一。”
漏报率他没提,总不能跟苏念念解释自己为什么知道真实答案是51个。心里默算了一下,百分之六比百分之三十七。
八万行代码库上,codesafe的误报率明显上升了。
但数量还不是关键。
苏念念点开bugkiller第一条检测结果。bug描述下面掛著一段影响评估:“上线后影响预测:高並发场景下触发概率约12%,预估月均影响用户1.2万,修復优先级:p0。”后面还有三行修復路径。
她点开codesafe的同一条。
“发现潜在空指针异常。建议检查。”
一句话。没了。
苏念念看完两边数据,安静了一会儿。
“检测能力我们碾压他们。”她抬头。“他们语言支持比我们多,企业那套集成也做得早,但这些都是时间问题。”
“对。而且他们的引擎在更大的代码库上会出问题。”韩路一说。“用户量上来之后自己会发现的。”
苏念念眯了一下眼睛。“你怎么知道?”
“看架构猜的。全量遍歷加大模型推理,代码库规模一大,上下文窗口扛不住。误报就炸了。”
苏念念盯著他看了两秒。
没追问。
她合上本子翻到新一页,標题写了五个字,“公测方案v0.1”。
“竞品分析先过一遍。”苏念念边写边说。“codesafe团队十五人。融资额具体查不到,但按赵文渊的配置,保守估计是你全部积蓄的五十倍。”
“谢谢,很提气。”
“钱和人我们都不占优。但他重我们轻,这一点没变。所以不能跟他全面打,得挑一个他补不上的点。”
苏念念翻到新一页,笔尖点了点纸。
“就打影响评估。別的都不碰。”
苏念念指著屏幕上的对比。“codesafe告诉你有bug。bugkiller告诉你这个bug上线后有什么影响。这完全是品类差距。”
“上线方案呢?”
“先在论坛,v2ex和掘金髮帖,內测用户那批人让他们帮忙扩一波,马小飞那边再出一期视频。首日註册能破五百就算成功了。”她手里的笔没停。
“什么时候上线?“
苏念念打开日历看了一眼,“假期回来第一天。上线方案加推广素材,趁假期搞定。五一大家放假,六號上班第一天刷论坛正好看到。再拖下去codesafe用户养起来就不好抢了。你写代码的时间够吗?”
“够。”
“那就六號。”
说著她就给马小飞发起了微信。
窗外天暗了。老周给他俩各续了一杯,把灯调亮了点。韩路一写代码,苏念念做方案。中间几乎没说话。偶尔苏念念抬头问一句“api文档改了吗”,或者韩路一甩过来一段逻辑让她確认產品流程。
八点半。老周开始收桌子。
“二位,打烊了。”
苏念念抬头看时间。“这么快?”
老周笑著摇摇头。
两人收拾东西出门,一起走向地铁站,一边继续討论上线方案。
地铁站口,苏念念忽然停下来。“路一。”
“嗯?”
苏念念笑了笑。
“……没事。明天见。”
她进地铁站了。韩路一转身往家走。
到502门口的时候,差不多九点了。
门口放著一个牛皮纸袋。
他蹲下来拎起来。是一块小蛋糕,奶油抹得歪歪扭扭,上面用巧克力酱画了个笑脸。纸袋底下压著一张蜡笔画。
画上是一个戴眼镜的小人坐在电脑前。旁边趴著一只巨大的瓢虫。瓢虫的壳是红色的,上面三个黑色大圆点。
他翻到背面。歪歪扭扭的铅笔字,每一笔都很用力:
“lu一哥哥加you”
“加”字写反了。
韩路一站在门口吃了一口。奶油太甜,蛋糕有点硬。他又吃了一口。
剩下的放进冰箱。
手机亮了。
顾司玥:“林晚晴的case予微接了。初步评估胜算很大。”
他回了一句“谢谢顾律师”。
又一条。苏念念发了个飞书文档连结,“bugkiller公测上线方案v0.1”。
他点开看了两眼,回了句“收到,早点休息”。
韩路一把朵朵的画贴在显示器边上。
然后打开编辑器。
瓢虫瞪著两只大眼睛看他。