第二十四章 魔高一尺

作品:《首富从看见信息面板开始

    周三下午。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”。


    他点开看了两眼,回了句“收到,早点休息”。


    韩路一把朵朵的画贴在显示器边上。


    然后打开编辑器。


    瓢虫瞪着两只大眼睛看他。