《首富从AI浪潮开始》 第一章 你被优化了 208会议室很小。灯光很亮。 hrbp张薇坐在桌子对面,面前摆著一份列印好的协议和一瓶没开的矿泉水。 “路一,先喝水。” 韩路一没拿水。 张薇清了清嗓子:“公司最近在做组织架构调整,你这边的岗位需要优化……” 后面的话韩路一没怎么听。 无非就是那些:感谢你的贡献、公司的决定、n+1、竞业协议、祝你前程似锦。 每一句都是標准话术,每一个字都不带温度。 “补偿方案在这里,你看一下。”张薇把协议推过来。 韩路一翻了翻:数字、条款、签名栏。 五年。 校招进来的p5,一路卷到p7,多少次周末赶代码,多少次通宵盯著新版本上线。 一张纸就结束了。 签完,站起来往外走。 走廊很长,白色的灯管在头顶排成一排。 走出208会议室大概第五步的时候,他突然开始头痛。 不是普通的头痛。 是那种从太阳穴开始,像有人拿锥子往里钻的剧痛,韩路一脚步一个趔趄,右手撑住了墙壁。 他的视野里出现了裂纹。 不,不是视野,整个世界都出现了裂纹,就像一块屏幕被用力按了一下,液晶面板底下的像素点全部扭曲了。 然后世界破碎了。 本书首发 看书就来 101 看书网,101??????.??????超给力 ,提供给你无错章节,无乱序章节的阅读体验 又重组了。 整个走廊都变了。 墙壁、天花板、脚下的地砖,所有东西的表面都浮现出一层半透明的光,像是有人在现实世界上覆盖了一层ar图层,无数行代码和数据以极快的速度滚动著。 韩路一死死扶著墙,大口喘著气。 视野正中央,一个框体弹了出来。 【现实代码视界已激活】 【lv.1|精力:100/100】 “……什么?” 韩路一以为自己出了幻觉,被裁员裁出精神问题了? 但那个面板就悬在他视野中央,清清楚楚,他试著伸手去碰,但手穿过了光影,什么也没摸到。 他眨了几下眼,面板还在。 右上角的数字在慢慢跳动:99……98……97…… 精力值在往下掉。 这时候208会议室的门开了,张薇抱著一叠文件走出来,差点撞到靠墙站著的韩路一。 “哎,路一?没事吧?你脸色不太好……” 她话没说完,韩路一抬头看到张薇的头顶浮著一个半透明的数据面板。 【张薇|29岁|hrbp(p6)】 就这么一行字,悬在她头顶大概十公分的位置,半透明的,像游戏里的名牌。 当韩路一把注意力集中到那里的时候,像是有人点开了一个摺叠菜单,更多信息被打开了—— 【当前任务:完成7人裁员面谈(已完成3/7)】 【情绪:疲惫(隱藏:心虚)】 【warning:补偿方案存在两个漏洞:1工龄计算遗漏2021年7-9月实习转正衔接期;2加班补偿基数误用税前工资而非应发工资|差额¥47832】 韩路一盯著那个数字看了两秒。 四万七千八百三十二块。 忽然鼻子里一热,有什么东西流下来了,他抬手一抹,指尖是红色的,鼻血。 精力值:92……91…… 张薇嚇了一跳:“你流鼻血了!要不要去医务室?” “不用。”韩路一用手背擦了一下鼻子,“张姐,等一下。” 他把刚才签好的协议从口袋里掏出来。 “补偿方案我又看了一眼。” 张薇愣了一下:“你都签了啊……” 韩路一的声音很平静:“劳动法第四十七条,工作年限计算有问题,我2021年7月实习转正,系统记录的入职日期是10月,中间三个月的衔接期你们没算。” 张薇脸上的表情微妙地变了一下。 韩路一继续说:“另外,加班补偿的基数你们用的是税前工资,但按照劳动合同法实施条例,应该用应发工资,包含绩效和补贴部分,这两个加起来,差了不少。” 张薇没接话,但她手里的文件夹握紧了一点。 韩路一看著她头顶的面板。 【情绪变化:疲惫→紧张】 韩路一把协议放在张薇面前:“数字不对,咱们重新算一下,按法条来就行。” 张薇沉默了几秒,然后说:“你等一下,我核实一下。” 她转身回了会议室,关上门。 韩路一靠在走廊的墙壁上,看著视野里跳动的数字和飘浮的代码流,精力值还在掉:85……84…… 太阳穴还在一抽一抽地疼,但他的嘴角翘了一下。 五分钟后,张薇出来了,表情有点僵硬。 “路一,你说的情况……確实存在,我跟薪酬组確认了,补偿金额需要调整。” 她递过来一份新列印的协议,手指点了一下最后的数字。 比原来多了四万七千八百三十二块。 韩路一拿起笔签了字。 “谢谢张姐。” 他把新协议折好放进口袋,转身的时候,看到走廊尽头站著一个人。 是陈博文,他端著一杯咖啡靠在墙边,表情似笑非笑。 以前见到这张脸,韩路一心里只有一个字:忍。 陈博文是韩路一的直属领导,海归硕士,空降p8。两个月前,他拿韩路一写了六个月的推荐系统演进做了场漂亮的匯报,转化率提升37%,留存涨了5.2个百分点。代码仓库里两千三百多次提交,百分之九十一来自韩路一的帐號,但ppt署名“陈博文团队”,台下的vp王志远听得频频点头。 年终述职,陈博文拿了部门唯一的3.75,韩路一被评3.25,反馈就五个字:配合度不够。 然后项目被接手,人被踢去外包组,最后hr下场收人,一条龙。 韩路一看向他。 陈博文头顶的数据面板亮了起来。 【陈博文|33岁|算法部总监(p8)】 【情绪:轻蔑(隱藏:恐惧)】 【当前负责项目:推荐系统v3.2|上线后转化率持续下降(-0.3%/日)|团队未定位原因】 【warning:该对象存在3个严重bug(当前等级不足)】 “路一,辛苦你了,好好休息一阵,”陈博文的表情恰到好处地遗憾,“有什么需要帮忙的,跟我说。” 韩路一笑了笑。 他把工牌从脖子上取下来,放在旁边的前台桌上。 “对了,”他像是想起什么似的,“转化率是不是在掉?” 陈博文端咖啡的手顿了一下。 韩路一掏出手机看了一眼时间。 “上线后应该每天掉零点几,你最近拉周线看过没?” 陈博文脸上的笑容不见了。 “你怎么知道的?” “是我写的。”韩路一把手机放回兜里,“陈哥,加油。” “韩路一!你什么意思!?” 韩路一没理他,摆摆手走了。 走出鼎盛集团大楼的旋转门,二月的冷风扑面而来。他站在台阶上,深吸了一口气。 精力值:61/100。 头还在疼。 鼻血干了以后上嘴唇痒痒的。 视野里依然飘著那些半透明的数据和代码,路上每个行人的头顶都顶著一块小小的面板,他试著集中注意力想要关掉这东西—— 面板消失了。 世界恢復了正常。 韩路一伸手摸了摸口袋里的新协议。 被裁了。 多拿了將近五万块。 眼睛好像出了什么大问题。 他把这三件事在脑子里排列了一下,发现自己居然想笑。 然后他真的笑了。 站在二月的冷风里,一个刚被裁员的二十六岁程式设计师,鼻子下面还有干掉的血痂,对著灰濛濛的天空笑出了声。 路过的保安看了他一眼。 韩路一收住笑,拿出手机叫了一辆车。 打车软体弹出预估价格:38元。 但是他的脑子里想的是另外两个问题—— 精力值归零了会怎样? 陈博文那三个严重bug是什么? 手机震了一下,推送弹窗:《快闪科技完成b轮融资10亿,估值破百亿》,韩路一瞥了一眼,划掉了。 十个亿。 跟他没关係。 第二章 这个世界,有Bug 计程车上,韩路一靠著后座闭眼假寐。 司机在前面骂骂咧咧地吐槽交通,导航的电子女声冷冰冰地说“前方五百米右转”。 到家了。 浦东老小区,六层楼梯房,他住五楼,没电梯,每天爬楼就当健身了。月租四千五,在海城算便宜的。 进屋鞋都没换,他就打开了电脑。 程式设计师遇到了未知的新功能,第一反应只有一个。 测试。 新建文档,文件名:rcv_test_log_v_0_1.md 开启视界。 世界再次变了。 房间里每个物体的表面都浮现出淡淡的数据光层,墙壁有建筑信息,桌子有材质数据,就连角落里那袋没扔的外卖垃圾都標著【有机废弃物|存放时间:3天|建议:立即处理】。 韩路一瞥了一眼那个提示,默默把垃圾袋拎去了门口。 然后回来坐下,开始记录。 精力值:67/100,比出公司大门的时候恢復了6点,大约每分钟0.15。 他在文档里敲下第一行数据,接著花了十来分钟测试视界的被动和主动两种模式,被动掛著每分钟耗1点,聚焦扫描跳到3-4点。 等一下—— 他心跳加速,掏出手机打开理財软体,眼前泛起一道绿光。 【小豆v10|智慧型手机|运行中】 【异常:系统安全补丁过期(未修补)】 屏幕上的k线图、涨跌幅、成交量,面板一个字都没提。 他又试了基金、期货、数字货幣,面板稳如泰山,只认手机本体,对屏幕上的金融数据视而不见。 看来不能用来炒股。 失望之下,他把视界对准了电脑屏幕。 屏幕上还开著一个开源推荐系统,他业余时间在github上维护的,star两万多,好几家小公司拿去部署了。视界扫描了大约十秒钟,整个代码结构在他视野中展开。 bug標红,冗余代码標黄,优化空间標蓝。 韩路一皱了皱眉。 找bug、標红代码、提示边界条件,这不就是代码审查工具乾的活吗?2026年了,这种功能烂大街了。就算视界的准確率更高、速度更快,本质上也只是一个增强版的静態分析,算不上质变。 但每一个红色標记旁边,还悬浮著一层东西。 韩路一凑近屏幕,逐字看清了。 【bug|推荐权重溢出】 【触发场景:用户连续刷新>50次时权重累加溢出】 【影响范围:日均触发约12万次|涉及用户约8.3万人】 【业务损失:推荐精度下降,聚合估损≈日均62000元】 韩路一瞬间坐直了。 日均损失六万二。 这不是代码层面的信息,代码里写的是一个数据溢出,任何ai分析工具都能找出来,但“日均触发12万次”“影响8.3万用户”“每天亏六万二”,这些数据从哪来的? 这是开源项目,他自己都不知道有谁部署了这套系统。 这是现实世界的运行数据。 而视界能看到。 他正要关掉扫描,手机闪出一行金色提示—— 【warning:外部实体异常,快闪科技|检测到重大bug:核心运营数据严重异常|修復可获得大量经验|详情需深度扫描】 韩路一愣住了。 快闪科技,刚才打车的时候手机推送的那条,b轮融资十个亿,估值破百亿的那个快闪科技。 十个亿的公司,核心数据有重大bug? 精力值哗哗往下掉,他赶紧关闭视界,在文档里写下: “不能用於金融投机。” “代码扫描:bug定位,能看到bug在真实世界中的影响。” 又加了一行:“快闪科技,核心运营数据严重异常,需要深度扫描,大量经验。” 他关上电脑,靠在椅子上。 窗外的天已经快黑了,二月的海城日落早,才五点出头就暗下来了。 肚子叫了一声。 韩路一这才想起来,自己今天只吃了一顿早饭。 他起身下楼买饭。 走到二楼楼道拐角,听到下面传来动静。 有人在上楼,走得很慢。脚步声沉闷,中间夹著一个小孩子的哼唧声。 韩路一往下走了几步。 一个女人左手拎著两大袋超市购物袋,右手抱著一个小女孩,正吃力地往上爬。购物袋太重,塑料提手勒得她手指发白。怀里的小女孩大概四五岁的样子,脸上掛著没干的泪痕,脑袋靠在女人肩窝里。 韩路一迎面下来的时候,女人抬起头看了他一眼。 视界还开著。 面板自动弹了出来。 【林晚晴|30岁|自由插画师】 只有这么一行,简洁的基础名牌,悬在她头顶。 但他的目光多停了一秒,面板下方自动展开了更多信息—— 【情绪:疲惫(隱藏:焦虑)】 【warning:该对象存在1个待修復bug,家庭纠纷(详情需lv.2解锁)】 韩路一伸出手:“我帮你拎。” 林晚晴愣了一下。 “谢谢。”她把购物袋递过来。 韩路一接过来,挺沉的,两袋加起来估计有三十斤。米、食用油、一堆蔬菜水果,还有两盒儿童牛奶。 两个人一前一后上楼。 “你是……502的吧?”林晚晴先开口了。 韩路一点了点头。 “我501。”她笑了一下,“搬来两年了,好像第一次说话。” 韩路一確实一点印象都没有,以前每天早上六点出门,晚上十一二点到家,周末还经常去公司加班,別说邻居了,这栋楼的楼管叫什么他都不知道。 “我以前工作忙,不常在家。”他说。 “现在不忙了?” “现在……不太忙。” 林晚晴没追问。 到了五楼,两家门对门,韩路一把购物袋放在501门口。 这时候怀里的小女孩突然抬起头,瞪著一双圆溜溜的大眼睛看韩路一。 泪痕还没干,睫毛上掛著水珠,但她已经不哭了,神情里多了一种小孩子特有的好奇。 “大哥哥。”她突然说。 “嗯?” 小女孩歪著脑袋,认真地看了韩路一好几秒。 “你眼睛好亮。” 韩路一心里“咯噔”一下。 视界还开著。 他不动声色地关掉了视界,面板消失,代码流消退,世界恢復正常。 小女孩又看了他两秒,然后兴趣转移了,把脑袋重新埋回妈妈肩膀上。 林晚晴没注意到这个细节,腾出一只手摸钥匙开门。 “谢谢你啊。”她回过头来。 韩路一注意到她犹豫了一下,大概是在想怎么称呼。 “我姓韩,韩路一。” “我叫林晚晴,这是我女儿,朵朵。” 林朵朵闷在妈妈肩膀上闷闷地说了句“朵朵”,算是自我介绍了。 韩路一笑了一下:“朵朵你好。” 林晚晴又道了一次谢,进了门。 门关上的那一刻,韩路一站在走廊里,脑子里回放著刚才面板上那行黄色的警告。 【warning:该对象存在1个待修復bug家庭纠纷(详情需lv.2解锁)】 lv.2。 他想起文档里那行字:快闪科技,核心运营数据严重异常,修復可获得大量经验。 第三章 415%的谎言 等林晚晴关上门,韩路一又打开视界。 视野右上角的数据面板亮起来: 【lv.1|精力:53/100】 【经验值:12/200】 离升级差的有点远。 他关掉视界,下楼买了份黄燜鸡米饭,边吃边想事情。 晚上九点,他洗了澡,躺在床上。 今天的经歷很魔幻,脑子太乱,先睡,让后台跑一遍gc。 闹钟设在早上七点。 第二天。 韩路一是被阳光晃醒的,比闹钟还早了十分钟。 睁开眼,开视界。 【精力值:100/100】 洗漱完毕,泡了一杯速溶咖啡,坐到电脑前。 打开某个自由开发者接单平台。 以前他偶尔会在上面接点私活,赚个零花钱。但那时候是纯凭技术和经验筛选项目,效率一般。 现在不一样了。 视界开启。 平台页面上的每一条外包需求旁边,都多了一层数据面板。 第一条:某社交app的数据接口开发。 【甲方信誉评分:31/100|实际预算:低於標价60%|隱藏需求:要求免费维护半年|赖帐概率:67%】 韩路一嘴角抽了一下,赖帐概率百分之六十七,之前就接过这种单子,验收完了对方消失,尾款永远在路上。 第二条:某教育公司的ai课程推荐算法。 【甲方信誉评分:88/100|实际预算:与標价一致|隱藏需求:无|赖帐概率:1%】 这不就是开全图吗? 他挑了几个高信誉、低赖帐率的单子,开始干活。 视界的代码扫描功能在这时候展现出了恐怖的效率。 第一个单子,电商后台优化,打开代码,扫描三秒,所有性能瓶颈和潜在bug以高亮色块的形式浮现出来。別人要花一天理解的代码架构,他看一眼就全明白了。 四十分钟,搞定。提交修復报告的时候,甲方过了好一会儿才回:这么快?你们是多少人的团队啊? 第二个单子,ai推荐算法,稍微复杂一点,但这是他的老本行了,一个小时完成。 第三个单子,资料库迁移脚本,最简单的那种,半小时。 三个单子,一上午。 平台帐户余额提示:+8200元。 以前在鼎盛的时候,税后月薪五万出头,一个工作日算两千多块。 半天赚了差不多四天的钱。 韩路一靠在椅子背上,看著那个数字。 在鼎盛卷了五年,没有过这种手感。 精力值掉到了51,代码扫描的消耗不低,三个单子加起来用了將近一半。但钱已经到帐了,剩下的时间可以关掉视界慢慢恢復。 他伸了个懒腰,关掉接单平台,打开了瀏览器。 昨天视界扫到的那条提示一直在他脑子里,快闪科技,核心运营数据严重异常,修復可获得大量经验。 他搜了一下快闪科技,打开官网,开了视界。 就一秒。 视野里“啪”地炸开一片刺目的红。 整个页面都被一层红色覆盖了。 一行巨大的警告浮现在正中央。 【严重异常!!!】 【该公司公开dau数据与系统推算真实数据偏差率>400%】 【数据造假概率:99.7%】 【关联风险:用户隱私数据异常调用,详情需主动扫描】 四倍。 dau造假四倍,十个亿融资,建在这种数据上。 他拿起手机,在应用商店搜“快闪”,下载,安装。 先扫快闪的公开资料,官网、应用商店页面、公开的融资新闻稿。 视界叠上去的数据图层把每一组公开数据都標註了“真实偏差”。 註册用户:官方宣称8000万。 【系统推算真实值:约2300万|偏差率:248%】 月活用户:官方宣称6000万。 【系统推算真实值:约1400万|偏差率:329%】 日活用户:官方宣称3500万。 【系统推算真实值:约680万|偏差率:415%】 每一组数据旁边都掛著红色標籤。 韩路一的目光在三行数字之间来回扫了两遍。 等等。 表面上看,8000万註册、3500万日活,日活率43%,完全合理。 但视界给出的真实註册只有2300万。 3500万日活,2300万真实註册,日活比真实用户总数还多出一千多万。 就算每个真实用户天天登录,也凑不出3500万,多出来的人从哪来的? 精力值在快速下降,50,46,42…… 韩路一带著这个问题加快了速度,他拿起手机,打开刚下载的快闪app,隨手刷了几条视频。 视界同时在扫描底层数据的流动。 视界扫描了十五秒,弹出一连串红色警告。 【严重异常1|app实际读取:通讯录、简讯记录、gps轨跡|用户协议声明范围:基本设备信息|超范围採集】 通讯录、简讯记录、gps轨跡,快闪在偷2300万用户的一切。 视界继续深入,后端架构的轮廓像洋葱一样一层层剥开,一个隱藏极深的模块浮出水面。 【严重异常2|检测到“用户行为模擬引擎”|输入:真实用户隱私数据(行为模式/社交关係/地理轨跡)|输出:批量虚擬活跃帐户|当前虚擬帐户规模:约2800万】 韩路一的脊背一凉。 但视界还没扫完。又一条红色警告弹出来,这次刺眼得让他眯了下眼。 【严重异常3|检测到“境外数据传输通道”|数据偽装为cdn图片流量外传|中转节点:三层跳板,落地东南亚|流向:灰色產业链】 拼图的最后一块落进去了。 快闪偷来的隱私数据是原料,2300万真实用户的行为模式被餵进模擬引擎,批量造出了2800万以假乱真的“活跃用户”。这些虚擬帐户会刷视频、点讚、留言,行为模式照搬真人,从外面几乎看不出破绽。 与此同时,同一批数据还在经多层跳板流向境外。通讯录、简讯、gps轨跡——这些东西到了灰產手里能干什么,韩路一想都不敢想吗,仿冒身份、精准诈骗、大数据杀熟,每一条都是真金白银的生意。 680万真人加上2800万幽灵,凑成了3500万日活的漂亮数字。 一条完美的造假链:偷数据→仿真人→充日活→骗融资,而数据本身还被卖了第二遍。 十个亿的融资是骗来的,还赚著卖隱私给灰產的黑心钱,两头吃。 这些信息的衝击力太大了,韩路一关掉视界,缓了好一会儿。 他打开了一个新的文本文件,把刚才看到的所有信息凭记忆敲了进去:数据偏差、隱私窃取、境外流出、行为模擬引擎、造假链条,分条列明。 全部记完之后,他看著这份文件沉默了一会儿。 这份东西的来源没法解释。 他需要一条乾净的证据链,每一步都经得起追问。 韩路一开始收集证据。 先做apk逆向,快闪的安装包反编译后,可以看到资料库接口,用户id是自增主键,最大值停在2300万附近。官方宣称8000万註册,差了三倍多。 再掛代理抓包,手机连上笔记本的抓包工具,打开快闪隨便刷了几分钟,网络请求一条条列出来,从中抓出几条极隱蔽的指向新加坡ip的加密请求。 最后写爬虫,一段脚本抓取快闪公开页面上“活跃用户”的行为数据,跑了半小时,结果出来了,大量帐號的点讚间隔、瀏览路径、活跃时段高度雷同,呈明显的机器生成特徵。 三份证据保存好,这才是能摆上檯面的东西。 韩路一再次点进快闪官网的“关於我们”页面。 联合创始人兼cto:周明哲。 这张脸他见过,去年鼎盛年会,王志远那桌,坐他右手边的那个人,陈博文还过去敬了酒。 vp请外面的人来年会太常见了,他当时没在意,但现在这张脸出现在快闪的cto栏里,韩路一心里划了一个小小的问號。 韩路一面前摆著两条路。 第一条:当没看见,把刚才的东西都刪掉,没有任何风险。 第二条:把这些东西捅出去。 怎么选? 快闪背后是十个亿的融资、头部vc的站台、专属法务团队。他有什么?一份不能说明来源的证据。 但如果不管—— 2300万人的隱私每天都在流向深渊,变成对你嘘寒问暖的杀猪盘、变成能报出你身份证號的“客服退款”、变成自称广东公安的“陈警官”。 想到这,他拿起手机,翻开微信,找到一个名叫【404寢室】的群聊。 窗外天已经黑了,手机屏幕的光映在他脸上。 一个刚失业的程式设计师,去对抗一家百亿估值的公司。 听起来像个笑话。 但…… 韩路一打了一行字:“晚上出来搓一顿,我请,有正事。” 第四章 堂吉訶德的衝锋 马小飞三秒內回覆:“???老韩你主动请客?说吧让我干谁?我两肋插刀!” 张浩然慢了两分钟:“下班后可以,老地方?” “老地方。” 老地方是大学城旁边一家叫“再来一串”的烧烤摊。 老板换了三任,烤串的味道换了三个风格,但404寢室的三个人每次聚会都来这儿。 晚上七点半,三个人坐在露天的塑料凳上,面前摆著六十串烤肉、一盆小龙虾和三瓶啤酒。 “先说正事。”马小飞举起啤酒瓶指著韩路一,“老韩,你被鼎盛优化了?” “嗯,昨天的事。” “臥槽!”马小飞表情夸张到像在演小品,“你p7啊!你一个p7的算法工程师被优化了?鼎盛是疯了吗?” “陈博文把我的项目摘了。” “操他……”马小飞拍了一下桌子,小龙虾汤溅出来两滴,“这种人你不告他?” 张浩然在旁边默默剥虾,声音不大:“告不了,项目归属公司,署名权这个东西在大厂基本是灰色地带。” “那也太他妈欺负人了!” 韩路一笑了笑,喝了一口啤酒,他打开视界,好奇两个兄弟的面板长什么样。 马小飞的面板弹出来了。 【马小飞|26岁|自媒体博主/自由摄影师】 【情绪:义愤】 【隱藏情绪:嫉妒(韩路一居然还是不禿)】 【核心焦虑:帐號涨粉瓶颈期】 本书首发 101 看书网解闷好,????????????.??????超顺畅 ,提供给你无错章节,无乱序章节的阅读体验 【粉丝总量:4.7万|当月收入:¥8200】 韩路一差点没绷住,嫉妒他不禿。 再看张浩然。 【张浩然|26岁|海城兴隆银行信息技术部主管】 【情绪:担忧(为韩路一)】 【隱藏情绪:无】 【核心焦虑:月底房贷¥11400】 韩路一关掉视界,笑著又喝了一口。 “不说我了。”他把话题引开,“小飞,你最近在追什么选题?” 马小飞来了精神,咬牙切齿的精神。 “你不说我还想说呢,快闪你知道吧?那个短视频app。” “快闪怎么了?” “我被那帮孙子坑了,”马小飞把啤酒瓶往桌上一顿,“坑惨了。” 韩路一夹虾的手停了一下:“怎么回事?” “上个月我接了一单推广,一个护肤品牌找我在快闪上投信息流gg,品牌方出预算,我负责內容和投放。”马小飞越说脸越黑,“我跟你讲,我把这单当翻身仗来打的,自己贴了一万二的製作费,拍了三条视频,熬了半个月。” “然后呢?” “然后投上去,效果稀烂。快闪官方说月活八千万,按他们公布的流量模型,我那条gg至少应该有五十万曝光,结果实际只有八万。八万!转化率更离谱,品牌方预期的roi完全没达到。” 马小飞一口啤酒灌下去:“品牌方觉得是我內容做得烂,尾款两万块直接不付了。我找快闪客服投诉数据有问题,你猜人家怎么说?“投放效果受多种因素影响,建议优化內容质量。”” “尾款没追回来?”张浩然问。 “追个屁。品牌方说没达到kpi就是没达到,合同里白纸黑字写著。我总不能告诉人家“快闪数据注水所以效果差”吧?我拿什么证明?”马小飞搓了搓脸,“一万二製作费打水漂,两万尾款没了,三万二!我一个月才赚八千多!” 韩路一看著他的表情,感觉他都快吐血了。 “后来我不死心,又花了一个星期扒他们的公开数据。cpm、用户活跃曲线、gg填充率,全都对不上。”马小飞压低声音,“老韩我跟你说,他们的数据至少注了三倍水,但我没有技术能力去证明,只能从投放数据反推,不够硬。我要是发出去,快闪法务分分钟告我誹谤。” 实际是四倍以上。 张浩然在旁边开口了:“快闪b轮的领投方是星辰资本和云帆创投,这两家都不是小机构,尽调应该做过了,如果数据真有这么大的水分,投资方不可能看不出来。” “那就是投资方也被骗了唄。”马小飞说。 “或者投资方知道,但装不知道。”张浩然用筷子点了点桌面,“击鼓传花,只要能在下一轮之前把估值做上去,接盘的不是他们就行。” 韩路一想起下午在快闪团队页看到的那张脸,问了一句:“快闪的cto周明哲,你听说过吗?” 张浩然剥虾的手停了。“周明哲?”他皱了下眉,“这名字……等等,他是不是之前在鼎盛?” “嗯,年会我见过他,坐王志远那桌。” “对。”张浩然放下筷子,“他是王志远带出来的,2023年从鼎盛离职的,之前在王志远手底下干了三年技术,走的时候鼎盛內部还有人议论。” 马小飞在旁边听得两只眼睛越瞪越大:“等一下,快闪的cto是鼎盛vp的老部下?” “大厂的人出去创业太常见了。”张浩然说,但他顿了一下,语气变得谨慎,“不过我上个月帮行里做合规审查的时候,扫到过快闪天使轮的一笔投资,走的壳公司,结构上像个人投资通道,不像正规机构行为。” 他没继续说。 韩路一喝了口啤酒,快闪的水,比他想的要深。 他看向张浩然,这人平时话不多,但看问题的角度总是很准。 “假设,”韩路一斟酌著用词,“假设有人拿到了快闪数据造假或者盗取隱私的硬证据,技术层面的那种,怎么处理比较稳妥?” 张浩然抬头看了他一眼。 “除非是竞对的那几个大公司,普通人要举报他们不是以卵击石吗?人家法务也不是吃素的……” 话没说完,马小飞停下来,也看了他一眼。 “老韩,”马小飞放下啤酒瓶,“你是不是知道点什么?” “我隨便假设。” “你这个表情可不太隨便。” 韩路一没接话,喝了口啤酒。 张浩然想了想,说:“如果真有硬证据,直接举报不是最优选择,快闪估值百亿,法务团队肯定有准备的,最稳妥的做法是走匿名渠道,找专业媒体,但在这之前——” 他从手机里翻出一张电子名片,推到韩路一面前。 “得先找个靠谱的律师,搞清楚法律风险。” 名片上写著:顾司玥,海城博衡律师事务所,高级合伙人。 “这是?”韩路一问。 “我们银行的外聘法律顾问之一,做网际网路和智慧財產权诉讼的,非常厉害。”张浩然说,“人有点冷,但专业能力没得说。” 韩路一把名片存了下来。 马小飞在旁边看看这个看看那个,觉得自己成了一条嗅觉敏锐的自媒体猎犬:“你们俩这什么眼神?到底怎么回事?老韩你是真的有料对不对?” “我真的是隨便假设。” “我信你是秦始皇。” “说真的老韩,你接下来打算干嘛?”马小飞问。 “先接点私活,”韩路一说的是实话,“然后看看有没有什么想做的。” “你这技术水平,出去创业分分钟的事。” “创业这东西不是光有技术就行的。” “行了行了,”马小飞站起来去结帐,“今天算我请,改天你发財了记得带上兄弟。” “不是说我请吗?” “你刚失业呢你请什么请!”马小飞把他摁回塑料凳上,“这种时候还跟我抢买单?给我省省吧老韩。” 韩路一笑了笑,没再爭。 回到家,韩路一坐到电脑前,打开了下午记录快闪问题的那个文本文件。 张浩然说得对,先找律师。 韩路一拿起手机,翻到张浩然发来的那张电子名片。 顾司玥,海城博衡律师事务所。 打开博衡律师事务所的官网,找到了在线预约页面,填了一个明天上午的諮询预约。 姓名:韩路一。 諮询方向:网际网路企业数据合规。 备註:涉及用户隱私安全的技术举报需要法律评估。 发送。 第五章 两千三百万分之一 博衡律师事务所在陆家嘴一栋写字楼。 韩路一站在大堂的楼层指示牌前,看了一眼手錶,上午十点差两分钟。他今天特意换了件乾净的衬衫,头髮也拢了拢,陆家嘴的律所,穿运动服进去不太合適。 电梯停在十九楼。 前台是全透明玻璃墙设计,黑胡桃木前台上摆著一枝白色马蹄莲,墙上掛著一排律师照片和执业资质,金色铭牌刻著“博衡律师事务所”。 “您好,请问有预约吗?” “韩路一,预约了十点的諮询,顾司玥律师。” 前台翻了一下电脑,点点头:“顾律师在会议室等您了,这边请。” 来到会议室门前,前台敲了敲虚掩的门。 “顾律师,您十点的客人到了。” 会议室不大,一张六人位的会议桌,窗外能看到半截陆家嘴的天际线,桌子一头坐著一个人。 她身穿黑色西装,白衬衫,黑色长直发在脑后束成一个低马尾,几乎没有碎发,细框眼镜下面是一张线条分明的脸,很白,嘴唇抿成一条直线。 整个人像一份排版严谨的法律文书。 顾司玥从笔记本电脑后面抬起头,看了他一眼,站起来,没有笑容,只是微微点了一下头,伸手示意她对面的座位,整套动作加起来不超过两秒,然后重新坐下。 “请坐。” 韩路一坐下来。张浩然说“有点冷”,这叫有点? “顾律师,我——” 【记住全网最快小説站 海量小说在 101 看书网,101??????.??????等你寻 】 “韩路一,前鼎盛集团算法工程师,p7,今年二月被裁员,諮询方向数据合规,备註写的技术举报。“她翻了一页本子,“你的公开背景我查过了。“ 韩路一眨了一下眼:“……效率挺高,我连自我介绍都省了。” “諮询按小时收费,”顾司玥合上笔记本电脑,终於正眼看他,“说吧,什么情况。” 韩路一开了视界。 数据面板在顾司玥身上浮现。 【顾司玥|28岁|博衡律师事务所高级合伙人】 他多看了一眼,面板展开了详情。 【情绪:公事公办(隱藏:略微好奇)】 【评价:又一个程式设计师?】 【逻辑推理能力:异常值(outlier)】 又一个程式设计师?这五个字配上问號,信息量很大。说明找她諮询的程式设计师不少,而且她对这个群体的整体评价不太高。 视界给人打標籤,韩路一见过“优秀““较强“,没见过直接標“异常值“的。这是数据偏离正常分布太远,视界不好给评分了。 他关掉视界。 “我在一个公开渠道下载的app上,发现了一些数据异常。” “哪个app?” “快闪。” 顾司玥的表情没有任何变化,拿起了桌上的笔。 韩路一提前准备好了一份说辞,他不能暴露金手指,所以要把“视界扫描”包装成“技术分析”,好在他確实有技术能力支撑这个说法。 “我下载快闪的app后,出於职业习惯做了一些技术层面的观察,app运行时的网络请求行为和它在用户协议中声明的数据採集范围有明显不一致。” “具体呢?” “两个层面,”韩路一竖起手指,“第一,隱私窃取,app实际读取通讯录、简讯记录、gps轨跡,但用户协议只声明了基本设备信息,严重超范围採集,而且这些隱私数据被加密后发往东南亚的ip。” “东南亚?”顾司玥把笔放下,身子靠近了桌面。 “第二,数据造假。”韩路一说,“我对apk做了反编译,用户id自增主键最大值约2300万,但官方宣称註册用户8000万。然后我用爬虫抓了公开页面的活跃用户数据,大量帐號的行为模式高度雷同,呈机器生成特徵。更离谱的是——官方宣称日活3500万,比真实註册还多,多出来的全是假的。” “影响范围?” “约2300万註册用户的隱私数据被窃取,b轮十个亿融资的估值基础全建在假数据上。” “你说的这些,有什么证据?” “apk抓包记录、爬虫数据、行为分析报告,全部做了脱敏处理,只涉及app公开行为,没碰过任何后端代码或者伺服器。” “你確定?” “確定,所有操作都在合法范围內——下载公开app,反编译公开安装包,抓取公开页面数据,都是正常的安全研究。” 顾司玥看了他几秒。 那几秒钟让韩路一有一种被x光扫描的感觉。 “假设你的技术能力是够的,但技术能力和法律安全是两回事,你知道快闪是什么体量的公司吗?”她开口道。 “b轮融资十个亿,估值一百亿。” “对,一百亿,法务团队至少二十人,还有外聘律所,你如果实名举报,他们有一百种方法让你后悔。” 顾司玥把双手放在本子上,手指交叉,看著他。 “我需要问你几个问题。” “请说。” “你跟快闪有劳动关係吗?” “没有。” “投资关係?竞业关係?商业纠纷?” “都没有。” “你不是快闪的员工,不是投资人,不是竞爭对手,甚至不是被快闪直接侵害过利益的当事人。”顾司玥的语速没有变,但每个字都在收紧,“你是一个刚被別的公司裁员的程式设计师,你现在要做的事,是去举报一家百亿估值的公司。” 她停顿了一下。 “为什么?” 这个问题问得很直接。 对一个律师来说,委託人的动机决定了这个案子值不值得接,一个没有利害关係的人要去戳百亿公司的眼睛,要么是傻,要么是圣人,要么是有没说出来的原因,三种都不好接。 “你说我不是被直接侵害过利益的当事人,这一点不对。”他说。 顾司玥微微抬了一下眉毛。 “我下载了快闪。”韩路一说,“我的手机里有我朋友的电话、我的聊天记录、我每天去了哪里,从我安装这个app的那一刻起,这些数据就被偷走了,被卖给不知道哪个灰色產业链。” 他停了一下。 “我就是那两千三百万人之一。” 顾司玥没说话。 “我一个兄弟是做自媒体的,上个月在快闪投了一单gg,因为数据注水,效果远低於预期,品牌方不付尾款,他自己贴了一万多的製作费,全打了水漂,他一个月才赚八千块。”韩路一的语气平静,“他没有技术能力去证明快闪造假,他能怎么办?找客服投诉?人家让他“优化內容质量”。” 顾司玥的手在本子上轻轻点了一下。 “我前天刚被公司裁员。”韩路一说,“原因我不多说了,大公司欺负小人物这种事,我刚经歷完一遍,快闪乾的是同一套,我是大公司,我掌握数据,用户是小人物,我想怎么用就怎么用,反正你们看不到。” 他看著顾司玥的眼睛。 “现在我看到了。” 会议室安静了几秒。 顾司玥看了他一会儿,然后她拿起笔,重新翻开本子。 “两千三百万人里,只有你一个人跑来找律师。” “两千三百万人里,有我一个就够了。” 第六章 七十二小时 “两千三百万人里,有我一个就够了。” 顾司玥没有评价这句话。 “数据造假是商业欺诈,罚款加赔偿,性质上是钱的事。”顾司玥的语速放慢了半拍,“但数据出境不一样。2300万用户的通讯录、gps轨跡未经安全评估流向境外,这是数据安全法和个人信息保护法的双重红线。直接责任人要追刑责,三到七年。下游数据流入诈骗链条的话,还得加一条侵犯公民个人信息罪,数罪併罚。” “你知道这意味著什么吗?”她盯著韩路一缓缓道,“这不是商业丑闻,这是刑事案件。” “所以我应该直接报公安?” “你来找我是对的。”顾司玥说,“我不建议直接报案。” “第一,百亿估值的公司,社会关係不会简单。报案材料递进去,从受理到立案到调查,每一步都有时间差。快闪的法务团队只需要一个电话,境外传输通道关掉,伺服器日誌清乾净,你的证据指向一堆空气。” “第二,报案流程里你的身份很难完全保密。快闪的律师有一百种合法手段拿到举报人信息,到时候会有人想让你的生活过不下去。” “要报,但不是你报。”顾司玥说,“网信办、工信部和网安的举报材料我来擬,以律师名义递,同时走媒体,让报导造势,两条线一起推,你可以隱身。” 韩路一点了点头。 顾司玥开始在本子上写字。 “方案分为三层。”她落笔极快,“第一,匿名举报;第二,证据公证,你的分析材料具备法律效力,转交给我;第三,法律防火墙,快闪找到你头上的任何接触都通过我中转。” 她抬起眼睛看著韩路一。 “按我说的做,他们找不到你,自作聪明的话,我也救不了你。” 韩路一开口道:“收费怎么算?” “諮询费每小时两千。”顾司玥合上笔记本,“后续业务打包给你一万。” 韩路一提前了解过了,这种业务一般是五到十万,一万的价格是超级折扣了,他偷偷打开视界。 【顾司玥|情绪变化:公事公办→微妙的认可|评价升级:有正义感的傻子】 “行,按你说的来。” 顾司玥站起来收东西,走到门口,她停下补充了一句。 “你有七十二小时。” 韩路一愣了一下。 “快闪下周二有投资人闭门会,b轮交割的最后环节,会前引爆最好。”她的语气严肃,“过了这个窗口,b轮融资一旦完成,举报的后果更不可控。” 韩路一算了一下,今天周五,周二闭门会,还有七十二小时。 “另外,事情做乾净,这家公司背后不简单。” 说完她推门出去了。 韩路一站在会议室里,回味著最后两句话,他这次见面得到的信息比想像的多得多。 倒计时开始了。 —— day 1 韩路一从律所出来,在地铁上用手机备忘录整理思路。回到家花了两个小时,把快闪的技术分析写成一份十二页的脱敏报告。数据不涉及任何非公开信息,但逻辑链完整,结论清晰,不懂技术的人也能看明白快闪在干什么。 完成后拆成两个版本,完整版给监管,精简版给媒体。 下午,公证处。 工作人员的脸色一边看报告一边变化,从礼貌微笑变成面无表情,又从面无表情变成反覆翻页確认。 “先生,您確定这份材料可以公开?” “確定,全部是公开可获取的信息。” 盖章,签字,公证书到手,一共花了四十分钟。 出了公证处,韩路一打了三通电话。 第一个,顾司玥。 “公证完了,举报材料什么时候递?” “今晚,匿名渠道已经安排好了,我的助理会联繫你。” 第二个,马小飞。 “举报快闪,你那有媒体的路子吗?” 电话那头安静了三秒,马小飞的声音切换成了韩路一很少听到的认真模式:“你有硬东西?” “已经公证了,法律程序都完善,但必须走正规媒体首发,自媒体发,快闪法务直接告你誹谤。” “我认识的36度的编辑老赵,我今天联繫他。老韩我跟你说,那帮孙子坑了我三万二,这事要是成了……” “我这可不是给你报私仇,这是2300万用户的隱私安全。” “行行行你高尚,但我也顺便报仇。” “对了,你別说是我,有律师替我出面。” 第三个,张浩然。 “能帮我从金融侧梳理一下快闪的融资链条吗?公开信息,看估值逻辑站不站得住。” 电话那头敲了两下键盘。“快闪?你要动手了?”张浩然哼了一声,“我早觉得他们的增长曲线有鬼,给我一天。” 三条线同时启动。 晚上九点,顾司玥发来消息:“举报材料已递出。从现在开始,不要主动联繫任何记者,不要发社交媒体,你对任何人说的每一句话,都默认可能被取证。” “明白。” ““任何人”包括你那两个朋友。” 韩路一看著这条消息,觉得这个律师过於稳健。 倒计时:48小时。 —— day 2 凌晨两点,马小飞转来老赵的消息。老赵看完材料,“声音都在抖”,还追问他那个律师朋友怎么有这种猛料。36度编辑团队已经连夜启动了交叉验证。 但紧跟著第二条消息让韩路一坐了起来。 老赵说:快闪的公关部似乎嗅到了什么,今天下午开始密集约行业媒体“沟通”,疑似在做舆论预案。如果不加速,对方可能抢先发闢谣声明把水搅浑。 韩路一打开快闪app,开了视界。 他的脸色变了。 快闪昨晚悄悄推送了一次热更新,更新日誌写的是“优化用户体验”,但视界清清楚楚地看到,隱私数据採集通道正在被逐步关闭,窃取用户隱私的接口有三个已经停用,剩下两个在做代码混淆。 他们在刪痕跡。 精力值掉了11点,韩路一关掉视界,给顾司玥发消息。 “快闪昨晚紧急更新app,在关闭隱私导出通道。他们开始销毁证据了。” 顾司玥三十秒后回了几个字:“提前十二小时。” 韩路一盯著这条消息。原计划周二早晨发布,现在要提前到周一晚上,留给36度的审稿时间又短了半天。 下午,张浩然的金融分析到了。一天就做完了,快闪的融资链条、股权结构、资金流向,全部用公开数据梳理清楚。结论:b轮估值的逻辑完全建立在注水数据上。数据一垮,估值就是空中楼阁。 三条线的材料齐了,就看36度审稿了。 倒计时:22小时。 —— day 3,上午。 韩路一把快闪紧急更新前后的数据对比截图发给顾司玥。销毁证据这个行为本身,就是最好的证据。匿名渠道追加提交。 上午十点,马小飞接到老赵的一条语音,就一句“內审过了”,后面跟著一声长长的呼气。一天半的交叉验证,三个匿名信源的补充採访,过了。张浩然的金融分析又马小飞同步转给老赵作辅助材料。 下午四点,404寢室群弹出一条消息,四个字。 “晚上八点。” 韩路一盯著屏幕,脖子酸得转不动,桌上摆著三杯外卖咖啡,喝的还剩半杯。 顾司玥发来最后一条:“准备好了?” “准备好了。” 韩路一关掉手机屏幕,窗外是海城的午后阳光,隔壁隱约传来林朵朵看动画片的声音,一切都很平静。 他起身,打算去床上闭两个小时的眼。 手机调了八点的闹钟。 第七章 引爆 晚上八点整。 韩路一坐在电脑前,刷新了一下36度科技频道的页面。 报导上线了。 標题:《独家调查:快闪科技核心运营数据涉嫌大规模造假,2300万用户隱私或遭泄露》。 他没有做任何事,没有转发,没有评论,没有在任何平台提一个字。 十分钟,科技圈的媒体炸锅了,马小飞在404寢室群里发了一串感嘆號,张浩然发了一个句號,韩路一没回。 三十分钟,微博热搜第九。 一个小时,热搜第三,话题阅读量破两亿,评论区以每秒刷新的速度在增长。 “2300万用户的隱私就这么偷?快闪你是认真的吗?” “星辰资本那帮人怕是睡不著了,b轮的钱还没捂热就炸了。” “数据还往境外送???这不是泄露,这是卖了吧?怪不得我最近老接到诈骗电话,精准报我名那种。” 两个小时,快闪科技官方发布紧急声明,措辞模糊,既不承认也不否认:“正在核实相关信息,將第一时间向公眾通报。” 翻译一下就是“我们在想怎么圆”。 三个小时,星辰资本发布简短声明:“已关注相关报导,正在与快闪管理层沟通。” 资本市场的反应比舆论更快,快闪的b轮交割暂停了,周二的投资人闭门会直接取消了。 韩路一打开报导页面,打开视界。 【该报导阅读量:287万(上升中)】 【舆论影响力评级:a】 【快闪科技估值实时波动:-22%(下降中)】 他关掉视界。 手机响了。 顾司玥。 “你看到新闻了?”韩路一接起来。 “看到了,写得很克制,全靠数据说话。”顾司玥的声音听不出什么波动,“法律层面你放心,他们查不到你。” 顾司玥在电话那头停了两秒。 “做得不错。” 然后掛了。 韩路一看著手机,花了几秒钟消化这四个字。顾司玥说“做得不错”,大概相当於马小飞说“臥槽牛逼”吧。 他笑了一下,放下手机。 评论区还在以每分钟两位数的速度增长。 与此同时,技术圈开始追查那份匿名技术分析的作者了。 有人在论坛上逐段分析报告的行文风格和技术视角,有人猜是某大厂的安全工程师,有人猜是竞品公司的人在搞事,有人甚至猜是快闪內部的吹哨人,“对底层技术架构太熟了,不像外部渗透”。 一个id叫“逆向工程老王”的用户发了一条长帖,从报告中对base64的吐槽方式、对数据管道的描述习惯、对隱私合规的技术理解深度三个维度做了画像分析,结论是:“作者大概率是一线大厂的后端或算法工程师,工作年限五年以上,对app行为分析有实战经验。” 距离猜到韩路一,还差几步。 但没有人往“刚被裁员的前鼎盛p7”这个方向想,一个失业程式设计师,被排除在所有人的视线之外,不在候选名单上。 韩路一把这个帖子收藏了,关掉了瀏览器。 顾司玥的话还在耳边,“法律层面你是乾净的,他们查不到你。” 人肉搜索可不走法律渠道。 他需要继续保持隱身。 就在这时候,视界自动弹开了。 整个视野里涌进一道巨大的系统提示,金色的,占据了他半个视野。 【重大漏洞修復协助完成】 【影响范围:2300万用户隱私安全】 【你的行动推动了该漏洞的公开和修復进程】 【经验值+200】 【当前经验值:212/200】 【升级条件已满足!】 【正在升级……lv.1→ lv.2】 眼前的世界碎裂了,像一台电脑强制重启,所有画面闪烁、断裂、重组,他感觉自己的大脑被格式化了一遍,然后重新安装了作业系统。 重启持续了几秒钟。 当一切稳定下来的时候,视界面板已经变了。 【升级完成】 【lv.2|精力:83/250】 韩路一盯著面板看了一会。 就这? 等级从1变成了2,精力上限翻了一倍多,然后……没了? 但他立刻发现了不同。 视野里的信息变多了,之前只能感知到身边几米的范围,现在整栋楼的数据都在往他眼睛里灌,隔壁林晚晴家里的面板隱约浮现在视野边缘,楼上楼下住户的数据以半透明图层的形式叠在空间里。 信息量比之前大了十倍不止,他赶紧关掉了全范围扫描,只保留近距离的被动感知。 还有一个更重要的变化。 他打开笔记本电脑,点进最近一个接单项目的代码仓库。 之前在lv.1看代码,bug的位置会亮红光,旁边飘一行简短的警告,標註错误类型。看到了,然后呢?还是得自己分析,自己想方案,自己改。 现在不一样了。 每一个红色標记后面,都跟著一整块展开的修復路径。改哪个文件、改哪一行、怎么改、改完之后有什么影响——全部列得清清楚楚,像一份写好的处方。 韩路一盯著屏幕上下滑动。 他隨便点开一个標记为严重的bug,是资料库连接池泄漏,之前他接单的时候已经手动修过了,但修復路径给出的方案比他的更优——不只是补上了泄漏,还顺带优化了连接池的回收策略。 如果升级之前他是拿著放大镜找虫子的人,现在他手里多了一本《害虫防治指南》。 他又看了一眼面板——精力值在缓慢下降,深层扫描比之前费精力了,但上限也翻了一倍多,足够用。 韩路一关掉代码仓库,往椅背上一靠。 闭上眼睛,才发现身体状態出奇的好,连日赶报告、做公证、来回跑,身体的疲惫的要死,现在全都消失了。 这是升级的赠品吗? 韩路一从椅子上跳起来,神清气爽。 该做正事了。 韩路一拿起手机。 他想给马小飞和张浩然说点什么,但想起顾司玥的话,“你对任何人说的每一句话,都默认可能被取证。” 算了,不说了。 他退出微信的时候,屏幕顶部跳出来一条新消息提醒。 一个他已经很久没看到的头像。 苏念念。 “路一?好久不见。听说你从鼎盛出来了?” 韩路一看著这条消息,怔了两秒。 苏念念…… 两年多没联繫了,上一次有交集还是23年国庆节,他在朋友圈发了一张加班工位的照片,她在底下回了句“注意身体”。 他的手指悬在屏幕上方,没有打字,脑子里闪过了几个画面,三食堂门口她冲他挥手的样子,图书馆里她趴在桌上睡著的侧脸,毕业散伙饭上全班举杯的嘈杂。 很快,像弹幕一样划过去了。 最后他打了四个字。 “嗯,出来了” 消息发出去不到两秒,对话框里苏念念的名字变成了: 对方正在输入… 第八章 好久不见 苏念念的微信回得很快。 “太突然了吧!你怎么也不在群里说一声?” “没什么好说的,正常流动。” “你还是这样,什么事到你嘴里都是四个字就打发了!” 韩路一看著屏幕笑了一下。苏念念说话的风格一点没变,打字永远带感嘆號,像怕对方感受不到她的情绪。 “最近怎么样?”他问。 “还活著。你呢?有什么打算吗?” “先休息一下,想想接下来干什么。” “那要不要出来坐坐?好久没见了,敘敘旧。” 韩路一打了几个字又刪掉,最后回了个“行”。 苏念念发过来一个定位。 bug café。 韩路一愣了一下。这家咖啡馆在他家附近,离小区走路十分钟,他几乎每周都去坐一坐。老周的咖啡不算最好喝,但胜在安静,wifi稳定,程式设计师扎堆的地方总有一种特殊的鬆弛感。 苏念念怎么知道这个地方的? “大眾点评搜的,评分还挺高。而且离你近,別跟我客气说你来接我之类的。” 苏念念说她明天下午在附近见个客户,三点左右能结束,“正好过来坐坐?” 韩路一说行。 关掉微信,他靠在椅背上看著天花板。 两年多的空白说长不长,说短也不短。够一个人换两份工作,够一座城市拆掉一条街再盖起来,够两个曾经每天说话的人变成通讯录里埋在下面的一个静静地头像。 第二天下午两点五十,韩路一推开了bug café的门。 老周的咖啡馆开在社区底商的一楼,门口掛著一块黑色招牌,上面画了一只举著咖啡杯的瓢虫,bug的双关。店里不大,十来张桌子,墙上贴满了各种编程梗的海报。最显眼的一张写著“it works on my machine”,旁边老周自己加了一行手写体:那就別动它。 “小韩!”老周在吧檯后面抬头,四十多岁的中年男人,退役程式设计师,头髮比同龄人少一半,脾气比同龄人好一倍,“美式还是手冲?” “先来杯美式,周哥。等会儿还有个朋友来。” “约人?稀奇。你来这儿半年了,头回带朋友。” “大学同学,好久没见。” 老周瞭然地点点头,没再多问。 韩路一选了靠窗的位置坐下。阳光从落地窗照进来,把桌上那本翻旧了的《代码大全》晒得发黄。 三点零二分,门被推开了。 苏念念站在门口。 韩路一一抬头就认出来了。变了,也没变。 头髮还是长的,但没有大学时那么长了,到肩胛骨的位置,微微有些卷。她穿了一件米白色的针织开衫,里面是白色连衣裙,踩著一双白色帆布鞋。脖子上戴了一个白色的choker,缀著一颗很小的珍珠。左手腕上一只细细的银鐲子,没有別的多余配饰。整个人还是那种乾乾净净的白色系,像从牛奶gg里走出来的。 她整个人看起来比大学时瘦了一点,下巴的线条更明显了,但笑起来还是那个样子,眼睛先弯,嘴角再跟上,像是笑容从眼睛里淌出来的。 “路一!” 苏念念看到他就笑了,朝他挥挥手,步子加快了一点,在他对面坐下来。 “念念。”韩路一也笑了,很自然地打招呼,“两年没见,你怎么瘦了?” “加班加瘦的,我们那个组一个月上了四个版本,我都快住公司了。”苏念念放下包,打量了一下他,“你倒是一点没变,还是这副样子。” “什么样子?” “就……卫衣牛仔裤运动鞋,程式设计师出厂设置。” “哪个程式设计师出厂设置有我这么帅?” 苏念念笑了,没接这个话,转头看了看店里的装潢:“这家店好有意思,墙上那个404页面是真的吗?” “老板自己写的,他以前也是程式设计师,写了十五年代码写禿了,退休开咖啡馆。” “好傢伙,前车之鑑就摆在你面前。” “我发量很健康,谢谢关心。” 老周端著两杯咖啡走过来。韩路一一杯美式,苏念念的菜单还没看,老周就先放了一杯招牌拿铁下来。 “小韩难得带朋友来,这杯我请。”老周冲苏念念笑了笑。 “谢谢老板!”苏念念双手接过杯子。 老周走了,苏念念低头喝了一口拿铁,抬头的时候嘴角沾了一点奶泡。 “所以你从鼎盛出来之后在干嘛?”苏念念问。 “接点散单,写写代码,想想接下来的方向。” “自由职业?” “算是吧,暂时的。” 苏念念点点头:“也好,反正你技术在那儿摆著,饿不死。” “你倒是对我挺有信心。” “那当然了,全班谁不知道你是卷王。”苏念念的语气很轻鬆,“大二那年你一个人肝作业系统课设,把教授都给整懵了,他说他看了十五年作业,头回见本科生完成度这么高的。” 韩路一被她说笑了:“你记性也太好了。” “那个事太经典了。”苏念念双手捧著杯子,眼睛弯弯的,“还有大三下学期那个比赛,你带队熬了三个通宵,比完赛直接睡在机房地板上,被保洁阿姨拿拖把捅醒的那次,” “行了行了,”韩路一摆手,“能不能说点我帅的事。” “你有帅的事?我不记得啦。” “过分了啊同学。” 两个人都笑了。 聊天很顺畅,像一台关机了两年的电脑突然通了电,系统文件还在,只需要重新启动一下,他们聊大学的食堂,聊室友的八卦,聊老师的口头禪。 所有话题都是安全区。 两个人都很默契。 韩路一觉得苏念念变了一点,大学的时候她说话更直接,想到什么说什么,现在她会在某些地方停顿一下,像是先在脑子里筛过一遍再说出口。这种谨慎並不让人觉得虚偽,只是她成熟了。 “你呢?在海狸做產品经理,怎么样?”韩路一问。 海狸科技,国內第二梯队网际网路大厂,主营短视频和本地生活,去年刚在港股上市,市值两千多亿。在网际网路圈子里,海狸的標籤是“加班狠、给钱多、晋升快”,属於那种应届生挤破头想进、工作三年后又拼命想逃的地方。 苏念念的表情稍微变了一下。 “还行吧,就那样。”她喝了一口咖啡,“最近在做一个ai方向的项目,挺有意思的。” “什么方向?” “ai代码审查工具,就是帮开发团队自动审核代码质量,找bug,给优化建议那种。” 韩路一来了兴趣:“ai现在挺热门的。” “对,所以我们老板很著急,想抢先发。”苏念念嘆了口气,“但我们技术团队做出来的东西……怎么说呢,能用,但不够好,跟市面上的竞品比没有核心竞爭力,用户测试的反馈也一般。” “一般是多一般?” “就是用户说“这个我用gpt也能干”的那种一般。” 韩路一笑了。 “更烦的是,”苏念念的语气轻描淡写,“这个项目本来是我从立项开始推的,需求文档写了几十页,用户调研也是我做的,结果上个月空降了一个总监,直接把项目负责人换成他自己的人了,我变成了“协助推进”。” “这不是……” “是,跟你一个剧本,只不过你演的是技术版,我演的是產品版。”苏念念说完自己笑了一下,“所以我听到你从鼎盛出来的消息,第一反应是,行吧,又一个。” “同病相怜啦?” “同病相怜也是一种社交动机啊。”苏念念的语气回到了轻鬆模式,“我就是想见见你,两年了嘛。” 她说这句话的时候眼睛看著窗外,语气很隨意,像是在说一件小事。 韩路一没有接这个话。 他端起美式喝了一口,沉默了两秒。 “你们那个ai代码审查,”他放下杯子,“定位的核心用户是谁?” 第九章 代码看不见的东西 苏念念愣了一下,然后眼睛亮了。 “中小型开发团队。大厂有自己的代码审查体系,不需要外部工具。但中小团队没有专门的代码审查流程,很多bug都是上线之后才发现的。” 一聊到產品她就自动进入状態了,毕竟是资深產品经理。 “所以核心需求不是“找bug”,是“上线前拦住bug”?” “对!”苏念念啪地一拍桌子,咖啡晃了一下,“你一下子就抓到点了。我写了五页用户画像才说清楚的事,你一句话就总结了。” “我也是用户嘛。写了五年代码,最怕的就是自己看不出自己的bug。” “那你觉得现有的ai代码审查工具最大的问题是什么?” 韩路一想了想:“大部分工具只能做静態分析,看代码本身的逻辑问题。但真正让团队头疼的bug,往往不是代码语法错误,而是代码和现实业务之间的错位,逻辑上没问题,但放到实际场景里就出bug。这种东西,ai看不出来。” 苏念念放下杯子,身体微微前倾:“你继续。” “比如一个电商app的推荐算法,代码逻辑没错,但上线后发现推荐结果严重偏向高价商品,低消费用户的留存率暴跌。这不是代码bug,这是代码和用户行为之间的错位。现有的ai工具分析不了这种东西,因为它只看代码,不看代码运行后的现实世界反馈。” 他说这些话的时候,脑子里闪过了什么东西。 一个模糊的、还没有成形的想法。 如果……有一款工具,不只是检查代码,而是能检测代码在现实场景中可能触发的问题呢? 这不就是他的视界在做的事吗? 当然,他不可能把自己的金手指做成一个產品。但视界的逻辑,“连接代码和现实”,完全可以抽象成一套方法论,用ai来模擬。虽然不可能做到视界那种精准度,但即使能实现百分之十的效果,也远超现有的竞品。 苏念念的声音把他拉了回来。 “说得我心痒痒的。”苏念念托著下巴看他,“你要是早两个月来我们组,这项目也不至於被人摘走。” “天下產品经理的项目,一半都是被摘走的。別往心里去。” “你还劝我呢?你自己被摘得比我还惨。” “所以我现在多通透啊,过来人的智慧。” 苏念念被他逗笑了,用勺子拨动著杯子里的拉花。阳光把她的侧脸照得很温柔,细碎的头髮丝在光里变成金色。 老周在吧檯后面擦杯子,余光瞟了一眼这边,嘴角若有若无地翘了一下。 “你接下来真就打算一直接散单?”苏念念问。 “不是长久之计。”韩路一靠在椅背上,“在想做点自己的东西。” “什么方向?” “还没定。有几个想法在脑子里,还不成熟。” “那想好了告诉我,说不定我能帮上忙。”苏念念说得很自然,“我好歹做了几年產品,用户调研和需求分析还是能干的。” “行,到时候找你。” 他说这话的时候確实只是客气,但苏念念认真地点了点头。 他们又聊了一会儿別的。她问他在看什么书,他说最近在看一本讲分布式系统的。她说自己在追一部剧,问他看不看,他说不看,她说你真无聊。 四点半了。 苏念念看了一眼手机:“五点有个会要回去准备,我得走了。” “行。”韩路一站起来,“我送你到地铁站。” “不用不用,走几步就到了。”苏念念摆手,拿起包站起来。 两个人走到门口。老周在后面喊了一声:“小韩,下次带朋友来打八折啊!” 苏念念回头冲老周挥了挥手:“谢谢老板!” 推开门出去,外面是傍晚的阳光,已经不那么刺眼了,把整条街染成暖黄色。 苏念念在门口站了一下。 “路一。” “嗯?” “以后……常联繫啊。” 她说这话的时候在笑,语气很轻鬆,像是隨口一说。 “好啊。”韩路一说。 苏念念冲他笑了一下,转身沿著人行道走了。白色帆布鞋踩在落日的阴影边缘,步子不快不慢。 韩路一站在bug café门口看了两秒,转身回了店里。 老周已经在给他续了一杯美式,放在他刚才的位子上。 “谢了周哥。” “大学同学?”老周问。 “嗯。” “不错。” 老周没再多说,低头继续擦他的杯子。 韩路一坐下来,端起咖啡喝了一口。 苦的。 他拿出手机,打开备忘录。 在空白页面上打了几个字: “代码审查工具,连接代码与现实场景,bugkiller?” 然后他盯著这行字看了一会儿,又在下面加了一行: “第一步:找个產品经理。” 写完他自己笑了一下。脑子里自动浮出了一张刚才还坐在对面、用勺子拨拉花的脸。 他关掉手机,靠在椅背上。 窗外最后一点阳光消失在对面楼顶。老周打开了店里的暖黄色灯,咖啡机嗡嗡地响著。 韩路一脑子里那个模糊的想法,比两个小时前清晰了不止一点。 就差动手了。 他又靠了一会儿。老周在吧檯后面安静地磨豆子,整个店里只剩他一个客人了。 韩路一拿起手机,习惯性地下拉了一下通知栏。 一条新闻推送卡在最上面。 【快闪科技ceo丁仁公开回应:匿名举报系恶意誹谤,已向公安机关报案,將依法追查信息源头】 韩路一的手指停了。 他点进去扫了一眼。声明的措辞很讲究——一个造假数据都不正面回应,全部火力集中在“追查匿名举报人“上。末尾引了刑法第二百四十六条,誹谤罪。 韩路一差点笑出来。 向公安机关报案?顾司玥递给公安网安的举报材料比这份声明早了三天。数据非法出境,流向境外灰產,侵犯公民个人信息罪,丁仁自己就是被查的对象,现在跑去公安说“有人誹谤我“——这不是报案,这是送人头。 但丁仁的目標压根不是法律,他在对著两亿围观群眾喊话:我不解释,我找人。 虚张声势,越凶说明越慌。 韩路一退出新闻,打开微博看了一眼快闪相关的討论。 丁仁的声明底下已经炸了。骂的占一半,但另一半的討论方向让他不太舒服,大家真的开始认真猜匿名举报人是谁了。 “逆向工程老王”又更新了一条长帖。 上次他的画像结论是“大厂后端/算法工程师,五年以上”。这次在丁仁声明的评论区里又往前推了一步: “匿名报告中对快闪数据管道架构的描述精度极高,对各种技术细节的剖起深入浅出。这意味著作者要么是快闪內部人员,要么具备远超常规的逆向分析能力。结合此前的画像,如果不是內部人,那这个人可能是业界知名的技术大牛。” 帖子底下最热的评论: “所以要么是內鬼,要么是大神。丁总你確定要找吗?找到了你请得起吗?” 韩路一没笑出来。 “远超常规的逆向分析能力”,老王不知道自己离真相有多近。 他把丁仁声明的连结转给了顾司玥。 三分钟后,顾司玥回了两条消息。 第一条:“小心他狗急跳墙。” 第二条:“从现在起,在任何平台、任何场合,都不要討论快闪。一个字都不要提。” 韩路一回了个“好”字。 他把凉透的美式一口喝完了。站起来,背上包。 老周在吧檯后面喊了一声:“明天见,小韩。” “明天见,周哥。” 推开玻璃门走出去,外面已经黑透了。路灯橘黄色的光把他的影子拖得很长。 韩路一走了两步,又摸出手机看了一眼。 备忘录最上面的两个文档,一个写著bugkiller,一个写著“不要提快闪”。 他锁了屏,加快了脚步。 第十章 赚钱如呼吸 升级到lv.2之后的第一个完整工作日,韩路一打开了自由开发者平台。 和之前不一样。 之前他用视界扫需求列表,能看到甲方靠不靠谱、预算是不是虚標、有没有额外的隱藏需求。这些信息让他能精准筛选高价优质单,一天赚个一万多不是问题。 但那只是“看”。 现在他能“修”了。 第一单,一个中型电商平台的后端优化。甲方描述是“系统偶尔卡顿,原因不明”,报价15000。 韩路一打开甲方提供的代码仓库权限,视界开启。 代码上浮现了一层半透明的高亮標註。 以前一个bug得他自己分析半天。现在视界直接给出了修復路径,改哪个文件、改哪一行、怎么改,全部列在面板上。他只需要动手抓药。 四十分钟,三个bug全部修完。他写了一份简洁的修復报告发给甲方。 甲方回覆:??? 第二条消息:哥们你这也太快了吧 第三条消息:我们自己的团队排查了两周都没找到原因 第四条消息:牛逼 第五条消息:追加个赏金行不行? 韩路一回了一个微笑表情。 第二单,一个初创公司的app崩溃问题。报价8000。七个bug,最严重的是內存泄漏。半小时搞定。 第三单,一个小程序的支付回调异常。报价3000。问题不大,十五分钟收工。 十一点半,三单全部交付,总收入两万六。 他在鼎盛干半个月,税后到手也就这个数。 当然,自由职业要自己缴税,社保也得另出,但就算打完折,半天干出半个月,这笔帐怎么算都不亏。 这时,甲方的好评已经掛上平台了。 “史上最快交付,质量无可挑剔。” “这人是不是开了掛?半小时解决了我们两个月的bug。” 韩路一看著“开了掛”三个字,嘴角抽了一下。 你还真说对了。 他关上笔记本电脑,靠在椅背上。 这是韩路一五年来,第一次干完了所有的活。 在鼎盛的时候,他的日程表上从来没有“空閒”这个词,早上九点到,晚上九点走——运气好的话。赶版本的时候十一二点是常態,凌晨两三点也不稀奇,午饭是工位上扒两口外卖,晚饭是会议室里啃麵包。周末偶尔能休一天,但手机上隨时会弹消息。 他已经忘了工作日的中午是什么样子了。 韩路一站起来,走到阳台上。 二月的阳光照进来,暖洋洋的。楼下的小花园里,几个退休老大爷正在下棋。旁边的长椅上,一个年轻妈妈在刷手机,婴儿车里的小孩睡著了。小卖部的王阿姨搬了个板凳坐在门口晒太阳,嗑著瓜子。 这些人每天都在这儿,只是他从来没在这个时间看到过。 他站了一会儿,回屋打开冰箱。 空的,除了半瓶老乾妈和两盒过期的酸奶。 韩路一拿上钥匙下了楼,小区门口有个菜市场,他路过了几百次,但从来没进去过。 他进去买了西红柿、鸡蛋、一把小葱。 回家做了一盘番茄炒蛋。 不好吃。 但至少没糊。 他站在厨房里把午饭吃完了,洗了碗,又回阳台上站了一会儿。 韩路一脑子里浮出了一个奇怪的念头:这就是自由的感觉吗?真不习惯。 突然他听到敲门声,刚拉开防盗门,差点被一个小小的身影撞了满怀。 “路一哥哥!” 林朵朵抱著一个粉色的平板电脑,眼眶红红的,小脸上还掛著没干的眼泪。 “怎么了朵朵?”韩路一蹲下来。 “我的平板坏了……”林朵朵把平板举到他面前,屏幕卡在一个花花绿绿的界面上,完全不动了,“动画片放到一半就不动了,重启也不行,妈妈也弄不好……” 她说著说著嘴巴又瘪了。 “让我看看。”韩路一接过平板。 隔壁501的门开著,林晚晴站在门口,一手拿著画笔,头髮隨便扎了个丸子,脸上还沾著一点顏料。 “不好意思啊,朵朵非要来找你。我说了妈妈明天给你修,她不听。”林晚晴有点不好意思。 “没事林姐,小事。” 韩路一低头看著平板,隨手开了一秒视界。 【设备:儿童平板|型號:小豆平板5|故障类型:系统级】 【漏洞检测:后台进程內存溢出导致系统冻结|起因:某动画app存在內存泄漏(v3.2.1已知缺陷)】 【修復建议:强制安全模式启动+清除该app缓存+降级至v3.1.8稳定版】 韩路一关掉视界,按照修復建议操作,长按音量和电源键,进入安全模式,清除缓存,把那个有bug的动画app回退到上一个版本,整个过程不到两分钟。 屏幕亮了,那只粉红色的小猪重新在屏幕上蹦蹦跳跳。 “好了。” 林朵朵的表情变化堪称教科书级別,从含泪到震惊到狂喜,总共用了零点五秒。 “路一哥哥好厉害!”她一把抱住平板,又一把抱住韩路一的腿,“比妈妈厉害一百倍!” “……谢谢你的一百倍。”林晚晴在门口翻了个白眼。 面板闪了一下。 【微型辅助任务完成|经验值+3|当前经验值:15/200】 林晚晴牵著朵朵的手回了501,门关上之前,朵朵探出半个脑袋冲他挥了挥手。 韩路一的一周有了固定的节奏。 上午接单,两到三个,挑问题有意思的接,中午前收工。下午是他自己的时间。 他开始做一些以前没时间做的事。 周四傍晚去跑了一次步,上一次跑步可能还是大学的时候,他沿著小区外面的河道跑了两圈,本来以为五年996身体已经垮了,没想到视界升级给加了体质。 周五下了场小雨,他坐在阳台上看书听雨声。隔壁传来朵朵咿咿呀呀唱歌的声音,隔著一堵墙,模模糊糊的。 这些都是很小的事,小到在鼎盛的时候连想都不会想。 但连在一起,它们构成了一种韩路一快忘掉的东西。 生活。 …… 一周结束。 平台加私单,总收入六万五。 他在鼎盛干一个月,税后到手五万,一周干出一个多月。 钱的事解决了,但韩路一发现了一个新问题。 视界面板上,经验值还停在15。 十几个活,六万五,零经验,帮朵朵修一个平板反倒加了三点。 收了钱的不算。 这套系统的规则比他想的简单,赚钱归赚钱,想升级,得帮別人的忙——不收钱的那种。 韩路一关掉银行app,打开了电脑。 他有一个想法要尝试。 第十一章 马甲 韩路一在论坛上註册了一个马甲id:“nullpointer”。 第一天,有人发帖求救:线上服务每隔三到五天必崩一次,重启就好,但死活找不到规律。帖子下面二十多条回復,有人说查內存泄漏,有人说上监控告警,有人直接甩了一段chatgpt的分析——全都隔靴搔痒。 韩路一开视界扫了一眼帖子里贴的架构图和日誌截图,虽然不是直接看代码仓库,但他的经验加上bug检测的辅助,还是捕捉到了一条线索。 他敲了一条回復,三段话,指出了两个连接池共用超时配置的问题,给了具体的修改方案。 帖主半小时后追更:改了,观察中。 三天后再追更:稳了,彻底稳了。 帖子火了。 两百多条回復,一大半不是在討论技术,是在问“这人谁啊”。 【微型辅助任务完成|经验值+2|当前经验值:17/200】 果然。 【写到这里我希望读者记一下我们域名 101 看书网超便捷,????????????.??????轻鬆看 】 免费帮人修bug,系统是给经验的。 韩路一找到了正確的打开方式。 从那天起,他每天下午花一两个小时泡论坛,专挑那种討论了几十层还没结论的疑难帖,这种帖子围观的人多,答案的传播面最广。 有人的生產环境偶发段错误,查了一个月,四种工具轮著上都抓不到,他视界一扫,发现是第三方库和结构体的內存对齐打架,一条回復解决。 有人的排序算法在特定数据集上结果错乱,他发现是浮点精度问题导致比较函数不满足传递性,加一个epsilon就稳了。 每次都是一样的套路:一堆人討论了半天,他进来一条回復,结束。 论坛里开始流传一句话:“等nullpointer来。” 有人猜他是大厂的架构师,有人猜他是退休的技术vp,有人说他是某个开源项目的核心维护者,还有人开了个投票帖:“nullpointer到底是谁?”选项里从“字节3-2”到“中科院研究员”到“openai早期员工”都有,最高票的是“不知道但是跪了”。 一周下来,“nullpointer”在几个主流技术论坛上攒了两千多个赞。 经验值从15慢慢爬到了25。 不快,但蚊子腿也是肉。 当然,论坛上不只有技术求助帖。 快闪科技的事还在发酵。36度的调查报导发出去十天了,后续跟进一篇接一篇。网信办、工信部先后介入,公安网安大队对数据非法出境正式立案。ceo丁仁被限制出境,cto周明哲直接失联——有人说跑了,有人说被带走了,没人知道真相。app全网下架,b轮融资彻底黄了,星辰资本发了份声明切割,大意是“我们也是受害者”。 韩路一刷到这些消息的时候,手指会停一两秒,然后继续往下划。 丁仁没消停。限制出境归限制出境,嘴没被封。他请了公关团队在各个平台放话,说已经“锁定了几个嫌疑目標”,措辞像钓鱼,逼举报人自己露头。 更麻烦的是“逆向工程老王“的画像帖,这帖子就掛在韩路一每天泡的同一个论坛上,每隔几天更新一版。最新的结论已经从“大厂后端工程师“缩窄到了“有推荐系统实战经验的高级专家”。 距离猜到韩路一,可能就差一两步了。 他每次刷到这个帖子都会多看两眼,然后关掉。顾司玥的禁令还掛在备忘录最上面——“不要提快闪”。 周五晚上,他刷完最后一条帖子,准备关电脑。 自由开发者平台弹了一条新需求推送。 他本来没打算看,今天已经做了三单了。但標题吸引了他的注意力。 【紧急外包|推荐系统核心模块优化|报价:50000|甲方:鼎盛数字科技(深圳)有限公司】 鼎盛数字科技。 鼎盛集团旗下的全资子公司,负责集团的数位化產品线。韩路一在鼎盛工作的最后一年,有大半年的代码是在这个子公司的代码仓库里提交的。 他点开了需求详情。 “推荐系统核心算法近期出现性能异常,峰值期延迟飆升300%+,用户留存指標持续下降。內部团队排查两周未定位根因,现紧急外包高级技术顾问协助诊断……” 韩路一看著这段描述。 这套推荐系统他写了五年,系统架构他闭著眼睛都能说出来。 陈博文大概连commit记录都没看过。 需求描述下面附了一段脱敏后的技术概要,三页pdf。 韩路一看了两行就停住了。 关键参数后面全都跟著括號备註,峰值延迟300%+后面写著(对比基线为2025q3上线版本),qps閾值后面写著(当前集群配置下理论上限)。 他一眼就认出来这是小明写的。 赵启明,他带了三年的组员,从实习生带到p5,手把手教的代码规范和文档格式。 小明把问题发到了外包平台上。 这意味著內部已经彻底搞不定了,陈博文那个团队排查了快两周都没定位根因,最后是小明——八成是他主动揽的活——写了这份技术概要往外发,韩路一能想像他这两周加班到什么程度。 他已经看出问题了,陈博文的团队改了他的核心调度模块,把原来的动態权重分配改成了静態规则引擎。 这就像把一辆手动挡跑车改成了自动挡老年代步车,然后问“为什么跑不快了”。 五万块的单子,他闭著眼睛都能修。 但这不是钱的问题。 这是陈博文摘走的桃子,正在他手里烂掉。 韩路一关掉了需求页面。 又打开了。 又关掉了。 他靠在椅背上,看著天花板。 窗外有风,把阳台上晾的t恤吹得啪啪响。 他拿起手机,又开视界扫了一眼那条需求。 面板弹出来了。 【鼎盛数字科技推荐系统|当前状態:严重退化|核心算法稳定性:极差】 【关联人物:陈博文(项目负责人)|该系统异常与其团队改造直接相关】 极差。 他写了五年的系统,被改成了极差。 韩路一关掉视界,把手机扣在桌上,屏幕朝下。 “真他妈混蛋!” 第十二章 鼎盛的外包 第二天早上,韩路一醒来第一件事就是打开电脑,重新点开了那条外包需求。 昨晚他没做决定,睡了一觉,已经想清楚了。 需求页面上附著的技术概要只有三页,做了脱敏处理,去掉了公司名和项目名,但对韩路一来说跟没脱一样。 每一段描述他都能对应到具体的代码文件。 “核心推荐引擎近期进行了架构调整,將原有的动態权重分配模块替换为基於规则的静態引擎。” 韩路一看到这句话的时候,表情很微妙。 动態权重分配,那是他花了八个月设计的核心调度模块,整个推荐系统的心臟,它的精妙之处在於能根据用户实时行为自动调整推荐权重,每一次点击、每一次滑动、每一次停留都会被纳入计算。 这套东西不是写出来就能用的,是他一边写一边调,跑了上亿条用户数据,一个参数一个参数地磨出来的。 然后陈博文的团队把它拆了,换成了静態规则引擎。 韩路一能理解为什么,动態权重模块確实复杂,没有他本人在场,团队里没有第二个人能完全看懂那套逻辑。陈博文的选择是,看不懂的东西就换掉,换成看得懂的。 技术概要后面还列了一串症状:峰值期响应延迟飆升、推荐精准度下降、用户留存率持续走低、a/b测试全面不如旧版。 说白了就是:换了之后全面拉胯,而且越来越差。 韩路一靠在椅背上,开了视界。 精力值满的,250/250。他把注意力集中在屏幕上那三页技术概要上。 面板炸开了。 不是一般的弹窗。整个屏幕被半透明的红色警告覆盖,像一面著火的墙。 【目標系统:鼎盛数字科技·核心推荐引擎】 【整体稳定性评级:极度危险】 【严重漏洞:12个|中等漏洞:37个|轻微漏洞:91个】 【预计完全崩溃时间:上线后72小时內】 140个bug,深红的浅红的,密密麻麻铺了一屏,像一份病危通知书。 他只扫了一眼前三个严重漏洞就不想再看了,內存泄漏,三天后系统会把自己撑死。数据管道断裂,四分之一的用户数据在悄悄丟失。並发锁死,高峰期两成概率直接雪崩。 三颗定时炸弹,隨便一颗炸了都够上一次热搜。 他花了三年时间把这套推荐系统从能用调到好用,每一个参数、每一条权重、每一次版本叠代,都是他一行一行敲出来的。 陈博文才接手了半个月。 他想起了第一天被裁时,陈博文面板上的那行字—— 【warning:该对象存在3个严重bug点击展开(当前等级不足)】 当时他是lv.1,看不到详情。 那三个严重bug,其中一个大概就是这个,陈博文摘了他的果子,但咬不动。 他当然能修好,这套代码是他写的,都不用视界,有些bug他看一眼就知道改哪行。 他关掉了视界。 屏幕回到了正常的外包需求页面,右上角有两个按钮:【接受需求】和【忽略】。 韩路一的手指停在滑鼠上。 接?救陈博文?我是傻逼吗? 然后点了【忽略】。 不接。 他关掉了外包页面,端起桌上已经凉了的咖啡喝了一口。 不接归不接,但有些东西憋著也浪费。 他打开论坛,以nullpointer的身份花了四十分钟写了一篇《推荐系统架构改造的七个经典陷阱》,纯技术分享。 这些坑都是陈博文正在踩的,但是他知道,以陈博文的水平,就算看到也看不懂。等到系统真的崩溃那天,这个帖子再被挖出来,难以想像陈博文的脸色会有多精彩。 发完帖子,他关掉论坛。 脑子开始转了。 这140个bug,这两周接单修过的上百个bug,再往前,五年里经手的几千个bug。 它们长得不一样,但模式都一样。 同样的模式,在不同的项目里反覆出现,他每次修bug,本质上就做两件事,认出模式,匹配方案。 这不就是餵给ai乾的活吗? 他放下杯子,掏出手机翻到备忘录里那行字—— “代码审查工具,连接代码与现实场景,bugkiller?” 把视界看到的bug模式全部整理出来,特徵、触发条件、修復路径,餵给ai,让它学会“看到代码就知道上线后会出什么问题”,ai不需要拥有视界,它只需要学会视界看到过的东西。 就像教ai下棋不需要教它思考,只需要让它看够多的棋局。 韩路一打开电脑,新建文件夹,命名“bugkiller”,新建文档:《bug模式资料库 v0.1》。 然后他开始写,写得很快,五年里踩过的坑,全从记忆里涌出来,按类型自动归位,內存类、並发类、数据流类、接口类,每一类下面是触发条件、典型表现、修復路径。 他像在给一个什么都不懂的新手编一本《bug大全》。 写了两个小时,停下来。 不够,一个人的经验撑不起一整个资料库,他需要更多样本,更系统的分类。 他需要一个產品经理。 韩路一拿起手机,找到苏念念的微信对话框。 “念念,上次聊的ai代码审查方向,我有个想法,今晚有空吗?吃个饭聊聊。” 发出去不到三十秒,苏念念回了:“今晚?!几点?” “七点。” “没问题!下班正好六点半,什么想法?先说说?” “到了再说。” 对话框顶部的“对方正在输入…”闪了好几次,最后发过来的不是追问,是: “那我先选个餐厅,你想吃什么?” “隨意,不挑。” “好,我来定。” 韩路一觉得有点好笑,明明是他约的人,三句话下来主导权就到对方手里了。 不过也正常,苏念念做產品经理的,抢需求主导权是本能。 韩路一放下手机,又闷头写起了文档,再抬起头已经是下午四点半了。 离七点还有两个半小时。 他回头看了看屏幕上刚建好的bugkiller文件夹,想了想,没有继续写文档。今晚跟苏念念聊的时候,脑子里得是活的想法,不能是写僵了的文字。 他关掉电脑,起身去洗了个澡,换了件乾净的衬衫。 出门的时候,隔壁传来林朵朵的声音,在跟林晚晴讲幼儿园的事。 韩路一带上门,往地铁站走去。 晚风不凉也不暖,三月中旬的海城,恰好卡在两个季节的缝隙里。 第十三章 辣得莫法 晚上七点,苏念念选的餐厅。 不是什么高档地方,是他家附近商圈的一家湘菜馆,叫“辣得莫法”。 他到的时候,苏念念已经在靠窗的位置坐著了。 韩路一拉开椅子坐下,抬头看了她一眼。 上次在bug café是下午,阳光从落地窗照进来,苏念念坐在逆光里,乾净清爽,像一杯温水。现在是晚上,餐厅暖色的吊灯从上方打下来,她的眉眼轮廓比白天更深,长发散著垂到肩上,浅杏色的针织衫衬得锁骨那截细链格外显眼,整个人多了一点白天没有的味道。 “今天真好看。”韩路一坐定了,语气隨意得像在说今天天气不错。 “……哪天不好看了?” “没有不好看的时候,上次是上次的好看,今天是今天的好看。” 他说得太顺了,顺到苏念念没办法判断这是真心话还是嘴贫,接了像在撒娇,不接又显得小气。 “嘴真贫。”她最后只说了这三个字,转头看向窗外,耳朵尖有一点点红,但灯光昏黄,看不太出来。 她面前摆著一台打开的苹果电脑,屏幕上密密麻麻的都是表格。 服务员走过来,苏念念刚要拿菜单,韩路一已经开口了。 “一个剁椒鱼头、一个小炒黄牛肉、一个虎皮青椒、一个酸辣土豆丝,米饭两碗,再来一扎酸梅汤。” 苏念念看著他,手里的菜单举了一半,没放下也没打开。 “……你点这么快?” “我家就在附近,这家店来过几次。”韩路一顺手接过她手里的菜单递还给服务员。 等菜的时候,苏念念把电脑转过来给他看。 “你说有想法要聊,又不给我剧透,我只好自己猜了,关於代码审查,我先把赛道摸清楚了。”她抬了抬下巴,“產品经理的基本功。” 屏幕上是一份竞品分析表:十七款產品,每一款都列了核心功能、技术路线、定价策略、用户评价、融资轮次,最右边一列是她自己標的评分,满分五分,最高的一款只拿了三分。 “你什么时候做的?”韩路一问。 “上次跟你聊完就开始整理了,本来只是隨手查查,结果越查越多。”苏念念说得很轻鬆,像在说一件不值一提的事。 韩路一看了她一眼,她眼下有一层薄薄的遮瑕,盖住了熬夜的痕跡。 “你给最高分的这款,缺什么?”他指著表格问。 “跟上次我跟你说的一样,只能做静態分析,找到了bug,但不能告诉你这个bug在真实业务场景里会造成什么影响,程式设计师需要的不是“你这行代码有问题”,而是“这行代码上线后会炸成什么样”。” “所以核心痛点是——” “是“代码和现实之间的鸿沟”。”苏念念用手指敲了敲桌面,“你上次的原话,我回去想了好几天,越想越觉得你说到点子上了。” 剁椒鱼头端上来了,热气腾腾的。韩路一拿起公筷,挑了几块鱼腮边最嫩的肉放到苏念念碗里。 “先吃,凉了腥。” 苏念念低头看了一眼碗里的鱼肉,全是最好的部位。 她没说谢谢,拿起筷子吃了一口。 “我想做一款工具。”他说,“名字我都想好了,bugkiller。” “bugkiller?”苏念念念了一遍,嚼著鱼肉,皱了下眉,“名字太geek了,程式设计师听著过癮,但以后要做商业化的话不好卖,先当內部代號用吧,回头再想个正式的。” “它不只是找bug,它要做的是——”韩路一在脑子里组织了一下语言,“建立一个bug模式资料库,把各种类型bug的特徵、触发条件、影响范围、最优修復路径全部结构化,然后用这些数据训练ai模型,让ai学会“看到一段代码就知道它上线后可能会出什么问题”。” 苏念念放下筷子,身体前倾。 “等等,你说的bug模式资料库,数据从哪来?这是最关键的问题。市面上的竞品之所以做不好,就是因为训练数据只有代码本身,缺乏“代码在真实场景中的表现”这一层。” “从我这里来。” 苏念念眨了两下眼睛。 韩路一解释:“我这些年写了几十万行代码,debug过的系统也少说有几十个,最近自由接单又修了上百个项目,每一个bug的特徵、触发条件、修復路径,我都在记录。” 这是实话,只不过他省略了视界的部分。 “你的个人经验当然有价值,但一个人的样本量不够啊,”苏念念皱眉,“ai训练需要大量数据。” “对,所以第一步是做最小可用產品,用我现有的模式资料库做一个原型,先验证思路能不能跑通。如果跑通了,第二步再想办法扩大数据源,比如接入开源社区的bug报告、公开的代码漏洞库、技术论坛的问答数据。” “mvp先行,数据飞轮后做。”苏念念总结了一句。 “对。” “那你的mvp打算多长时间做出来?” “一周。” 苏念念正在喝酸梅汤,差点呛了。 “一周?你认真的?” “我已经开始写了,今天下午搭了bug模式资料库的框架,分类结构都想好了,算法层面我有现成的经验,模型训练我也熟,一周出原型不是问题。” 苏念念看了他三秒钟,把酸梅汤放下了。 “你知道我在公司推那个ai代码审查项目,光需求阶段就花了两个月。” “因为你们有流程,有审批,跨部门协调,领导要拍板。” 苏念念想了想,笑了:“好吧,卷王你说一周就一周,那我能帮什么?” “用户调研和需求文档。”韩路一说,“你比我了解用户,你来定义bugkiller应该长什么样、核心功能优先级怎么排、第一批目標用户是谁。” “这我在行。”苏念念已经开始在电脑上打字了。 两个人一边吃一边聊,越聊越快,苏念念一手夹菜一手打字,韩路一说到技术方案的时候习惯性用筷子在桌上比划,被她拍了一下手背,“別拿筷子点桌子,不礼貌。” 剁椒鱼头见底的时候,苏念念的电脑上已经有了一份完整的mvp需求文档。 韩路一看了一遍。 “你这需求写得太清楚了。”他说。 “不然呢?写需求含糊其辞等著开发骂我?”苏念念哼了一声,“而且……” 她停了一下,语气变轻了一点。 “好久没碰到这么聊得来的开发了,我在公司跟技术团队掰扯一个需求能掰扯一个礼拜,你这儿四十分钟就搞定了。” “那是因为你需求写得好。” 苏念念没说话,低头合上了电脑。 灯光从侧面照过来,睫毛在她脸上投下一小片阴影。 “一周后你给我看原型,我帮你做用户测试。”她说。 “你用什么身份做?你还在公司上班呢。” 苏念念端起酸梅汤喝了一口,视线落在窗外。 “当作朋友帮忙。”她过了两秒才说,“反正我自己的项目被人拿走了,閒著也是閒著。” 韩路一叫了买单,苏念念抢了一下没抢过,瞪了他一眼:“下次我请。” “行,等bugkiller上线那天你请。” “成交。”苏念念收好电脑,又看了他一眼,“对了,回去別又泡麵对付,冰箱里多少放点东西。” “我什么时候泡麵对付了?” “你大学四年有三年的午饭是泡麵加火腿肠,別以为我不知道。” “……那是因为懒,不是因为穷。” “结果呢?现在也没改吧。” 韩路一想反驳,但发现自己昨天中午確实吃的泡麵,他没说话。 苏念念笑了一下。 出了餐厅,夜风有点凉。 “你怎么回去?”韩路一问。 “打车。”苏念念掏出手机叫车,“你呢?” “走路,十五分钟。” “那你先走吧,別等我了。” “不急。”韩路一靠在路灯杆上,“等你车来了我再走。” 苏念念看著手机屏幕,没抬头,风把她的长髮吹到脸侧,她伸手別到耳后。 “韩路一。” “嗯?” 她好像要说什么,但手机响了,车到了。 “没事。”苏念念拉开车门,回头冲他笑了一下,“回去早点睡,別又写到凌晨。” “知道了,妈。” “……滚。” 车门关上,车开走了。 韩路一站在原地看著尾灯消失在路口,然后往回走。 他打开视界。 街边的一切立刻有了数据浮层,公共垃圾桶底座的螺丝鬆了两颗,便利店的招牌有三个像素的色偏,对面人行道上一个跑步的中年男人左膝半月板有磨损。 整个世界像被掀开了一层皮,露出底下密密麻麻的代码。 韩路一关掉视界,继续走。 第十四章 二十三个Bug 一周。 韩路一关掉所有接单平台,手机调静音,冰箱塞满速冻水饺和罐装咖啡,一周只做一件事。 前两天最顺。框架和资料库是他的舒適区,闭著眼睛都能搭。第三天开始啃核心引擎,晚上卡住了,模式匹配逻辑怎么调都不对,盯著屏幕两个小时脑子越转越慢。他下楼在小区走了一圈,冷风一吹想通了:特徵提取的粒度选错了。回来改了方案,通了。后面几天顺流直下,接口、串联、测试。视界升级以后他的身体好了很多,换成以前在鼎盛,连续高强度编码三天人就废了,现在不会。 核心中的核心是bug模式资料库。韩路一把用视界积累的几百种bug模式全部结构化,每种bug长什么样、什么条件触发、影响多大、怎么修最优。別人训练ai用的是代码本身,他训练ai用的是代码在真实世界里的精確数据。 训练是最烧钱的环节。 韩路一在云平台上查了一圈价格,算下来光训练这一项就要好几万。他盯著报价页面看了半分钟,ai创业的第一道门槛,劝退九成独立开发者的那道门槛,现在摆在他面前了。 好在他有一个別人没有的优势:数据质量极高。別人需要十万条脏数据才能训练出基本能用的模型,他用视界標註过的三千条乾净数据就能餵出来。数据量小,训练轮次就少,算力也成比例下降。 他选了折中方案:开源轻量模型做底座,竞价实例跑正式训练,做了断点续传防中断,最后花了四万出头。 五年积蓄加上离职补偿,四万不算伤筋动骨。 但四万只是一轮训练。后面要花多少,他不敢细算。 先把原型跑通再说。 第七天晚上,代码写完了。 光標停在最后一行的分號后面。韩路一的手离开键盘,十指交叉搁在脑后,盯著屏幕。 他忽然有点不敢跑测试。 这种感觉他太熟悉了,考试做完不敢翻答案、论文写完不敢查重、代码写完不敢编译、表白完的微信不敢看,越在意的东西越不敢验证。 他站起来,去厨房接了杯水,喝了一口,又倒掉了,走回来坐下。 把bugkiller的原始码丟进了bugkiller,用自己做的刀,切自己做的菜。 运行。 进度条开始走:12%...31%... 他发现自己在屏住呼吸。 47%...68%...89%... 进度条走完。 二十三个bug。 屏幕上二十三条红色高亮。日均十二小时,视界辅助,身体巔峰。 二十三个。 他盯著那片红看了几秒,然后开了视界,扫了一遍同样的代码。 二十五个。 bugkiller比视界少了两个,他把两份结果拉到一起对了一遍,大部分重合。 一周,一个人,做出来的东西在他自己的代码上已经接近金手指的水平。 韩路一用视界確认修復路径,花两个小时把所有的bug全部干掉。 然后让bugkiller重新扫了一遍。 屏幕上弹出一行绿色的字。 0 issues found. 他靠在椅背上,盯著那个零看了好一会儿。 把原型打包,发给了苏念念:“一周,没食言。” 五分钟后苏念念炸了。 “我试了!!!把我们组上周的一段代码丟进去扫了一下,找到了八个问题!!其中三个是我们已经知道的,另外五个是我们不知道的!!而且它给的影响评估特別直观,“该bug在高並发场景下有约15%概率触发服务降级”,运营和產品也能看懂!!不只是给开发看的!!!” “冷静。” “我不冷静!市面上没有一款工具能做到“影响评估”这个层级!所有竞品都停在“找到bug”这一步,你直接跳到了“找到bug+告诉你后果+教你怎么修”!这不是优化!这简直是降维打击!是二相箔!” “用户测试的事交给我。”苏念念最后发了一条,“我找几个做开发的朋友试一试,收集反馈。你继续叠代。” “行。” 韩路一放下手机,翻出微信通讯录,找到顾司玥。 两人的聊天记录还停在上次她说“快闪大概率会走破產重组”,之后就没再联繫过。 韩路一想了想,打了一行字:“顾律师,方便约个时间吗?有个新的法律諮询。” 晚上十一点多了,他不指望今晚有回覆。 过了一会,顾司玥回復了:“什么方向?” “软体著作权註册,可能还涉及商標。” “明天下午两点来我办公室,新case按正常諮询费收。” 明天周六,韩路一看了一眼这条消息,晚上十一点秒回、周六还约客户,这人是不下班的吗? 韩路一回了个“好”。 顿了一下,又加了一句:“这次不是举报,我自己写了个软体。” 顾司玥过了几秒才回:“那更要趁早,明天见。” 第二天下午两点,博衡律师事务所。 周六的律所比上次来安静一些,走廊里大半的办公室都黑著灯。前台把他领到会议室,路过走廊的时候经过一间门没关严的办公室,里面桌上摆著三杯咖啡,两杯空了,第三杯喝了一半,窗台角落有一盆绿萝,叶子耷拉著,土干得发白,衣架上掛著两件备用衬衫,一黑一白。 门上的铭牌写著“顾司玥高级合伙人”。 这人住在办公室里吗? 顾司玥已经在会议室等著了,笔记本摊开在桌上。 “说。” 韩路一花了三分钟把bugkiller介绍了一遍,做什么、怎么做、数据从哪来、现在到什么阶段。 顾司玥听完没评价,直接进入法律盘问。 “软体著作权註册了吗?” “没有。” “代码用到前东家的ip了吗?” “没有。” “商標查过吗?” “没有。” 连续三个“没有”,顾司玥的笔顿了一下,抬头看了他一眼。 “你倒是什么都没做。” “所以才来找你。” 顾司玥没接这句话,低头在本子上快速写了几行。 “著作权我让助理今天就开始走流程,商標查重同步做,如果没有撞车的一周內提交。”她写完一页翻过去,“你的代码仓库在哪个平台?” “github,私有仓库。” “好,原始码文档和软体功能说明整理一份发我邮箱,越快越好。” 韩路一点头。 顾司玥继续往下走流程,忽然停了一下。 “你原来公司有竞业协议吗?” 韩路一愣了一秒:“有,但签离职协议的时候hr说是標准流程,不会真启动。” 顾司玥的笔停了。 她抬起头,看著韩路一的眼神变了,从“走流程”切换到了“审视”。 “协议在手上吗?” “在家里。” “拍给我看看。” “应该不会有问题吧?hr说——” “hr说的不算。”顾司玥打断了他,语气没变重,但每个字都咬得很清楚,“白纸黑字写的才算。你做的產品叫“ai代码审查工具”,你前东家是科技公司,如果竞业条款里有“人工智慧”或“软体开发工具”这几个字,你现在做的每一件事都可能在踩线。” 办公室安静了两秒。 韩路一没接话,他脑子里快速过了一遍那份离职协议,签字的时候扫了一眼,確实有竞业条款,当时没细看,hr说不会启动,他就信了。 “回去就拍给你。”他说。 顾司玥“嗯”了一声,低头继续写。 韩路一出了会议室,往电梯走,又经过那间门没关严的办公室,余光扫到角落的绿萝,叶子耷拉在那里。 他脚步顿了一下,没停。 出了大楼,他翻出手机又看了一眼备忘录。 不会真启动的吧。 他把手机揣回口袋,加快了脚步。 第十五章 深夜的拍门声 晚上十点四十。 竞业协议已经发给顾司玥了,她还没有回覆。 韩路一坐在电脑前写代码。 窗外很安静。整栋楼六层,这个时间大部分人都睡了。 屏幕上的光照著他的脸,手指在键盘上敲出有节奏的声响。 楼道里有动静。 是拍门声。 很重,很急,带著某种不耐烦的力道。 “砰砰砰——” 韩路一的手指停了。 拍门声又响了一轮,然后有一个男人的声音,含混不清,带著明显的酒气。 “开门!我就看看朵朵!你凭什么不让我看自己的闺女!” 韩路一站了起来。 隔壁,501。 他打开了视界。 50米的感知范围瞬间铺开。整栋楼的数据像半透明的全息图一样叠在他的视野里,但他只关注一个方向,一墙之隔的501室。 两个人,一个在门外,一个在门內。 门外的人情绪面板亮成了红色。 门內的人,林晚晴,情绪面板是深蓝色,標籤写著:恐惧(隱藏:强撑镇定)。 门內还有第三个数据信號,林朵朵,情绪標籤只有一个字:怕。 韩路一走到自己家门口,拉开了防盗门。 楼道的声控灯早被拍门声震亮了,昏黄的灯光下,一个男人站在501门前。 身高大概一米七五,体格偏壮,穿一件皱巴巴的深色夹克,头髮乱糟糟的,整个人散发著浓重的酒气。他一只手撑在门框上,另一只手还在拍门。 林晚晴打开了一条门缝,人挡在中间,她穿著家居服,头髮散著,脸色很白。 “许嘉铭,你喝了酒,明天再说。”她的声音在发抖,但还在努力保持平稳。 “什么明天再说!你躲了我两个月了!我就看一眼朵朵怎么了?我是她爸!” “你现在这个样子看什么看?朵朵已经睡了。” “那我等她醒。” “你走!” 许嘉铭往前逼了半步,手掌拍在门板上。林晚晴本能地往后缩了一下,但没有关门,门被他的脚卡住了。 韩路一走过去了。 他的脚步声让许嘉铭转过了头。 视界面板在韩路一眼前弹开了这个男人的信息。 【许嘉铭|35岁|情绪:愤怒(隱藏:心虚、酒精影响)|血液酒精浓度约0.14%)】 【关係標籤:林晚晴前夫】 【warning:有轻微暴力倾向|近期情绪不稳定】 韩路一不紧不慢地走到楼道中间,站在两家门之间的位置。 “朋友,大半夜的,影响邻居休息了。” 许嘉铭打量了他一下:“你谁啊?” “隔壁的。”韩路一指了指自己家门口。 “关你什么事?我来看我闺女。” “看闺女是好事,但现在快十二点了,孩子也睡了。”韩路一说著掏出了手机,屏幕亮著,“不如这样,我看你喝了不少,要不我帮你打个车?” 他晃了晃手机,然后声音不大不小地加了一句:“车打不到的话,我也可以帮你叫110。你选一个。” 这句话像一桶冷水。 许嘉铭的脸色变了,酒精让他衝动,但没让他完全失去理智。他看了看韩路一手里的手机,又看了看韩路一,一米八五,虽然瘦但比他高半个头,站在那里不慌不忙,眼神平静得像一面湖。 不知道为什么,那眼神好像看穿了他的色厉內荏。 “你少管閒事。”许嘉铭低声骂了一句,但脚从门缝里收回来了。 “好走。”韩路一说。 许嘉铭瞪了他一眼,又瞪了门缝里的林晚晴一眼,最后骂骂咧咧地转身下楼了。脚步声踩在楼梯上,一层一层往下,越来越远。 楼道里安静下来,声控灯啪地灭了。 黑暗中,韩路一听到了一声很轻的喘息。 他打开手机的手电筒,照了一下。 林晚晴靠在门框上,双手抱著自己的胳膊,她整个人在发抖,过了好几秒才慢慢鬆开一直抱紧自己的双手。 门缝里,一双小手扒著门板的边缘,然后林朵朵的脸从里面探出来,眼睛红红的,脸上有泪痕。 “路一哥哥……”她的声音很小,“我怕爸爸。” 韩路一蹲了下来。 “没事了小朵,他走了。”他的声音放得很轻很轻,“你保护妈妈了吗?” 林朵朵使劲点头。 “那你很厉害。” 林朵朵的嘴瘪了一下,又要哭,但忍住了。 林晚晴深吸了一口气,蹲下来把女儿抱进怀里,过了好一会儿,她抬头看著韩路一。 “谢谢你。” 三个字说得很吃力。 韩路一站起来:“没事。” 林晚晴把林朵朵抱进屋里,在门口又回了一次头。 “韩路一,”她顿了一下,“今天真的谢谢你。” 韩路一摆摆手。 门关上了,两道锁扣被扣上。 楼道重新暗下来,韩路一站了一会儿,確认隔壁没有其他动静,转身回了自己家。 关上门之后,他靠在门板上,打开视界。 隔壁的基础面板透过墙壁隱约浮现。 【林晚晴|30岁|自由插画师】 lv.2的50米范围,隔壁的数据自动推送过来。他没办法只选择看一部分。基础面板下方,深层信息跟著展开了。 【情绪:感激(隱藏:安全感)|当前状態:安抚女儿中|核心诉求:保护女儿】 韩路一把注意力集中在另一个信息上—— 那个从第一次见面时灰著的,標註为“待解锁”的bug標籤。 现在它亮了。 lv.2的视界,终於让这个bug的详情完整展开了。 【bug:家庭纠纷(严重)】 【详情:林晚晴前夫许嘉铭正在筹备爭夺抚养权诉讼】 【证据收集状態:许嘉铭方已委託律师,以“母亲经济能力不足、居住环境不稳定”为由准备起诉】 【威胁等级:高】 【当前林晚晴应对状態:无法律支持,未諮询专业律师,处於被动防守】 【建议应对路径:需专业律师介入,提前准备应对方案】 “母亲经济能力不足、居住环境不稳定。” 初二那年,他也听过差不多的话,他爸打电话来,说“你一个人带孩子太辛苦了”,意思是想爭抚养权,他妈掛了电话,在阳台站了很久,以为他没看到。 那年他十三岁,林朵朵今年五岁。 建议应对路径:需专业律师介入,他脑子里浮出了一个名字。 顾司玥。 顾司玥做的是智慧財產权诉讼,不是这个方向,但她在博衡,內部肯定有处理相关情形的律师。 不过,他跟林晚晴就是邻居,说上话还不到一个月,赶走一个醉汉是一回事,插手人家的抚养权官司是另一回事。 韩路一关掉了视界。 他走回电脑前坐下,屏幕还亮著,光標在他刚才离开时的那一行闪烁。 他看了两秒钟代码,没继续写。 拿起手机,发现顾司玥在十分钟之前回了条消息:“竞业协议收到了。” 韩路一想了想,把备註从“顾律师”改成了“法律顾问-顾律师”。 然后关了电脑,洗了把脸,上床。 隔壁很安静,林朵朵大概已经被哄睡了。 第十六章 律师函 bugkiller的0.2版本打磨了一周多。 苏念念找几个开发朋友试用之后,给了他一份十九条的反馈。他改了七条半,第八条改到一半觉得方案不对,推翻重来,到今天还差一个收尾。 顾司玥那边发邮件说著作权登记在走流程,商標查重同步推进,“bugkiller”暂时没被註册过。 四月六號,周一上午。 韩路一坐在电脑前,手机开著语音通话,跟苏念念討论新版本的叠代方向。窗外天气不错,小区里有人在遛狗,楼下不知从哪飘上来一股葱油饼的香味。 “精度得再提一提,”苏念念的声音从手机里传出来,“现在体感误报大概百分之七八,用户觉得还有噪音。降到五以下才能真正进入工作流。” “我知道,单条误报可以標忽略、已经加上了,真压到五以下至少还得再训一版,成本有点高,” 门铃响了。 韩路一看了一眼门的方向。“有人敲门,等我一下啊。” 他起身开门,是快递员,手里有一个ems信封。一开门,电子签收板就递了过来。 他签了字,接过信封,快递员已经在按隔壁的门铃了。 韩路一关上门,走回电脑桌前坐下。 发件人:鼎盛数字科技集团有限公司法务部。 收件人:韩路一 手指沿封口撕开。 一份文件,一页纸,抬头印著鼎盛集团的logo,標题—— 《竞业限制义务提醒函》 內容很简短:提醒韩路一先生,您於2026年2月签署的离职协议中包含竞业限制条款,期限十二个月,范围涵盖“人工智慧、代码审查、软体开发工具及相关领域”。如贵方已在上述限制领域內从事经营活动,请立即停止並联繫我司法务部协商处理。 措辞挺客气的,但“请立即停止”那几个字,一个字比一个字沉。 文件一份离职协议复印件。竞业条款所在的那一段被人用黄色萤光笔標了出来。白纸上一道刺眼的黄。 韩路一盯著那片萤光色看了两秒。 签字的时候他扫过一眼。张薇说“標准流程,不会真启动的”,他就翻过去了。 然后他想到了一件事。 著作权登记是公开信息。国家版权局的系统,任何人都能查。 这边刚登记完,警告信就到了。 时间点也太巧了。 韩路一打开视界。 提醒函的纸面上浮出一层半透明的数据图层,字符流动了两秒,稳定下来,正文之外多出一条信息: 【文件发起链条:陈博文(建议)→法务部合规专员周洋(执行)→审批人:王志远(vp)】 看来不是法务部例行排查。 韩路一关掉视界。精力值扣了12点,不多,一张纸没什么好扫的。但上面的信息够了,陈博文不是想把他挤走就结束了。 “……路一?怎么了?”苏念念的声音还在手机里。 “念念,我有点事,晚点聊。” “哦好——” 他坐回椅子上,把提醒函和离职协议复印件並排摆在桌上,然后把萤光笔標出的那段话又看了一遍—— “乙方离职后十二个月內,不得从事与本公司主营业务相关的人工智慧、数据分析、软体开发工具及相关领域的工作,包括但不限於自主经营、受僱於竞爭对手或为竞爭对手提供諮询服务。” 人工智慧,软体开发工具。 如果严格来说,bugkiller是踩线的,但是这也太不公平了。 顾司玥说过的那句话浮上来,“hr说的不算,白纸黑字写的才算。” 他手指无意识地敲了两下桌面。 手机亮了,是陌生號码。 “您好,请问是韩路一韩先生吗?”是个职业腔女声,笑意都镶在音调里。 “是的,请问你是哪位?” “韩先生您好!我是锐才猎头的linda,冒昧打扰。我这边有一个算法总监的机会想跟您简单聊聊,年薪、奖金加期权,总包一百二十万以上,团队十五人。客户是头部网际网路公司,名字不方便直说,但您肯定知道。” “我跟鼎盛有竞业,你们客户介意吗?” “没关係的韩先生,客户和您上家不算同业,这类情况他们法务常处理,jd我发您看看?” 韩路一靠回椅背。 视线落在桌上那封提醒函上。 一百二十万,鼎盛给他六十五万,將近翻了一倍。去大厂当总监,竞业的事有公司法务扛,不像现在一个人创业,对面来一封信就能把你钉在墙上。 一封信告诉他,你不许做。 一个电话告诉他,你可以不做。 讽刺的是,这两件事中间只隔了十五分钟。 “发我吧。”他说。 “当然!我加您微信!” 掛了电话,韩路一把手机放在桌上,屏幕正好挨著那封提醒函。一个发光一个不发光,並排摆著。 微信弹出好友申请,他通过了,对方秒发来一份pdf。 韩路一打开扫了一眼:技术栈熟悉,团队规模合適,核心kpi是推荐系统优化,跟他在鼎盛乾的差不多,换了个壳换了个级別。年薪加期权,三年能拿到手的数字他心算了一下,不算少。 他手指在屏幕上停了两秒。 收藏,然后回了个“谢谢”。 打开电脑。 苏念念半小时前发来的v0.1內测反馈匯总。十九条用户意见,每一条都標了优先级和建议方案。 他往下翻了几屏。 “7)误报率降到5%以下才能进入工作流,目前体感约8%,建议增加“忽略”功能並记录用户忽略模式用於叠代。” “14)cli界面够了但vscode插件是刚需,看看能不能v0.3做?” 14那行她又加了一条备註:“这条我问了五个人,四个说“有插件我天天用,没插件我偶尔用”。” 他盯著看了一会儿。 桌上的提醒函还摊著。他没收,也没再看。 又打开微信翻起了通讯录。 【法律顾问-顾律师】。 之前存这个备註的时候,想的是帮林晚晴打官司。 现在第一个用上的倒是他自己。 “顾律师,方便吗?有个急事。” 一个语音打了过来,那边有翻文件的声音。 “说。” “鼎盛法务给我发了一封竞业限制提醒函,今天上午收到的。” 安静了三秒。韩路一以为信號不好,刚要再说一遍,顾司玥开口了。 “带著你的离职协议来一趟。”顾司玥说,“当面说。” 掛了。 韩路一看著手机屏幕,通话时长四十七秒。 他愣了一会。 窗外遛狗的人走了第二圈,桌上的提醒函安静地躺著,黄色萤光笔標出的那段话在下午的光线里泛著一层薄亮。 韩路一收起文件,起身去换衣服。 第十七章 她在第五层 和合大厦,十九楼,博衡律师事务所。 这是韩路一第三次来博衡。 上一次是两周前,bugkiller刚跑通,他来做著作权和商標。那天他坐在访客椅上,觉得自己在做一件很酷的事。 这次来,他手里多了一封ems。 前台认出了他。“顾律师在办公室,我领您过去。” 他敲了一下半开的门。 顾司玥坐在桌后翻一份文件。上次隔著走廊看到的备用衬衫还在,只是换了位置。桌面上有两个空掉的咖啡杯。 “坐。”顾司玥没抬头。 韩路一坐下,把鼎盛的提醒函放在她桌上。 顾司玥看了一眼信封上的“鼎盛集团法务部”几个字,打开看了看內容。 韩路一也开了视界,看向那份文件。 法律文本上浮出一层半透明的高亮批註,像代码review里的注释。竞业条款那一段被標了红—— 【竞业限制范围条款|风险评估:存在爭议,无效概率约45%】 【原因:限制领域“人工智慧、数据分析、软体开发工具及相关领域”,范围偏宽但未明显超出行业惯例】 【法律依据:《劳动合同法》第24条|司法实践中类似条款裁判结果不一,取决於具体举证】 韩路一皱了皱眉头。四五成的概率,跟拋硬幣差不多。打官司的话,不好说。 他刚要开口。 顾司玥拉开了右手边的抽屉。 拿出一个蓝色文件夹,不厚,推到他面前。 “先看看这个。” 韩路一打开文件夹。 三份文件。按时间顺序排好,每份用回形针別著。 第一份。 催收函复印件,附ems签收回执。 【致:鼎盛数字科技集团有限公司人力资源部张薇女士 本所受韩路一先生委託,就贵司与委託人签订之竞业限制协议事宜致函如下:委託人已於2026年2月26日正式离职,依据双方协议约定,贵司应自离职之日起按月支付竞业限制经济补偿金。截至本函发出之日,首期补偿金已逾期,委託人尚未收到任何款项。 特此函告,请贵司於收函后五个工作日內依约履行补偿金支付义务。逾期未回復或未支付的,委託人將视为贵司明確拒绝履行补偿义务,並依法主张相应权利。 博衡律师事务所顾司玥律师 2026年3月27日】 周五,他算了一下,那天是他离职整四周。 韩路一翻到第二份。 一封邮件的列印件。发件人:张薇。收件人:顾司玥。时间:3月27日,15:17。 【顾律师您好: 经核实,韩路一先生的岗位级別(p7)不在竞业限制补偿金髮放范围內。如有其他疑问,请联繫我司法务部。 此致 张薇 鼎盛集团hrbp】 韩路一盯著这封邮件。 標准的hr模板。收到催收函到回復,不到半天。连法务都没抄送。对张薇来说,这大概跟回復一封考勤查询差不多。 p7嘛,不发的,流程走完了。 他翻到第三份。 竞业限制解除通知书的复印件和签收回执。 【收件人:鼎盛数字科技集团有限公司法务部。 发件人:博衡律师事务所,顾司玥律师,受韩路一先生委託。 日期:3月30日。星期一。 ……贵司人力资源部张薇女士已於2026年3月27日以书面方式明確告知委託人:其岗位级別不在竞业限制补偿金髮放范围內。贵司以实际行为明確表示不履行竞业限制协议项下支付经济补偿金之主要义务。 依据《中华人民共和国民法典》第五百六十三条第一款第二项之规定,委託人韩路一先生特此通知:解除双方竞业限制约定,自本函送达之日起生效。】 韩路一把三份文件放下了。 看向顾司玥。 “……你什么时候办的?” “你上次来的那天晚上,”顾司玥说,“把离职协议照片发给我之后。” 韩路一想起他上次来博衡做著作权諮询,走的时候顾司玥让他把离职协议拍给她看。当天晚上他发了照片,顾司玥回了一份电子委託书让他签,说“先把授权做了,后面可能用得上”。 “你当时就知道他们不会发补偿金?” “p7,非核心岗位,標准裁员流程。”顾司玥的语气像在念结案报告。“这种级別的竞业条款,十个公司九个不实际执行。连hr自己都当走过场。” “所以催收函……” “当然不是催钱,是钓鱼,”顾司玥说,“我要的就是她这封拒绝邮件。” 韩路一没跟上:“……什么意思?” 顾司玥往椅背一靠,换了个跟客户讲案子的节奏。 “竞业限制是双务合同。你不去竞爭对手那里,公司按月给你补偿金。两边各有义务。” 韩路一点头。这部分他知道。 “正常情况下,公司连续三个月不付补偿金,劳动者可以请求解除竞业限制。这是最高院的司法解释,也是大多数人走的路。但三个月太久了,你的產品等不了三个月。” “那你怎么绕过去的?” “民法典五百六十三条。”顾司玥说。“一方明確表示不履行主要义务的,对方有权解除合同。关键词,“明確表示”。张薇那封邮件,“p7不在补偿金髮放范围內”,就是鼎盛明確表示不付钱的书面证据。拿到这个,解除权直接成立。” 韩路一回过味来了。 “催收选在周五发。这种级別的case,hr不会请示上面,当天就按流程回了。” 他顿了一下,自己接上了下一步:“不回也没关係,催收函上有回覆期限,逾期不回——” “视为拒绝。”顾司玥接过去,“五六三条照走。再不济,三个月不付款,还有司法解释兜底。” 韩路一的手指在扶手上无意识地敲了两下,这是他写代码时跑逻辑的习惯。 “那还有一种情况,”他说,“他们真的付了。” “那你先拿著钱,”顾司玥说,“竞业继续生效,但你那份协议写的限制范围是“人工智慧、数据分析、软体开发工具及相关领域”,基本把整个it行业都框进去了。这种条款拿到仲裁庭上,完全有可能认定范围过宽、部分无效,到时候再打。” 韩路一低头看著桌上那封鼎盛法务寄来的提醒函。 “如贵方已在限制领域內从事经营活动,请立即停止。” 出门前他盯著这句话坐了两分钟没动,现在再看,有点可笑。 这张纸在寄出之前就已经是废纸了。 “那鼎盛法务不知道?”韩路一把提醒函推到一边,“解除通知就在档案柜里,还发这个?” “催收函和解除通知都寄的法务部公共收件地址。p7离职员工的case,处理完就归档了。这封提醒函大概是另一个人推的,经手人未必翻过那个档案。” 韩路一点了一下头。 他的视线漫过办公室,落在窗台上。 一盆小绿萝搁在窗台边,叶子蔫巴巴的,盆里的土干得发白,比上次路过时更惨了。 “你这个绿萝,我上次来就注意到了,还有救吗?” “它不在我的业务范围內。” “倒杯水就能活,绿萝挺好养的。” 顾司玥没接话。 但她伸手拿起桌上喝剩的半杯水,倒进了花盆里。 韩路一看著水渗进乾裂的土里,安静了一会儿。 “顾律师,太感谢了。” 顾司玥看看他:“你付费了。” “可太值了。”韩路一笑了。 “著作权登记已经通过了。”顾司玥把话题拉回来,“商標查重也没衝突,法律身份没问题。” 韩路一点头。 顾司玥合上了面前的文件夹。 “但竞业是小事。” 她拿起手机,翻出一张照片,递过来。 拍的是一份內部文件,角度歪,光线不好,像是在会议室偷拍的。 鼎盛数字科技集团:《前员工竞业合规排查》。 一份名单,十几个名字。 只有一个名字是红色的。 韩路一。 “这封提醒函不是法务部例行公事。”顾司玥说,“是有人专门推动的,十几个人的排查名单,只有你被標红。” 韩路一没说话,他想到了昨天视界扫描提醒函时看到的那行数据。 【文件发起链条:陈博文(建议)→法务部合规专员李洋(执行)→审批人:王志远(vp)】 但这个他没法告诉顾司玥。 韩路一把那份报告放回桌上,离开了顾司玥的办公室。 他靠在电梯壁上,看著楼层数字一格一格往下跳。 张薇按惯例拒了催收函,解除通知寄到法务部,归了档,没人多看一眼。 但陈博文还不知道。 他拿著一把一周前就坏掉的枪,还在瞄准。 什么时候他会发现枪打不响啊? 第十八章 竞爭对手 晚上七点半。 有人敲门。 林晚晴站在外面,手里端著一个盘子。 一盘小蛋糕。奶油抹得很均匀,表面用可可粉撒出一片树叶的形状,边缘点缀著几颗草莓,全挤在一起。上面用奶油挤了两个字,“谢谢”。 林朵朵从妈妈身后探头:“路一哥哥!妈妈做的!我帮忙放了草莓!” 韩路一蹲下来看她,“草莓是你自己摆的?” “嗯!本来放了五颗,我尝了两颗,甜的。” 理直气壮,像是在匯报质检结果。 韩路一拿了一块。 “好吃。草莓放得特別好。” 林朵朵搂住妈妈的腿,仰著头说:“妈妈,路一哥哥说好吃!” 林晚晴摸了摸朵朵的头,嘴角弯了一下。 “上次的事,一直想说谢谢。”声音轻轻的,目光没怎么抬。 她眼下有一层淡淡的乌青。 林晚晴没有多待,蛋糕放在鞋柜上,拉著朵朵就走了。朵朵还在门缝里挥手:“路一哥哥晚安,” 501的门关上了。他打开了视界。 【林晚晴|情绪:疲惫(隱藏:焦虑)|核心焦虑:抚养权诉讼|当前应对状態:无法律支持】 韩路一拿出手机,翻到顾司玥的对话框。 “有个朋友可能要打抚养权官司,你那边有人能接吗?” 秒回。 “有,我们所有个合伙人专做婚家。什么情况?” 婚家。他搜了一下,婚姻家事。 “具体的等我確认了再说。对方经济条件一般,费用能不能灵活点。” “我们所里有法援名额,符合条件的话可以减免。让她先別急。” 又过了几秒,顾司玥追了一条。 “另外,你的竞业排查名单我又看了一遍。十几个人只有你被標红,不正常。还有个法律风险我在核实,確认了当面说。” 韩路一站在门口把那块蛋糕吃完了。 回到电脑前。bugkiller v0.2还差最后一步,一键修復。 思路不复杂:扫出bug之后,把上下文丟给大模型生成补丁,再用bugkiller自己扫一遍补丁代码,確保没引入新问题。检测是自己的长板,生成让大模型干,各司其职。 难点在最后一步。bugkiller得判断补丁有没有“修出新bug”,而不同框架的写法天差地別,react和vue不一样,python和go也完全不同。通过率卡在93%,苏念念要求的门槛是95%。 两个点。 又花了三个小时重写模板匹配逻辑,试了四种方案。第四种过了。 通过率95.2%。能交了。 bugkiller v0.2最终版打包完成。 新增功能两个:bug影响评估加了置信度百分比,修復建议支持一键生成代码补丁。发给苏念念。 刚发完,苏念念那边就回復了。 “发了?我马上看。” 十五分钟后,消息开始轰炸。 “v0.2比v0.1强太多了。影响评估的置信度怎么做到的?” “你別管怎么做的,先测。” 五分钟。 “上次扫出来的那五个未知bug还记得吧?我刚用v0.2一键生成补丁,五个,全过!韩路一!我感觉我成开发了!” 过了半分钟没说话。產品经理在算帐。 “韩路一,这东西以后怎么定价?” “还没想。” “赶紧想。能帮人省两周人力的工具,不愁卖的。” “你怎么还没睡?” “在测你的东西,少转移话题。定价你得上心了。” 又过了一分钟。 “我明天开始拉人,先凑20个內测用户。你做个邀请码出来。” “行。” 韩路一刚要关电脑,苏念念又发了一条。 不是关於v0.2的。是一个连结。 《ai代码审查赛道升温:又一家初创拿到天使轮》 “你看看这个。” 韩路一点开。 科技媒体的深度分析。重点提到一家叫codesafe的初创公司,刚拿到天使轮,背后投资方隱约有鼎盛关联资本的影子。创始人赵文渊,斯坦福cs博士,在谷歌呆过三年。 產品方向:ai驱动的代码审查与风险评估。 韩路一翻了翻文章的其他段落。codesafe去年十一月成立,运行了五个月,团队从三人扩到三十人。天使轮的钱够烧至少半年。 他打开视界,扫了一眼codesafe的官网。 【codesafe | ai代码审查】 【核心路线:大模型+大数据(重资產)】 【公测日期:4月27日】 大概三周后。 精力扣了8点。 面板底部还掛著一行小字,投资链条的末端。 【天使轮投资链条:鼎恆创投(lp含鼎盛集团)→个人跟投:王志远】 王志远。 韩路一盯著这三个字看了两秒。快闪的天使轮也有他,张浩然说的那个壳公司。现在又是他。 一个鼎盛的vp,到处投初创公司,挺忙的。 他关掉视界。 苏念念的第二条消息跟了上来。 “这也太巧了吧?” “看了。三十个人,有钱有团队。” “慌不慌?” “说不慌是假的。但他们走大模型重资產,我们走轻量,路线不一样。重的烧钱快、叠代慢,轻的反过来。短期他们功能可能比我们全,但跑长线我们有机会。” “机会有多大?” “不知道。但他们现在还没產品出来,我们v0.2今晚跑通了。先把內测做起来吧,有用户口碑才有得聊。” 苏念念过了一会儿才回。 “行。邀请码明天给我,我先拉人。” 关上电脑,拿起手机,刷了一会技术论坛。 《推荐系统架构改造的七个经典陷阱》阅读量破了一万二。私信列表里多了几条,有的请教,有的约稿,还有一条来自一个他认识的id,鼎盛gg数据组的前同事,跟他同期入职。 “大神你好,我是某公司的后端开发,你写的第三个陷阱我们正在踩。方便私聊吗?” 韩路一没回。这人用的是鼎盛工作邮箱註册的论坛帐號,说明他还不知道nullpointer是谁。但一个鼎盛的人主动找nullpointer求助…… 博客下面最高赞的评论写著:“nullpointer到底什么来头?这种架构级別的分析不像普通开发者。” 404群也在炸。马小飞丟了条连结,《鼎盛数字宣布旗下推荐系统全面升级,下周起覆盖全线短视频及电商应用》。 马小飞:“牛逼啊,全量上线。你们说会不会崩?” 张浩然:“系统改造两个月就敢全量,你猜呢。” 韩路一打了几个字:“不是会不会。是什么时候。” 马小飞:“???你这么確定?” 马小飞:“那陈博文那小子不是完蛋了?” 韩路一没再回。他想起之前视界扫描的d-评级,140个bug,峰值延迟飆升300%。 全量上线之后,撑不过72小时。 第十九章 我是预言家 鼎盛数字推荐系统全量上线了。 韩路一刷到微博热搜的时候是下午三点。#鼎盛推荐系统抽风#,排第十七。 点进去,画风很统一。 “给我推婴儿车。我二十三,单身,养了条狗。” “我的健身帐號刷出来全是保健品和助听器。” “我看了一上午美食视频,首页给我推了个殯葬服务优惠。鼎盛大概觉得我吃太多了,提前帮我安排后事。” 评论区充满了快活的空气。 有人总结:“鼎盛的“猜你喜欢”应该改名“猜你是谁”,连我是谁都没搞清楚就开始猜了。” 韩路一没笑。 態规则引擎本身不至於这么离谱,推得不准是正常的,但推得这么驴唇不对马嘴,说明数据管道出了问题。他一行一行写出来的特徵提取模块被砍掉之后,旧的用户画像格式和新引擎之间没人做適配,输入全是乱的。垃圾进,垃圾出。 推婴儿车不算什么。等数据管道的缓衝区吃满,后面的事就不好笑了。 第二天上午,微博上的吐槽变了味,热搜也衝到了第三。 最高赞:“打开鼎盛买菜app,给我推了一屏幕情趣用品,我妈就站在旁边。我现在怎么跟她解释啊?” 有人发:“我在深圳,“猜你喜欢”给我推了一整页哈尔滨本地火锅店。问了个哈尔滨的哥们,他那边全是深圳奶茶店。我俩换號了?” 有人跟:“不止你们。我和我同事的推荐页一模一样。连顺序都一样。” 技术论坛这边也炸了。 一个id叫“架构老狗”的资深开发者发了长帖: “说句不好听的,这个推荐系统的改造路线非常眼熟。特徵提取从动態权重退回静態规则,多模態融合模块砍得只剩文本维度,nullpointer上个月那篇《七个经典陷阱》,第三、第五、第七个,鼎盛全踩了。建议写个续集:《七个陷阱实战教程,由某大厂倾情演绎》。” 两小时一百三十多赞。 韩路一看了看自己那篇博客的阅读量。一万八。 窗外的天空灰得像没校色的显示器。雨还没下出来,空气闷得发黏。 还没人意识到真正的问题有多大。 到了晚上十一点半。 韩路一睡前又刷了一眼微博。 掛了两天的话题#鼎盛推荐系统崩了#,热度已经下去了。 一个新的话题,#鼎盛崩了#,衝到了热搜第一。 他点进去。二十分钟前,鼎盛系三款核心app集体闪退,用户打开就白屏。 推荐系统的崩溃没有触发熔断。坏掉的模块像传染病一样顺著调用链往上爬,拖垮了依赖它的內容分发、搜索、首页加载,最后整条链路全死了。 十一点十五分鼎盛发了紧急公告。十一点四十分,app陆续恢復上线,他们手动把推荐系统整个切掉了。 微博上有人贴了恢復后的截图。首页乾乾净净,没有“猜你喜欢”,没有个性化推荐,没有千人千面。就一个光禿禿的货架。 “这是2015年的app吧?” “鼎盛的推荐系统呢?去哪了?” “切了。不切整个app都用不了,你选哪个?” 韩路一打开视界。 【事件性质:系统级故障(无熔断→全链路雪崩)】 【根因:画像格式不適配→解析异常堆积→內存泄漏触发oom→数据管道断裂→ 23%用户画像错乱→推荐模块崩溃未熔断→级联击穿全链路】 【影响范围:宕机期间全量用户(峰值约1200万在线),当前降级运行中】 【当前状態:手动切断推荐模块,app降级运行】 【预测恢復周期:版本回退至原架构,约14天】 跟他的判断一模一样。 三月中旬他扫那个外包需求时看到的d-评级,一百四十个bug,就指向这个结局。当时看到的是七十二小时。 从周一上午全量上线到周二晚上全线崩溃,还不到四十八小时。 比原本预估的还快了一天。 …… 天亮之后的事,像多米诺骨牌。 有人翻出了韩路一一个月前那篇《推荐系统架构改造的七个经典陷阱》,发了一条帖子—— “兄弟们!nullpointer是预言家!一个月前精准描述了鼎盛今天的崩溃路径,七个陷阱全踩了!” “什么预言家,是重生者!” “不是全踩。我数了数,至少五个。” “你数错了。第二个和第六个也中了,只是症状还没完全暴露。” “所以是七个全踩?” “七杀。” 帖子被版主置顶。博客阅读量开始飆。中午两万九。下午四万二。晚上破六万。技术媒体引用,大厂群截图传播,连几个头部科技公眾號都转了。 404寢室群里也在討论。 马小飞丟了条连结进来:“你们看了吗这个nullpointer?一个月前写的文章,七个陷阱鼎盛全踩了。这人也太牛了吧。” 张浩然:“技术圈都在转。” 马小飞:“你们说这人会不会就是鼎盛內部的?不然怎么写得这么准?” 没人接话。 过了几秒,韩路一打了一句:“是我写的。” 马小飞:“???” 张浩然:“nullpointer是你?” “嗯。別往外说。” 马小飞发了条语音,韩路一没点开都知道他在喊什么。 张浩然:“知道了。” 下午,討论从“鼎盛系统崩了”升级到了“谁的锅”。有自媒体把时间线整理出来,鼎盛年初裁员,核心算法团队换血,新团队全面改造系统架构,两个月后全量上线,两天崩溃。配了一句:“教科书级別的管理灾难。” 评论区有人说了一句:“被裁的那个核心开发叫什么来著?” 没人接话。帖子的瀏览量继续在涨。 苏念念在微信上转了这条给他:“你之前做的不就是推荐系统吗?这是不是你们组的?” 韩路一回了个“嗯”。 他关掉论坛,切回代码编辑器。內测组反馈积了一堆,最集中的问题是误报率,v0.2降到了7.8%,苏念念標的目標是5%以下。二十三个內测用户里四个人提了同一条:误报太多,影响工作流。 该干嘛干嘛。 晚饭是冰箱里的速冻水饺,煮了十个,吃了八个,剩两个烂了倒掉。 洗完碗坐回电脑前,九点半。 微信弹了一条。赵启明。 “韩哥,睡了吗?” 韩路一回:“没,怎么了小明” “今天加班到现在刚回来,跟你说个事。 “下午开了復盘会,陈博文全程在甩锅。 “说系统崩溃的根因是“前任核心开发者遗留的架构缺陷”。 “ppt上你的名字出现了四次。什么“过度耦合的动態权重设计导致系统脆弱性”,什么“缺乏文档交接”。二十三页ppt,有四页在说你。 “放屁啊,那套动態权重是你写的,跑了三年多没出过事,他一上来全改崩了。 “文档我也写了啊,他看都没看。” 韩路一看著这行字,没动。 过了几秒。赵启明又发了一条。 “我在会上差点当场懟他。忍住了,简歷还没投出去呢。” “现在这环境,就当日结工资了。先把自己的事安排好。” “我有数。就是太他妈噁心了,跟你说一声。” “嗯,知道了。谢谢【抱拳】” 赵启明发了个嘆气的表情包。 “行了韩哥,你早点睡。我也扛不住了” 韩路一放下手机。屏幕暗了几秒又亮了。是顾司玥。 “鼎盛的事你看到了吧。小心被牵连,有情况隨时找我。” 第二十章 装弹 早上七点闹钟响了。韩路一拿起手机。赵启明凌晨三点发来消息。十二张照片,手机拍的,陈博文的復盘ppt,二十三页。“韩哥,偷拍的,你留著。” 核心论点就三句话。 一、原架构设计者留下了严重的技术债务,包括过度耦合的动態权重系统和缺乏冗余设计的数据管道。 二、团队在继承和优化过程中,遭遇不可预见的系统性风险。 三、建议对前员工遗留代码进行全面审计,明確责任归属。 他翻完十二张截图,把这事在404群里说了一下。 马小飞:“这他妈是把锅焊在老韩头上啊。” 张浩然:“这手段很恶毒啊。如果不了解真实情况,可能真有人会信。” “第三条最毒。”张浩然说。“明確责任归属,先定性,后面想怎么追都行。” 马小飞:“还有个更噁心的。今天凌晨,某科技自媒体发了篇文章,” 他截了图丟群里。 標题:《被裁员工的代码炸了老东家?一场推荐系统崩溃背后的人事博弈》 马小飞:“我问了渠道,这篇不是编辑部自发的。走投放。有人买单。” 张浩然:“ppt对內,文章对外。內外夹击。標准公关打法。” 韩路一打字:“里面提我名字了吗?” 马小飞:“没直接点名。写的是“一位在鼎盛工作五年、负责核心推荐系统的算法工程师”。稍微查一下就能对上。” “而且,”马小飞又发了一条。“这篇文章故意把nullpointer的博客拎出来一起讲了。原话:“一个月前精准预测崩溃路径的匿名博主nullpointer是否就是这位前员工?”” 群里没人说话。 韩路一把手机扣在床上,去卫生间洗了把脸。水龙头开了很久,凉水从指缝往下淌。 回来拿起手机。马小飞问:“老韩,什么打算?” “下午去见律师。” 马小飞:“我先帮你懟回去?咱不能吃这个哑巴亏。” “別。”韩路一打字。“你一出手,人家顺著你查到我,正中下怀。” 马小飞:“……行吧。” …… 下午两点。博衡律师事务所。 前台已经认识他了。“韩先生这边请。” 顾司玥在办公室等他。 窗台上那盆绿萝比上次好了一点,新抽了两片小叶子,土是湿的。 桌上摊著三份文件,按顺序排好。她面前摆了两杯咖啡,推了一杯到对面。 “坐。咖啡。” 韩路一坐下,端起咖啡。 顾司玥把一张纸推过来。上面画了三个圆,分別標著,竞业、归责、职务作品。前两个用红线连著,第三个单独在下面,画了个大大的感嘆號。 “你看到那篇自媒体文章了?” “看了。” “他们在打组合拳。”顾司玥拿起笔,点了点前两个圆。“竞业是锁链,归责是攻击。他们的算盘是,你站出来自辩,就暴露bugkiller跟鼎盛业务的关联性,他们就用竞业协议攻击你。你不回应,敘事权在他们手里。” “挺聪明的。”韩路一说。 “对。但他们漏算了一步。” “竞业已经没有了。” 顾司玥点头。 她在第一个圆上打了个叉。 “竞业没了,锁链就断了。你隨时可以站出来说话。但我建议先不动。” “为什么?” “主动澄清等於承认你是当事人。一旦开口,对方就拿到了互动的机会,你说什么他们都能接著打。先手在我们这边,没必要让出去。” “那你的建议是……?” “等。收集证据。归责文章的投放记录、传播路径、跟陈博文的关联,这些都是名誉侵权的子弹。现在只需要装弹,不用发射。” 韩路一喝了口咖啡。 “那第三个圆是什么?” 顾司玥停了一下。她把剩下那份文件推过来。封面是《中华人民共和国著作权法》,第十八条被黄色萤光笔標了出来。 “上次我说有个法律风险在核实。就是这个。” 韩路一等她说。 “职务作品。” 顾司玥翻开那一页。 “著作权法第十八条。员工离职一年內完成的、跟原岗位主要职责相关的作品,单位有权主张属於职务作品。” 她的手指点在那行字上。 “竞业是“不让你做”。职务作品是“做了也是我的”。” “如果鼎盛主张成功,就不是赔钱的问题了。你的新產品,包括代码、模型、数据、商標,全部归属权归对方。” 韩路一放下咖啡杯。 “我能证明代码是离职后写的。代码提交记录,云平台帐单,都有时间戳。” “光证明时间不够。”顾司玥摇头。“构思、设计、实现,全链条都要能证明跟鼎盛无关。法院看的是,你离开鼎盛的时候,脑子里有没有带走东西。” 她翻到下一页,一张清单。 “git提交时间线、开发环境日誌、云平台帐单、设计文档版本歷史,这些全都要规范化存档。这些是將来上庭的弹药。” 顾司玥翻回著作权登记文件,指了一行。 “你的核心模块描述里写了“bug模式知识库”。这个知识库里的模式,有多少来自你在鼎盛的项目经验?” 韩路一沉默了两秒。“不少。” “经验归你,不归公司。这个官司他们打不贏。”顾司玥合上文件。“但打不贏不等於不会打。拖你进仲裁,光举证就要几个月。你现在有几个月可以浪费?” 韩路一没接话。 “陈博文还沉浸在竞业和归责里。但等他发现竞业走不通,会找新路。职务作品就是最顺手的那条。” “窗口多长?” “不好说。一到两个月。够你做准备了。” 韩路一站起来。 “回去把开发记录整理一遍。git log、云帐单、笔记、草稿、每一版设计文档。能证明bugkiller从第一行代码到现在,每一步都跟鼎盛无关。” “知道了。” 顾司玥送他走到门口。 “对了,你之前问的抚养权。情况確认了吗?” “確认了。对方前夫要爭抚养权,她没请律师。” “让她联繫沈予微。”顾司玥从桌上翻出一张名片递过来。“家事诉讼她比我专业,我来盯策略。费用的事我跟予微说。” 韩路一接过名片。“谢了。” “给我的客户牵线而已。” 韩路一走进电梯。门关上之前,走廊尽头传来她的声音,在打电话:“予微,我手上有个家事case……” 回到家。晚上八点。 韩路一打开电脑,在加密网盘里建了个文件夹。 evidence_chain。 git提交日誌导出、云平台帐单、每一版设计文档的修改记录、域名註册信息、苏念念发的每一条產品反馈,全部按时间线归档,同步到云端。 手机亮了。苏念念。 “內测数据出来了。二十三个人里十九个人用了超过五次。有三个主动问我什么时候出付费版。” 苏念念又发了一条。“有个內测用户是个小公司cto,今天跟我聊了半小时。他想把bugkiller接进他们的ci流程,每次提交自动跑一遍。问能不能开api。” “现在没有。但不难。” “我整理了一下他的需求,明天跟你对。如果这条路走通,企业客户的口子就开了。” 韩路一关掉微信,打开了技术论坛的后台。 草稿箱里躺著一篇帖子,上周写的,一直没发。 標题:《一个新產品:bugkiller》。 瀏览器另一个標籤页还开著那篇自媒体文章。標题里“前员工”三个字加了粗。 光標在“发布”上停了两秒。 第二十一章 One More Thing 草稿在论坛后台躺了四天。二十三个人的反馈磨了三轮,v0.3才算定稿。 四月二十號,周一晚上。苏念念测完最后一轮:“够了。发吧。” 韩路一打开草稿。標题还是上周写的,《一个新產品:bugkiller》。 正文改了四十分钟。开头三段纯技术,中间插了两张v0.3的扫描结果截图,脱敏过的。结尾一句话:“今天开放限量测试,50个名额。填表申请,先到先得。” 最后加了一段声明,数据来源合规,源码可审计。 发布。 发完帖他切回编辑器写v0.4。凌晨一点半,框架搭完,冰箱里最后一盒速冻水饺下了锅。煮好端到电脑前,顺手扫了一眼帖子。 內测申请表提交人数:127。 五十个名额,三个半小时,一百二十七人。 第二天上午,韩路一被手机震醒。 是苏念念。连发八条消息,前三条是“???”“你看论坛了吗”“快起来”。 他揉著眼睛打开论坛。 內测申请:638。瀏览量:12,400。回覆:289。私信:67条未读。 回苏念念:“正在看。” 韩路一靠在床头把评论区从头翻到尾。 “nullpointer做產品了???这是什么跨界打劫??” “影响评估是什么鬼,扫出bug还能告诉我上线后会死多少用户?请问这合法吗?” “nullpointer之前分析鼎盛崩溃封了神,现在把这能力做成產品。传说中的大佬下凡开店,凡人瑟瑟发抖。” 有人做了投票,“你觉得bugkiller能不能干掉市面上的代码审查工具?” 一千二百多票。67%选了“有可能”。 404群里也有未读消息。马小飞丟了一串问號过来。 “哥!你那帖子上热帖了!我朋友圈被你刷屏了!科技圈好几个大號都在转!” 张浩然冒出来:““nullpointer做產品”,脉脉热帖第三。你小心身份被猜到。” 马小飞:“我帮你宣传宣传?我现在六万粉了!” 韩路一:“不用。” 马小飞:“?” 张浩然:“nullpointer现在是匿名的。你一宣传,画像就收窄了。” 马小飞沉默了五秒,回了两个字:“忍了。” 中午。申请人数破八百。 韩路一从里面筛了第一批,五十个名额,全挑技术栈匹配度最高的。二十分钟,帐號全部开通。 下午两点。第一批內测用户的反馈开始涌进来。 论坛、微信私信、邮件,三个渠道的通知刷不完。 “扫了我们公司核心服务,找到6个我们不知道的bug,其中两个高危。影响评估说其中一个如果不修,上线一周內会影响约12万用户。我们查了一下,这个模块確实排在下周灰度。救命。” “把自己的开源项目扫了一遍。8个问题,逐个验证,全是真的。3个我知道但一直没修,5个完全不知道存在。” 韩路一一条一条回私信。回了一会,手指有点酸,去厨房接了杯水,回来继续。 “这不是代码审查工具。这是代码审查加风险预警系统。nullpointer你是不是开了天眼?” 论坛前排有一条评论引爆了討论。 “影响评估有点恐怖。它说我一个bug会导致“峰值期0.3%的订单金额计算错误”。我算了一下,日均八万单,0.3%是240单,平均客单价85,一天两万,一个月六十万。一个bug。六十万。” 底下跟了一串。 “六十万?bugkiller按这个算投入產出比,定多少钱我都买。” “你们別光说好话,说说缺点。” “缺点:名额太少了。建议nullpointer开放一万个。” 窗外黑了。他没开灯,屏幕的光映在脸上。隔壁501传来林朵朵的笑声,隱隱约约的,大概在看动画片。 论坛最新一条,“java那个我也遇到了,nullpointer回我了,说v0.4会改进。你们知道什么叫售后吗?这叫售后。” 苏念念从下午开始就在整理反馈。飞书表格,四栏,功能模块、用户原话、优先级、建议方案。到晚上七点,四十七行。 她打来电话的时候声音有点哑了。 “路一,我跟海狸科技请了两周年假。” 他正在改代码,手停在键盘上。 “你不用,” “你一个人写代码、改bug、回用户、整理反馈、写文档,你同时干几份工?我项目早被人拿走了,请假也没人管。这两周我全投bugkiller。” 韩路一没说话。 苏念念:“明天上午九点,bug café。所有內测数据发我,今晚我先看。还有,v0.4叠代方向我想好了,你先別动手,等明天碰完再说。” “我刚把v0.4的框架写完了。” 苏念念沉默了三秒。 “发我看看。” 五分钟后回了一句:“功能优先级跟我排的一模一样。” 又过了两秒,苏念念发了条语音:“写完了你不早说?我白排了一下午。” “你没问。” “明天九点。別迟到。” 晚上十一点,帖子发出二十六个小时。 申请人数:2147。瀏览量:43000。回覆:687。 有技术媒体编辑在评论区实名留言:“求专访nullpointer。”底下一百多条回復,排队去。 面板闪了一下。 【经验值+8|当前:45/200】 bugkiller帮助內测用户发现並定位了多个实际bug,系统判定:批量帮助。 韩路一关掉面板,准备关电脑。 习惯性刷新了一下帖子。 回復区最顶上多了一条新评论。三分钟前。 “bugkiller的bug检测模式资料库来源存疑。建议作者公开数据来源和训练方法论,否则无法排除使用了未授权的商业数据进行训练的可能性。作为同赛道从业者,我认为数据合规是產品公信力的基础。” 帐號名:techethicswatch。 註册时间:今天。发帖数:零。回复数:零。头像是默认灰色。 唯一的操作就是这段话。措辞精准,语法工整,不像技术社区里的吐槽,像律师擬的声明。 韩路一往下看了一眼点讚列表。 第三个。 codesafe official。 codesafe的公测大概还有一周。產品还没上线,已经开始给別人的质疑帖点讚了。 韩路一把这条评论截了图,发给顾司玥。 关掉了论坛。 第二十二章 陈经理 鼎盛集团总部二十八层。晚上九点半,整层楼还灯火通明。陈博文办公室在走廊尽头,门关著。 他在刷论坛。 技术论坛热帖榜第二条,《nullpointer画像分析:他是谁?》。帖主把nullpointer所有公开信息串了起来,写得像侦探报告。 “bugkiller的bug模式资料库覆盖推荐系统、电商后端、支付链路三个方向。其中推荐系统方向的模式深度远超其他两个,推测他有很深的推荐系统背景。” “鼎盛推荐系统崩溃。nullpointer一个月前发的博客精准命中全部崩溃路径。简直像是当事人回忆录。” 当事人。推荐系统。鼎盛的推荐系统。 陈博文不用猜。 推荐系统核心开发,今年离职,技术顶尖——鼎盛符合条件的只有一个人。他亲手裁的。 评论区还在猜,“鼎盛?字节?海狸?小黄书?” “在职的大厂员工不可能做產品吧?被公司发现直接开除。” “那就是离职的。” 全网都在找nullpointer。没人知道答案就在他手机里,那是他两个月前亲手签的裁员审批单,上面的名字叫韩路一。 陈博文放下手机。嘴角压了一下,没压住。 竞业提醒函上个月就发了。十二个月限制期,白纸黑字。韩路一做bugkiller,正面撞上限制条款。 这不叫巧,这叫送。 论坛里所有人在猜“大厂高级专家”,p8起步,p9也有人猜。 一个p7而已。 他站起来,走到落地窗前。二十八楼,半个城市的灯铺在脚下。 一封函的事。 第二天上午。陈博文去了一趟二十二楼法务部。 上次来还是推那封竞业限制提醒函。走廊尽头的工位区,一排格子间,空调比楼上冷两度。 小周在。就是上次帮他擬提醒函的法务专员。 “小周,帮我擬个东西。竞业限制违约追诉函,前员工韩路一。” 小周推了推眼镜。“陈总,追诉函我需要先核实一下执行状態……” “十二个月限制期,二月底离职,不到两个月。他做的產品叫bugkiller,做ai的,全面覆盖。”陈博文把截图递过去。“板上钉钉的事,直接擬。” 小周看了看截图,犹豫道:“这个case我印象中好像有一些……” “周四之前给我。例会上要用。” 小周张了张嘴,没再说。 陈博文走出法务部。电梯里给王志远发了条消息:“王总,周四例会加个议题。前员工竞业违规,跟上次宕机有关。有把握。” 王志远回了一个字:“说。” “上次宕机舆情里那个预言帖,nullpointer,查出来大概率是韩路一。他最近做了个產品,但竞业还在限制期,一封追诉函过去,他要么配合我们的舆论口径,要么他现在做的东西全停。不花一分钱。” 过了十几秒。王志远回覆:“周四讲。” 周四。三十层大会议室。跨部门月度例会。 长桌坐了十来个人。產品负责人刘芳靠窗,用户增长负责人张毅在对面。法务负责人秦岭坐在长桌末端,面前摊著一叠文件。 王志远最后进来。深灰色西装,红色领带。在长桌正中落座。 前四十分钟是常规议程。陈博文坐在王志远左手边,笔记本电脑亮著,ppt停在封面。 轮到他了。 “占十分钟。上次宕机的舆情还有个尾巴没处理,跟在座几个部门都有关。” 投屏。封面:《sev0-20260414的后续公关处理》。 先翻到第二页,微博热搜截图,#鼎盛崩了#,两周前的。 “这个话题我们都经歷过了。舆情压下去了,事情本来翻篇了,但有一个尾巴没处理。” 翻页。nullpointer预言博客截图,发布日期红框標出,系统崩溃前整整一个月。 “这篇博客精准命中了我们全部崩溃路径。技术社区的共识是:写这篇文章的人掌握鼎盛推荐系统的底层架构。” 张毅放下了手机。 “社区已经在画像了。” 翻页。三栏表格,技术方向、时间线、关联事件。 “所有线索指向鼎盛近期离职的核心开发。还没人猜到具体是谁……” 陈博文停了一拍。 “各位想一下。如果身份被確认,媒体標题会是什么,“鼎盛裁掉核心开发,两个月后系统崩溃,被裁员工一个月前精准预言”。” “上次的舆情好不容易压下去了。这个標题能把它全部翻出来。这是一个公关炸弹。” 他扫了一圈。张毅已经把手机收起来了。 “综合判断,nullpointer大概率是今年二月裁掉的前员工韩路一。” 刘芳转头看了一眼王志远。 “他最近做了一个ai代码审查工具,內测两千多人申请。” 翻页。竞业协议扫描件。关键条款用红框圈了起来,旁边配著bugkiller在论坛招募內测贴的截图。 “韩路一签了標准竞业限制协议。十二个月限制期,覆盖ai、数据分析、软体开发工具。bugkiller一条不落。” 说到这里,他微微一笑。 “我已经让法务擬了追诉函。函发出去,对方只有两条路:要么赔违约金加停业,要么谈。谈的条件很简单,配合出一份技术澄清,预言帖是个人推演,不涉及內部架构。这份声明一出,上次宕机的舆情就彻底翻不了了。” 全场安静了几秒。 刘芳:“確定是他?” “百分之百。” 刘芳转向长桌末端。“法务这边呢?” 秦岭合上了手里的文件。 “陈经理。”秦岭的声音不高,语速不快。“你说的这份竞业协议,法务部核过了。” “公司没付竞业补偿金,对方律师走了法定解除流程。协议上个月就终止了。” 秦岭翻了一下桌上的文件,抽出一张。 “解除通知签收记录在档。”他抬头看著陈博文。“这函要是发出去了,对方律师一封回函,我们得上行业新闻。” 会议室里只剩空调在响。 刘芳看了一眼幕布上的ppt,又看了一眼陈博文。“补偿金为什么没付?” 陈博文张了张嘴。“p7,標准流程……hr那边——” “p7。”刘芳重复了一遍,语气没什么起伏。 幕布上还亮著他做的那页,红框圈著“限制期十二个月”,旁边配著bugkiller內测两千人的截图。 没人接话。 p7不值得花钱锁,但p7做出来的东西值得做十页ppt。 这个矛盾不需要说出来。 秦岭把抽出来的那张纸放回去,摞齐,语气没变:“陈经理,以后要出法律文件,走审批流程。不要直接找我的人。” 说完低头翻下一份文件。像在处理一件跟这间会议室毫无关係的事。 没人说话。 张毅拿起了手机。刘芳端著水杯,目光从陈博文身上移开,不经意地扫了一眼王志远。 王志远从头到尾没开口。保温杯端在手里,杯壁上凝著一层水雾。 刘芳放下杯子,轻咳一声:“下一个议题。” …… 散会。人陆续走了。 陈博文拔投影线,合笔记本,动作比平时都慢。走出会议室的时候幕布还亮著,投影仪的风扇嗡嗡转。 走廊里。王志远走在前面,步子不快不慢。 陈博文跟了上来。“王总……” 王志远脚步没停,就像没听见。 走到电梯口才开口。声音不大。 “这件事不要再提了。” 电梯门开了。王志远走进去,按了二十八层。 门快合上的时候,他又说了一句。 “韩路一那边,我另有安排。” 门合上了。 陈博文站在电梯外面。 走廊里没有別人了。投影仪的风扇还在会议室里转。 他站了很久。 第二十三章 唯一標准 傍晚,韩路一在bug café吃了点炒饭,手机一震,苏念念发来一个连结。 《ai代码审查赛道的三个底线》,作者赵文渊。 韩路一点开。 三千字的长文,通篇没出现bugkiller的名字,但每一段都是衝著他来的。 “训练数据的来源合规性是產品公信力的基石。当一个產品的核心数据来源无法被独立第三方验证时,用户的信任建立在流沙之上。” “匿名是权利,但匿名不等於免责。当匿名身份与商业利益绑定,社区有权要求更高標准的透明度。” “赛道需要的不是一鸣惊人的个体英雄敘事,而是经得起审视的工程化体系。” 底部署名:赵文渊,史丹福大学计算机科学博士,前谷歌高级工程师,codesafe创始人。 文章同步发了多个技术社区,並且迅速被很多科技媒体转载。 评论区已经打起来了。 “说实话看完有点动摇。nullpointer的检测率是强,但强的原因是什么?数据来源声明写了一句话,第三方验证在哪?” “赵博士这篇每个字都在点子上,匿名做產品不是问题,匿名加不透明加赚钱,这三样加一块就不行。” “內测的时候我跟团队推荐过bugkiller,现在有点后悔,万一训练数据真有问题呢?” “……所以没人在意codesafe official给techethicswatch马甲帖点讚这件事吗?” 最后一条沉在第二页底部,没几个人点讚,风向不太对。 韩路一在bug café看完全文,脸色不太好。 老周在吧檯后面擦杯子,探头看了他一眼:“谁惹你了?” “没事,同行互踩。” “咱们程式设计师还搞这个?” “写代码的不搞,写ppt的搞。” 老周笑了。 苏念念的消息过来了:“看完了吗?” 韩路一给苏念念打了个语音通话:“文章我刚看完。” 苏念念没有寒暄,语速很快:“他也太阴险了吧,表面讲行业规范,实际上把“匿名加数据来源不透明”两顶帽子扣咱们头上了。你看评论区,已经有人在问nullpointer是谁了。他这不只是攻击你,他想定规矩,他要是定好了,你就永远在他的框架里接受审判。” “我知道。” “那咱们怎么办?” “不接他的招,他聊规范,我聊结果。检测率摆出来,其他全是废话。” 电话那头安静了一秒:“好,我先帮你把內测数据整理好?” “嗯,检测率、误报率、影响评估覆盖率,跟codesafe公开数据放一起对比。” “给我二十分钟。” 掛了电话,韩路一起身回家。 他坐在书桌前,打开了一个新文档。 標题:《检测率就是一切》。 一千二百字,写完还不到八点。 不长,通篇只讲一件事:什么是好的代码审查工具。 “用户不关心你的创始人是谁,不关心你的团队有几个博士,不关心你的数据来源写了几页白皮书。用户只关心一件事,你能不能找到我代码里的bug。” “找得到,你就是好工具,找不到,你说什么都是废话。” “这是bugkiller內测首批用户的数据。” 一张表,三行数字:检测命中率、误报率、影响评估覆盖率,每一栏都附了內测样本量和用户验证比例。 “以上数据从今天起在bugkiller官网实时更新,不做筛选,不做美化,欢迎任何同行、媒体、用户隨时验证。也欢迎任何同赛道產品公开同口径数据,放在一起比。” 最后一句:“工具好不好,跑一遍就知道。” 发布。 二十分钟,回復破两百,七百多个赞。 “最后那句笑死。” “赵博士写了三千字定规矩,nullpointer一千字都没到,数据往桌上一拍:来,比!格局差距。” “codesafe official给techethicswatch马甲帖点讚的截图又被翻出来了,吃相太难看。” “techethicswatch零发帖零回復昨天註册今天消失,马甲还需要实锤?” 赵文渊在自己博客置顶了一条回覆:“本文不针对任何具体產品。” 底下第一条回復有两千三百个赞。 “赵博士,您文章发布时间比bugkiller內测帖晚了三十六小时。您一般都是在竞品火了之后才关心行业规范的吗?” 赵文渊没再回復。 周五下午,马小飞在404群里甩了一条短视频连结。 “一出手就是巔峰!” 標题:《我试了全网最火的ai代码审查工具bugkiller,结果……》 韩路一点开。马小飞的风格,节奏快,表情包密,夸张又勾人。他用自己的一个开源小项目做了演示,bugkiller跑完,三个他不知道的bug,每个附带影响评估和修復建议。 “这玩意扫了一遍我的代码,把我三个月前埋的雷全翻出来了。” “第二个bug更离谱,它说高並发时有概率死锁,我寻思我这破项目也没啥並发啊。结果仔细一看,这个方法被另一个项目引用了,那个项目有並发场景。它怎么知道的?它怎么知道的??” “第三个,算了不展示了。三个月了,一行拼错的环境变量,线上没炸纯属运气,丟人。” 末尾总结:“工具有两种。一种让你觉得“还行吧”,另一种让你看完直接去翻自己的代码库。bugkiller是第二种。免费內测中,不是gg。但欢迎nullpointer给我打钱。” 张浩然在群里说:“你那项目一共多少行?三个bug命中率有点高。” 马小飞:“你闭嘴。” 韩路一:“你说了不是gg?” 马小飞:“工行 6222 xxxx xxxx xxxx马小飞收,谢谢老板” 四十八小时,播放量十二万,马小飞涨了將近一万粉,直接奔著七万去了。bugkiller从技术论坛的內测圈出圈到了泛科技受眾面前。 苏念念看到数据后发了一句:“马小飞可以啊,这期视频比我写两周推广文案都好使。” 韩路一截图发给马小飞,马小飞秒回:“苏女神???你俩现在天天聊???” “她帮忙看產品。” “看。產。品。懂了懂了。” 周一。 苏念念发了三张截图,没带一个字。 第一张,科技媒体头条:《codesafe正式公测:斯坦福博士团队打造的“最完整ai代码审查方案”》。 第二张,技术论坛热帖:《codesafe首周体验:企业级集成真的强》。帖主实测python、javascript、java三种语言,结论,“超越市面上所有的代码检测工具,集成文档写得比產品本身还好,开箱即用”。 第三张,赵文渊朋友圈截图。不知道谁传出来的。 只有四个字。 “產品说话。” bugkiller內测群里也在討论:“codesafe公测了啊,我们什么时候公测?” 苏念念没说话,韩路一也没回。 论坛首页,nullpointer的帖子还掛在热帖第一,七千赞。赵文渊三天没更新。 韩路一打开codesafe的官网,註册页上,第一周的数字还在涨。 他开了视界。 灰色的代码流从页面底下浮了上来,前端、后端、数据管道,codesafe的技术架构像透视图一样铺在屏幕上。 他看了几秒,关掉视界,关掉页面。 表情没什么变化,打开编辑器,继续写v0.4。 第二十四章 魔高一尺 周三下午。bug café。 老周看了一眼吧檯后面的钟。“一点你就来了,今天不加班?” “自由职业没有加班。”韩路一端著美式坐到角落的老位置。“只有隨时在班。” 老周哼了一声。“我当程式设计师的时候可不这么自我感动。” 韩路一打开电脑。 codesafe的官网还停在上次的標籤页。註册数涨到了三千八。好评测评从三篇变成了七篇。 每篇测评他都看了。 他喝了一口咖啡。下载了codesafe的公测版,本地装好,打开。 上次只扫了一眼轮廓。这次要看仔细的。 开视界。 灰色代码流从屏幕底部浮上来,像透视图一样在眼前铺开,前端框架、后端微服务、数据管道、模型推理层,codesafe的整个技术栈一览无余。 先说好话。 前端react加typescript,组件拆分规范,交互动效流畅。ui比bugkiller好看三个档次,他们有专门的前端团队,这不是一个人能追的差距。后端go写的网关,python跑推理,中间kafka做消息队列。教科书一样的技术选型。支持三种语言,检测速度不慢。企业集成的文档写得比很多大厂都好。 更新不易,记得分享101看书网 视界在整体代码质量旁边浮出一个评级標籤: 【代码质量评级: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”。 他点开看了两眼,回了句“收到,早点休息”。 韩路一把朵朵的画贴在显示器边上。 然后打开编辑器。 瓢虫瞪著两只大眼睛看他。 第二十五章 狗都不用 七天。 说出口很轻鬆。 韩路一仿佛又回到了在鼎盛的日子,每天只睡不到5小时。 一边飞速写代码,一边用视界把遗漏的bug揪出来修好。 苏念念的上线方案从v0.1改到v0.4,上线流程精確到分钟级別。 马小飞拍好了第二期视频,韩路一看完让他把標题里“全网最强ai代码审查工具”改成“可能是最好用的ai代码审查工具”。 马小飞不服气:“有区別吗?” 韩路一:“有,被告的时候赔的钱不一样。” 五月六號。 苏念念凌晨三点还在改推广文案的措辞。韩路一凌晨四点修完最后一个边界条件。六点睡了三个小时,九点起来洗了把脸。 十点。bugkiller v1.0在官网上线公告,nullpointer名义发布。论坛、v2ex、掘金三平台同步。內测群推送。种子用户邮件触达。马小飞第二期视频同时发布。 发了。 韩路一坐在自己房间的书桌前,盯著註册后台的数字。 前三十分钟很安静。 3。 7。 12。 苏念念的消息过来了:“才十二?” “才半小时。” “我在海狸科技做codereview產品线,对外卖的那种。二十个人的团队,市场部配合推了一整轮,砸了八个月。对外发布第一天,註册五百出头。” “所以?” “所以我也要首日五百日活啊啊啊!” 第一个代码仓库接入了。python flask项目,六千多行。bugkiller跑了十四秒,报了七个bug。后台日誌显示用户点开了第一条检测结果,在影响评估那一栏停留了四十三秒。 十一点。47。 中午。89。 苏念念没在说话了。她只是不断发数字更新的截图过来。 下午一点。破一百五。增长曲线在加速,每个整点的增量比上一个整点多。口碑传播的典型斜率。內测用户开始往各自的技术群里扩散了。 韩路一喝了口水。手有一点抖。不是紧张,是三个小时的睡眠开始报帐了。 马小飞:“视频发了三小时,后台显示一千多人从我视频点进bugkiller註册页。各位,我马小飞,科技区带货一哥。” 张浩然:“你视频底下第一条评论说“第二个bug的分析太准了”。你確定不是托?” 马小飞:“你才托。那是我真实粉丝好吧。” 张浩然:“行。路一,你这个自然增长率如果持续三天,周活数据可以拿去见投资人了。” 韩路一:“没想那么远。” 张浩然:“不远。信我。” 下午三点。帖子上了论坛热榜第三。马小飞的视频播放量八万。 帖子下面有一条长评在快速上升。 “我们公司从內测开始用了两个月codesafe。今天註册了bugkiller。同一个项目跑了一遍。bugkiller找到三个codesafe从来没报过的bug。其中一个,跟上个月炸过线上的那个是同一类问题,连接復用的竞態条件。上次那个炸了六万用户,排查了两天才修好。这个还藏著,codesafe完全没报。 “bugkiller的报告里写著:“高並发场景触发概率约12%,预估月均影响用户5-6万,修復路径:修改第1247行连接復用逻辑,预计改动3行代码。 “三行代码。上次同样的问题我们排查了两天。 “我说句理中客的:codesafe,狗都不用。” 六百赞。底下跟了一串类似的现身说法。 下午四点十二分。后台全红了。 api响应时间直接飆到超时。韩路一打开伺服器面板,请求量暴涨四十倍,来源ip高度集中,全指向/api/scan接口。 是ddos攻击。 开视界。 伺服器流量在视野中铺开。正常用户的请求是一条条细线,节奏规律。攻击流量完全不一样,三股暗红色的洪流从三个ip段同时涌入,密到把正常流量淹没了。 视界在攻击源上方浮出诊断: 【ddos攻击|类型:http flood + syn flood|来源:3个ip集群(某云华东节点)|目標:/api/scan|修復路径:1封禁47个攻击ip段2/api/scan启用频率限制(单ip≤5次/分钟)3开启cdn层ddos防护】 三步。 封ip段。加限流。开cdn防护。 七分钟。监控从红转绿。 他在內测群发了一句:“刚才断了几分钟,被ddos了,已处理。” “公测第一天就被人打?” “谁这么急啊。” “你一个人处理的?七分钟???” 韩路一没接话。打开官网写了篇事故復盘。攻击时间、持续时长、来源ip段、攻击目標接口,全部列出来。 半小时后论坛多了个帖子,標题:“猜猜谁会在bugkiller公测日打ddos。” 点讚第一:“我帮大家捋一下时间线哈,对比帖600赞是下午4点整,ddos攻击4点12分,十二分钟,就这?” 第二:“上次马甲帖点讚,这次直接ddos,下次是不是该上门砸电脑了?” 第三条是一个技术討论,很多人回覆:“我在某厂做安全运维的,说个数据吧,我们soc十二个人轮班,全套自动化监控,ddos响应sla是30分钟,这还是提前演练过无数遍、剧本都写好了的情况,他一个人,七分钟,从发现到恢復,离谱!” “楼上说的是大厂有预案的情况。小团队第一次被打正常流程是:臥槽怎么掛了→是不是代码炸了→查半天日誌发现是ddos→慌了→提工单给云服务商→等客服回復→一两个小时算快的。七分钟?我工单都还没提交。” “所以nullpointer到底是一个人还是一个团?一个人写產品一个人修线上一个人扛ddos,这是三头六臂?” “ddos都贏不了人家一个人,攻防七分钟,泡麵都没泡开。” 下午六点。 註册用户:476。 接入代码仓库:527个。 累计检测bug数:3847个。 476,苏念念的五百还差二十四。 晚上九点。 韩路一从冰箱里拿了瓶水,打开后台。 苏念念兴奋的打电话过来。 “路一!六百一十二!!!” “你知不知道这意味著什么!” “二十个人的团队,大厂资源,砸了八个月。” “对外发布首日註册才五百出头。” “你一个人做的產品。” “首日註册612。” “一个人干掉一个大厂团队!” 韩路一说:“是咱们两个人。” 苏念念沉默了一会。 “说真的,路一,你做到了,我们做到了!” 掛了电话,韩路一看向显示器旁边贴著的画,大瓢虫的红壳上有三个黑点。 他伸手把画纸翘起来的一角折了折。 手机又震了,顾司玥。 “恭喜,数据不错。” “顾律师也关注科技產品?” “关注我的客户。” 他回了句“谢谢”。 马小飞第二期视频播放量过了十五万,评论区顶到最高的一条:nullpointer大神求出山。 韩路一看了一会儿评论区,翻了翻,退出来。 打开和马小飞的对话框。 “下一期视频,做个专访?bugkiller创始人真人出镜。” 马小飞的回覆秒到:“???你要公开身份??” “產品到这个阶段,匿名没意义了。企业客户要签合同,总不能跟nullpointer签。” “!!!” “你来拍,拍一期“nullpointer是谁”,也给你涨点粉。” 好一会儿没回,韩路一还以为他在犹豫。 然后收到一条语音,点开,马小飞声音里压不住的兴奋快从听筒里溢出来。 “老韩你知不知道我等这一天等了多久!脚本我写了三版了你知道吗三版!明天!不,今天晚上就能拍,我把灯光全架好,” 韩路一哭笑不得:“別急。” 放下手机。 开了一下视界。 【lv.2|精力:58/250】 经验已经到42%了。 今早还是37%。 后台的bug检测总数停在4215。每一条记录背后都是一个开发者接入了仓库,bugkiller替他找到了问题。 经验条又跳了一下。 打开苏念念刚更新的飞书文档,《bugkiller公测首日復盘》,七页,拉到最后一行,標红加粗。 “建议儘快公开创始人身份,將nullpointer的社区信任转化为品牌资產。” “已经在安排了。” 第二十六章 裁到大动脉 五月七號。上午。 博客写好了。一千五百字,改了三遍。 標题:《一个失业的程式设计师,和他的bugkiller》 顾司玥审稿用了十一分钟。回了三条消息。 第一条:“可以。” 第二条:“四个不,不提鼎盛,用“前东家”。不提任何人名。不主动攻击。你讲你的故事,別给对方递把柄。” 第三条:“发之前让我看终版。” 苏念念看完改了一处。把“失业”改成“被优化”。 “好听点。而且带梗,打工人都懂。” “被优化这三个字有什么好听的。” “你信不信標题发出去,评论区第一条就是“优化他的人现在在想什么”。” 全文没提鼎盛。没提任何人名。通篇只讲四件事:被裁、接单、认清bug模式、做了bugkiller。 “今年二月,我被前东家优化了。工作五年,p7,年终b+。裁员通知来的那天我签了字,走出了大楼。 “接下来两个月,我每天做三件事。接自由开发的单子赚房租,写各种不同项目的代码,盯著bug发呆。 “所有bug都长得不一样,但犯错的方式就那么几种。同样的逻辑陷阱在不同项目里反覆出现,只是穿著不同的衣服。我把这些模式记下来,餵给了模型。 “这就是bugkiller。一个被优化的程式设计师做的bug检测工具。” 最后一段—— “我不是为了证明什么。但既然在这个行业这么多年,总得留下点什么有用的东西。” 顾司玥的反馈简短:“措辞没问题,没有攻击性敘事。“被优化”改得好,谁的主意?” “一个朋友。” 停了两秒。“脑子不错。” 发了。 然后炸了。 一小时。回復破五百。 两小时。赞数破三千。帖子从科技板块顶上了论坛首页。 “nullpointer居然是被裁的???” “等一下……他一个人做了bugkiller?一个人?没有团队?” 本书首发 101 看书网伴你閒,101??????.?????超贴心 ,提供给你无错章节,无乱序章节的阅读体验 “p7被裁做出这个水平的產品,他前东家什么眼光?” ““总得留下点什么有用的东西。”看完这句话,我坐在工位上沉默了五分钟。” “我被裁之后在家躺了三个月。人家被裁之后做了个碾压斯坦福博士团队的產品。做人的差距。” “年度最佳离职故事。没有之一。” 苏念念说对了。评论区確实有个高赞评论—— “优化他的人现在在想什么???” 四千多赞。 点讚第一的评论—— “这不叫优化。这是裁员裁到大动脉了。” 八千多赞。底下跟了一整排“大动脉”的接力。有人生成了一张图,一把手术刀切在动脉上,旁边標註“某大厂hr部门”。博客里没提公司名,评论区也默契得很,“某不愿意透露姓名的大厂”“某鼎某盛”刷了满屏。 下午五点。马小飞到了502。 两个灯架,一台索尼a7m4,一个无线领夹麦。三分钟在韩路一书桌前搭好简易拍摄区,手法比写代码还熟练。 “坐那。自然点。” “怎么才叫自然?” “你写代码的时候什么样,现在就什么样。別看镜头,看我。” 韩路一坐下来。身后是显示器,旁边贴著朵朵画的瓢虫。马小飞看了一眼那张画,调了下机位,把瓢虫框进了画面右下角。 “这什么?” “邻居小孩画的。” 马小飞打开平板上的採访提纲,前两版被韩路一以“太煽情”为由否掉后重写的第三版。 “行。先走一遍,不好再来。” 录製键按下去的前三分钟,韩路一像在做技术分享会。他讲bugkiller的架构,讲模式匹配的原理,讲误报率从8%压到3.8%的过程。马小飞听了一会儿,把手伸到镜头前挡了一下。 “停。” “怎么了?” “你在讲代码。观眾不在乎bugkiller怎么跑的,在乎你为什么做。” 韩路一想了一下。“因为bug有模式。” “不是。再上一层。” “因为被裁了。” “再上。” “因为写了几年的东西,被人改了几行就废了。” 马小飞竖起大拇指,重新按下录製。 这一遍顺了。韩路一说话越来越自然,到后面已经不看马小飞了,盯著自己的显示器在讲,像在跟另一个自己復盘。 他讲到被裁那天多拿了五万块的时候,马小飞忍不住说了一声“臥槽”。讲到“所有bug都长一个样”的时候,马小飞停下来认真听了十几秒。 拍了四十分钟。马小飞收镜头的时候顺手拉了个韩路一侧脸的特写,显示器上是bugkiller后台的数据面板,旁边贴著瓢虫画,窗外是老小区的天际线。 “这个镜头我封面用。” “隨便。” “不隨便。这个镜头值十万播放。” 收灯架的时候马小飞问了一句:“標题我想好了。《大厂裁了一个年薪百万的程式设计师,三个月后他做了一个產品把老东家按在地上摩擦》。” 韩路一:“不行。” “……哪不好了?” “按在地上摩擦。” 马小飞:“又不是我说的,是弹幕说的。我只是……提前预判了弹幕。” 韩路一:“你预判个头。改。” 標题最终妥协成《大厂裁了一个年薪百万的程式设计师,他一个人做了个轰动全网的產品》。马小飞坚持保留了封面上的两个大字,“打脸”。 五月八號。早上八点。视频上线。 马小飞剪到凌晨四点。成品快二十分钟,节奏是他的老风格。开头三十秒是博客金句,配打字机音效一个字一个字蹦出来。核心画面是bugkiller和codesafe以及其他几家老牌工具的对比数据,穿插马小飞本人的使用体验和韩路一的採访片段。 “我不做评价。数据都在屏幕上,各位自己看。但我说一句,我做了六年科技自媒体,第一次见到这么离谱的故事。一个人。被裁的。三个月。做了一个產品,公测首日碾压所有竞品。” “你跟我说这是网文我都嫌扯。” “但它是真的。” 十二小时。三十二万播放。 二十四小时。八十七万。 马小飞在404群里发截图。 “十万了!!!粉丝破十万了!!!!科技区一哥谁不服!!!” 张浩然:“冷静。你的涨粉是蹭韩路一热度蹭的。” 马小飞:“……闭嘴。” bugkiller后台的数字跟著视频一起起飞。註册用户从公测首日的六百一十二,涨到了一千四。亮牌两天,翻了一倍多。 苏念念发来消息:“你知道吗,现在论坛上討论最多的不是bugkiller好不好用,是你这个人。用户记住故事比记住功能快十倍。” 韩路一回了一个“嗯”。 关掉手机,继续写v1.1的热补丁。 同一天。晚上九点。 浦东,一家私人会所的包间。 赵文渊坐在靠窗的位子上,面前的普洱碰都没碰。 他今天刷了一整天“裁员裁到大动脉”。nullpointer的博客他逐字看了两遍,马小飞的视频他看了完整版。评论区有一条三千多赞的热评,“赵博士三千字定规矩,nullpointer直接甩数据。两周过去了,你们觉得谁贏了?” 他关掉了手机。 对面坐著一个人。五十出头,灰色西装,铂金袖扣。坐姿很板正,坐在那像在开会。 “赵博士。”对面的人先开口,声音很稳。“你天使轮的领投方,背后的lp结构了解吗?” 赵文渊看向他。“鼎盛有交叉持股。这不是秘密。” “交叉持股是明面上的。”王志远语气没变。“这里面有我个人的钱。” 赵文渊没有表情。天使轮拿钱时他只跟基金的gp见过面,对方说有產业资本背书,没提具体是谁。 他口袋里的第一笔钱,是眼前这个人放进来的。 “王总今天约我,不只是认亲吧。” 王志远嘴角动了动。不算真笑。 “nullpointer的真名叫韩路一。我手底下优化掉的。p7。去年在鼎盛做推荐算法,转化率提升37%。代码有九成是他一个人写的。” 赵文渊手指在杯沿停了一下。 “你觉得他一个p7,凭什么三个月做出这种东西?” 赵文渊没接话。这个问题他问过自己很多遍。 “我也想不通。但想不想得通不重要。重要的是,你打不打得过他。” 王志远端起茶杯喝了一口。 “一个人做產品是有天花板的。他现在是故事,不是公司。故事的热度会过去。” 赵文渊盯著他。“王总想说什么。” “鼎盛准备在代码审查方向布局。我会推动集团出资源。”王志远放下杯子。“但我不想从零起步。” 赵文渊听明白了。 天使轮是王志远个人的钱。鼎盛云是集团的资源。他要做的事情很简单,拿公司的渠道,餵大自己投的项目。韩路一是不是真的有威胁不重要,重要的是“bugkiller威胁论”能帮他在集团內部拿到审批。 “具体怎么合作?” “codesafe接入鼎盛云的开发者工具链。十五万家企业客户,代码一推上去就过你的审查引擎。” 听起来像天上掉馅饼。 但赵文渊是拿过风投的人,不是学生了。十五万家客户的渠道一旦接进来,codesafe的增长就绑死在鼎盛云上。今天叫合作,明天叫依赖,后天叫收购。他见过太多初创公司死在这条路上,被大厂的资源餵大,再被大厂的资源吞掉。 他看著王志远。这个人投了他的天使轮,现在又要把鼎盛的资源塞进来。进来的不是钱,是绳子。 但他也算了另一笔帐。靠自己的十五个人打贏韩路一,要烧多少钱,打多久? 窗外浦东的夜景很亮。 “让我想想。” 王志远站起来,整了整袖扣。 “不著急。但你要记得,机不可失啊。” 第二十七章 孤注一掷 赵文渊坐在井安区的办公室里,面前有两块屏幕。左边是codesafe后台,右边是论坛,中间放了一杯凉透了的美式。 自从“被优化程式设计师”的博客和视频爆火以后,codesafe日新增註册从均值一百五,掉到了九十出头,趋势很难看。 社区討论的风向也变了。两周前还是“codesafe vs bugkiller谁更好”,现在首页热帖標题是“被裁员工做的產品碾压斯坦福博士”。 技术比较变成了故事比较。 在故事这条赛道上,赵文渊没有贏面。 他回想起王志远的话,“不著急。但你要记得,机不可失啊。” 三天了,他还没回復。 十五万家企业客户的渠道,鼎盛云的品牌背书,听起来像条通天大路。 但赵文渊在硅谷见过太多这种剧本的结局,小公司接了大厂的渠道,第一年是合作伙伴,第二年是核心供应商,第三年创始人的名字从官网上消失了。 他从谷歌辞职回国创业,不是为了给又一个大厂打工的。 赵文渊切到codesafe公测数据面板。 公测两周,用户好评率82%。项目检测准確率领先行业基准,有三家中型公司在聊採购。 数据不差,差的是敘事。 他点开公测反馈的收藏夹,翻了五分钟。一个前端团队说“codesafe帮我们上线前拦了两个p0”。一个独立开发者说“第一次觉得代码审查不是走形式”。 產品是好產品。 赵文渊关掉聊天记录,打开社交媒体的编辑框。 打字。 刪掉。 又打字。 又刪掉。 …… 五月十一號,下午两点。 赵文渊的帖子出现在技术论坛、推特和微博,同一段话,一字不改。 “nullpointer在《检测率就是一切》里说过一句话,“工具好不好,跑一遍就知道。” 我同意。 所以我提议:公开、透明、社区监督的横向评测,codesafe vs bugkiller,同样的代码库,同样的评判標准,全程直播,数据公开。 让產品说话!” 技术圈立马就炸了。 “臥槽赵博士要单挑nullpointer” “今年科技圈最好看的对决。没有之一” “独立开发者 vs融资团队,被裁p7 vs斯坦福博士” “来了来了,这才是正经比武” “骄傲不允许他认输,respect” 帖子二十分钟衝上热度第一。 苏念念截图发过来的时候,韩路一正在bug café吃老周新出的鸡排饭,他放下筷子,点开截图。 “看到了吗看到了吗看到了吗” “他用你的原话发的挑战” “他自己送上门了” 韩路一把筷子捡回来,夹了块鸡排,腾出左手打字。 “接。” “就一个字?” “他想比,就比。” 三十六度科技的的编辑联繫上了韩路一,请缨主持直播横评。 韩路一同意,赵文渊那边也同意了。 评论区有人刷:“36度这波主持,流量赚翻了。” 五月十二號。社区投票选择测试项目。 韩路一以nullpointer帐號发了一条建议: “公平起见,测试方案应覆盖不同规模的代码库,毕竟用户的项目什么体量都有。建议分三轮:小型项目(3万行左右)、中型项目(10-20万行)、企业级大型项目(30万行以上)。同一批代码库,同样的评判维度。” 帖子底下清一色叫好。 “支持分梯度测试,这才是科学方法论” “nullpointer格局打开了” “这个提案本身就已经贏了一手,你提出公平方案,对方只能同意” 赵文渊回覆:“完全同意,覆盖不同规模才有说服力。” 有人在帖子底下提了个关键问题:“公开项目两家都可能预训练过,测出来算什么?得用没见过的代码才公平。” 三十六度科技的老赵出面协调,三家企业赞助商各捐了一个即將开源的私有项目,双方此前都不可能接触过。代码在直播前由第三方公证封存,直播时才解封接入。 最终方案確定—— round 1:某初创公司go微服务框架,约3万行。 round 2:某中型saas公司python数据处理平台,约12万行。 round 3:某上市公司java企业级核心系统,约35万行。 三十六度科技当晚发公告。 “ai代码审查工具公开横评直播,5月14日晚7点。三轮测试代码库由企业赞助方捐赠,双方此前均未接触。第三方公证封存,直播时解封。实时数据公开,社区全程监督。” 五月十三號,预约人数破三万。 技术论坛开了专帖:“codesafe vs bugkiller,你押谁贏?” 投票结果很微妙:55%押bugkiller,45%押codesafe,差距没拉开。 “bugkiller社区口碑更好,但codesafe有完整团队+企业方案+博士背书” “nullpointer一个人打十五人?你认真的?” “別看人少,上次那个用户说codesafe漏报了三个bug。” “个例” “你去看评论区,不止他一个人” 十几家科技自媒体出了分析文章,从各种角度预测结果。马小飞也想做预测视频,被韩路一一条消息摁住了。 “赛前別发。我刚提了公平测试方案,你这边立刻出预测视频,评论区第一条就是“nullpointer团队赛前搞舆论”。” 马小飞:“那我憋著?” 韩路一:“憋著,结果出来之后你剪精华,那个流量是预测视频的十倍。” 马小飞点了点头。 “有道理,那我先把脚本准备好。” 五月十四號。 苏念念坐在海狸科技的工位上,面前开著一个空白的运营周报模板。她已经盯著它二十分钟了。 年假回来第一天,空降总监把她调到了运营支持岗。產品文档权限关了,数据看板进不去了,技术评审不叫她了。美其名“你先在运营这边过渡一下。” 下午两点的时候,產品群里弹了一条消息,她之前带的那个ai代码审查项目,这周要做用户访谈方案。新接手的人@了全组问谁有用户联繫人表格。 苏念念的电脑里就有,她做了三个月的用户调研,每个联繫人都是自己一个个加的。 她打了一行字,又刪掉了。 没人@她。 她缩小周报窗口,打开bugkiller的系统监控页面。比赛代码库封著拿不到,但bugkiller自己的状態得確保万无一失。她远程跑了一遍內部基准测试,检测引擎响应、並发处理、各语言解析器稳定性,全部绿灯。 给韩路一发了条消息:“系统没问题,就是不知道封的那三个项目什么情况,盲盒。” 韩路一回得很快:“能控制的都控制了,剩下的交给產品。” 苏念念看著这条消息,又看了一眼运营周报的空白模板。 五点半她准时下班。背包里装著笔记本电脑。 五月十四號,晚上六点五十五分。 三十六度科技直播间开了。 画面正中分屏,左边codesafe的logo,蓝底白字;右边bugkiller的logo,黑底红字。 在线人数从八千跳到一万二,从一万二跳到一万八。还在涨。 弹幕已经刷起来了。 “来了来了” “博士別怂” “nullpointer加油” “我从下午三点等到现在” “谁也別说话等结果” 三十六度科技的演播厅不大,两排座位面对面摆著,中间隔了三米。左边codesafe,右边bugkiller。头顶有四台摄像机,正前方一块大屏实时投数据。 赵文渊坐在左边的座位上,穿著熨的没有褶皱的白衬衫,领口的扣子只鬆开最上面一颗,他朝镜头点了点头。 五米外,韩路一在右边座位坐下来,他穿一件白色卫衣,胸口写著“debug the world”。他关掉了所有多余的窗口,屏幕上只留一个终端和bugkiller的管理后台。 打开视界。 赵文渊头顶浮出一行淡蓝色的字。 【赵文渊|31岁|codesafe创始人/ceo】 韩路一多看了一眼,信息展开—— 【情绪:平静(隱藏:高度紧张)|核心诉求:证明技术价值|行为模式:背水一战型决策者】 平静是真的,紧张也是真的,这人是抱著孤注一掷的心態来的。 韩路一收回视线。 开场前五分钟,赵文渊站起来走过去,伸出手。 “nullpointer,久仰。” 韩路一站起来握了一下:“赵博士,產品做得不错。” 韩路一没在客套,赵文渊的方向没错,只是在错误的时间打了一场不该打的仗。 赵文渊笑了笑:“彼此。” 握完手各自回到座位,摄像机拍到了这一幕,弹幕瞬间炸了一波。 在线人数破两万。 主持人站到大屏幕前。 “各位观眾晚上好,欢迎来到三十六度科技“ai代码审查工具公开横评”直播间。” “规则此前已经公布,今晚,codesafe和bugkiller將在相同代码库、相同条件下进行三轮测试,所有数据实时呈现,社区全程监督。” “第一轮测试项目,go微服务框架,代码量约三万行。” “现在——” “开始!” 第二十八章 让產品说话 第一轮。go微服务框架。三万两千行。 大屏幕上两个进度条同时跑起来。左边蓝色codesafe,右边绿色bugkiller。在线观眾四万一千,还在涨。 codesafe的扫描速度稍快,进度条先到100%。 弹幕立刻刷起来。 “codesafe速度好快” “等等bugkiller还没跑完?” bugkiller的进度条慢了大概七秒,跟著到顶。 扫描结果不直接上屏。按赛制,每轮由五人技术专家组现场核验,三家公司技术负责人加两位开源社区资深贡献者,逐条確认真bug还是误报,再把核验数据投上去。 专家组围著显示器开始过结果。弹幕等得有点急,“快快快”“急什么人家要逐条看代码”。 六分钟后,核验结果上屏。 codesafe:標记总数24个,確认bug 24个,误报0个。误报率0%。 bugkiller:標记总数23个,確认bug 22个,误报1个。误报率4.5%。每条附影响评估和修復路径。 专家组组长拿话筒:“三万行级別两款工具都表现不错。codesafe多检出两个,零误报,乾净利落。bugkiller有一个误报,少检出两个,但每条结果附带的影响评估和修復路径是codesafe没有的功能。综合来看,第一轮codesafe略占优。” 赵文渊靠在椅背上,对著镜头点了点头。“两家產品各有所长。不过在標准化的代码审查场景下,检出率和精確率还是硬指標。” 弹幕滚得很快。 “codesafe第一轮贏了?” “零误报確实漂亮” “bugkiller那个影响评估挺有意思的,但检出少了两个” “完了nullpointer要输?” “才第一轮別急” 韩路一全程没什么反应。他看了一眼大屏上的数据,点了点头,然后低头喝了口水。 弹幕有人注意到了:“nullpointer这心態也太稳了”“输了一轮跟没事人一样”“是稳还是装的?” 苏念念窝在出租屋的床上看直播,被子裹到胸口,笔记本电脑架在膝盖上,屏幕左半边直播间右半边bugkiller后台。手机扔在枕头边充著电,旁边散著一小堆橘子皮。 第一轮结果出来的时候她盯著屏幕愣了两秒。codesafe贏了? 她打开微信给韩路一发了一条:“啊啊啊第一轮输了” 没回。她想了想,也对,他在直播,不可能看手机。 她放下手机,开始剥第四颗橘子。心里默算:第一轮三万行,codesafe贏。第二轮十二万行。第三轮三十五万行。 上次八万行的对比测试,bugkiller就已经拉开差距了。十二万行只会更大。 “第一轮本来就不是我们的主场。”她对著屏幕说了一句。没人听。 主持人:“感谢双方。第一轮结果已在屏幕上呈现。现在进入第二轮,python数据处理平台,代码量约十二万行。” “开始。” 进度条再次跑起来。 这一次,速度差异从第一秒就开始了。 bugkiller的绿色进度条匀速推进,跟第一轮节奏差不多。 codesafe的蓝色进度条明显慢了。10%正常,20%开始拖,到30%的时候像遇到了什么东西,顿了两秒才跳到31%。 弹幕比专家敏感。 “codesafe卡了?” “正常正常,12万行確实需要时间” “bugkiller没卡啊,你看那个绿条” “速度差距出来了” bugkiller先跑完。韩路一靠在椅背上,双手交叉放在脑后,等著。屏幕上bugkiller的结果已经静静地排好了,五十八条检出整整齐齐。 codesafe的蓝色进度条还在78%。 弹幕开始倒计时。“80了80了”“快了快了”“这个速度差……” 等了將近两分钟,codesafe才到100%。 弹幕:“第一轮只差七秒,第二轮差了两分钟”“十二万行拉开这么多?”“代码量翻四倍,差距翻十几倍” 专家组核验。这次比第一轮久。弹幕能看到专家们反覆对照代码,有人皱眉翻回去重看。 十一分钟后,核验结果上屏。 bugkiller:標记总数60个,確认bug 58个,误报2个。误报率3.4%。 codesafe:標记总数48个,確认bug 41个,误报7个。误报率17.1%。 专家组组长这次没笑。“codesafe有7个误报,其中4个是把正常的异常处理逻辑標成bug,这说明代码规模增大后,检测引擎的上下文理解在下降。bugkiller多检出的17个里,確认15个为真实bug。” 在线人数四万六千。弹幕越来越密了。 “17%???” “专家说了,规模一大就不行” “17%的误报率在生產环境里根本不能用” “bugkiller稳如老狗,3.4%” 赵文渊盯著屏幕上的数字。直播里不能暂停,不能查日誌。所有人都在看著他。 “十二万行项目確实对检测引擎有更高要求。我们现在正在进行下个版本的叠代和优化。” 韩路一的声音从右边传过来。不大,但收音很清楚。 “赵博士,开始第三轮吧。” 弹幕:“不给他解释的时间”“尊重对手的方式,快点结束” 主持人看了一眼两边。 “第三轮,java企业级核心系统,代码量约三十五万行。” 在线人数破五万。弹幕停了一瞬间,五万人同时屏住了呼吸。 第二十九章 道高一丈 “开始!” bugkiller的绿色进度条匀速推进,跟前两轮没有区別,10%、20%、30%,速度几乎一样。 codesafe的蓝色进度条从一开始就不对。 10%的时候还正常,20%的时候明显变慢,30%的时候几乎是在一格一格地挪,右侧实时面板上標记的问题数在跳—— 標记数:14...21...35... 弹幕先注意到的不是数字,是速度。 “codesafe卡住了?” “没卡,在跑,就是巨慢” “bugkiller三十五万行跟前两轮一个速度,codesafe这是怎么了” 40%,標记数跳到58。 弹幕开始算帐了。 “bugkiller扫同样的项目根本不卡,codesafe40%就跑了快三分钟?” “第二轮12万行慢两分钟,这次35万行怕不是要慢十分钟” “这不是线性增长,这是指数级的吧……” 50%,標记数79,进度条挪一格要七八秒。 “我现在的心情就像看著温度计往上走” “赵博士脸色不好看了” 韩路一坐在五米外,屏幕上bugkiller的扫描早就跑完了。他没说话。 codesafe的进度条还在爬,60%,70%,標记数过了一百。 弹幕已经从討论变成了围观。 “这已经不是竞爭了” 80%。 全场等著。 100%。標记总数:123个。 专家组核验了將近四十分钟。 等待期间,主持人拿著话筒走到两人中间:“核验还需要一些时间,我们先跟两位聊聊。赵博士,第三轮的感受?” 赵文渊坐在座位上没动:“等结果吧。” 就四个字,主持人愣了半秒,转向韩路一。 “nullpointer这边呢?三轮下来什么感受?” 韩路一靠在椅背上,挺鬆弛的:“感受谈不上,说说bugkiller的影响评估吧,刚才专家组提过,我们每条检出结果会附带一个修復成本估算。这个功能底层逻辑是把bug跟业务场景做关联,不只告诉你哪里有问题,还告诉你这个问题上线之后会亏多少钱。” 弹幕:“nullpointer开始卖產品了”“这人心態是真好”“赵博士那边气氛不太对啊” 主持人追问:“这个功能是怎么想到的?” “接自由单的时候。甲方不关心你修了什么bug,关心的是修完之后他少亏多少。看多了就知道,bug本身不值钱,bug造成的损失才值钱。” 弹幕刷了一波:“这个insight值一个亿”“產品经理看了沉默” 主持人又转向赵文渊:“赵博士对影响评估这个方向怎么看?” 赵文渊看了一眼还在核验的专家组:“是个好方向。” 没了,弹幕开始刷省略號。 核验区那边,一位专家摘了眼镜揉眼睛,看了两遍同一段代码才落笔。 核验结果上屏。 codesafe:標记总数123个,確认bug 76个,误报47个。误报率38.2%。 bugkiller:標记总数132个,確认bug 127个,误报5个。误报率3.8%。 专家组组长拿起话筒停了一下。 “codesafe在三十五万行级別,误报率38%。误报集中在深层调用链和跨模块依赖,检测引擎处理大规模代码时出现了系统性偏差。不是个別误判。” 停顿。“bugkiller误报率3.8%,跟前两轮持平。一百二十七个检出里有几个修復成本估算精確到人天级別,这个能力我们在同类工具上从没见过。” 在线五万三千人。 弹幕彻底失控。 “38%????” “系统性偏差,专家原话” “这不是代码审查,这是占卜” “博士三千字白写了” “让產品说话,產品说了,我是假的” 最后这条弹幕一秒之內被复製了几十遍。满屏都是“让產品说话,產品说了,我是假的”。 赵文渊从第三轮开始就没说过一句话。 他面前的屏幕亮著。89个检出,34个误报。他比任何观眾都清楚这些数字意味著什么。三万行的时候没问题,十二万行开始暴露,三十五万行全面崩溃。这不是参数调不调得好的问题,是检测引擎的核心架构在大代码库上扛不住。 他在公测阶段从来没跑过三十五万行的项目。 主持人等了三秒。 “赵博士,最后总结一下?” 赵文渊抬头看了一眼镜头。 “感谢社区的监督。我们会认真復盘。” 然后他站起来,摘下领夹麦放在桌上,走了。 摄像机跟了他两秒。直播间在线人数在他推门的瞬间又涨了三千。 弹幕最后一波高潮—— “完了。彻底完了” “赵博士確实体面。但体面有什么用,38%就是38%” “让產品说话。產品说:我死啦。” 苏念念在床上看到第三轮结果的时候一脚把被子蹬开了,差点把电脑踹下床。 她把三轮数据录进表格,截了六张弹幕精华图。bugkiller后台,直播还没结束的时候註册就开始涨了。 当天新增註册突破两千。 两天后,直播录像播放量破百万,“38%误报率”成了技术圈的梗。 马小飞的精华剪辑视频標题,《codesafe创始人说“让產品说话”,產品说了,“我是假的”》。三十万播放。 bugkiller註册用户一周之內从三千多飆到八千多。 赵文渊三天没发任何社交媒体动態。 codesafe內部发了一封全员邮件:暂停所有市场推广,全力修覆核心引擎。 韩路一在bug café靠窗的位子上喝咖啡。苏念念坐在对面,笔记本电脑开著,她的手指没停过——她在整理直播后的用户数据和註册趋势。 整理到一半,她头也没抬说了一句。 “他不该来的。” 韩路一端著杯子没接话。 “他的產品在小项目上是真的好,如果没有这场直播,他至少还有时间慢慢修,现在全世界都知道了。” 韩路一喝了口咖啡。 “他不会放弃的。” 苏念念抬头看了他一眼。 “这话什么意思?” 韩路一没解释。 五月十七號,直播三天后。 赵文渊坐在井安区的办公室里,两块屏幕都亮著,但他只盯著左边那块。 codesafe数据面板,新增註册连续三天为负,卸载的比註册的多。 投资人的微信消息他没回,第一条还客气,第二条直接了:“下周董事会我需要一个说法。”第三条他没看。 媒体的採访请求也没回。 他打开了一个从来没仔细看过的页面,大型项目测试日誌。 公测以来跑的都是五万行以下的项目,没人往大代码库测过。 现在他看了,全量遍歷在二十万行以上指数级增长,上下文窗口溢出,模型幻觉——架构选型的根本错误。 他知道怎么修,要花六到十二个月,但帐上的钱撑不了那么久。 社区已经给codesafe判了死刑,“38%”三个字比任何分析文章都有杀伤力。 赵文渊靠在椅子上,闭了一会儿眼。 然后拿起手机。 通讯录翻到底部,这么多天一直没播的那个號码——王志远。 他按下了拨號键。 响了两声。 “王总,鼎盛云的事……直播的结果您应该看到了。我想问一下,您这边的意向还在吗?” 电话那头沉默了一秒,然后王志远笑了。 “赵博士,你觉得我为什么找你?” 赵文渊没说话。 “你的產品好不好,跟我有什么关係?”王志远的语气轻鬆得像在聊天气,“鼎盛云採购代码审查工具,走的是集团信息化预算。预算批了,钱就得花掉,花在谁身上,那是我说了算的事。” 顿了一下。 “你需要一张大单活下去,我需要一个合作愉快的供应商,这事从头到尾就这么简单。” 赵文渊握著手机,后背贴在椅子上。 “……明白了。” “明天下午,我让人把合作方案发你,细节咱们见面聊。” 赵文渊掛了电话。 手机放在桌上,屏幕灭了,映出他自己的脸。 他闭上眼,王志远说得很清楚了,產品好不好无所谓,38%还是3%无所谓。钱是预算里的钱,花不花、花给谁,是另一套逻辑。 上一次他还可以谈条件,现在他只能接条件。 筹码变了。 韩路一不知道这通电话,他在502写v1.2的新功能。 窗外老小区的灯一盏盏亮起来。 第三十章 两千九百九十九 苏念念做了一周竞品调研。 国內saas代码审查工具,她把市面上十一款產品的功能、定价、付费模式全拆了一遍。整了一张飞书表格,四个tab,十七列,三十二行。 发给韩路一的时候附了一句:“你先看,不急。” 韩路一晚上十一点回覆:“看了。” “pro版收个999吧,加几个功能就行了,便宜点跑量。” 苏念念盯著屏幕。 十七列。三十二行。 做產品经理这么多年,她学到的第一件事,开发者永远不知道自己的东西值多少钱。第二件事,开发者总觉得便宜点跑量就是定价策略。 她回了一条:“明天见面说。带上你的笔记本。” 第二天。bug café靠窗的位子。 苏念念打开表格第三个tab。竞品功能对比。 “先说清楚一件事。免费版和付费版的区別不是功能多一点少一点。它们面向的用户完全不同。” 韩路一端著美式等她说。 “免费版给个人开发者。扫bug,出报告,够了。一个人写代码一个人修,不需要別的。这一层不赚钱,让他用上癮就行。” “付费版给团队。团队需要什么?三样东西。” 她竖了三根手指。 “第一,影响评估。”她指了一下表格里那一列,整张表只有bugkiller有数据,其他十款全是空的。“个人开发者看到bug就修了,不需要知道这个bug值多少钱。但团队不一样。团队里做决定的人不是写代码的人,是批预算的人。你告诉cto“有个bug”,他说排进下个sprint。你告诉他“这个bug每个月亏六十万”,他今天就批加班费让人修。” 她看著韩路一。 “影响评估不是给程式设计师看的,是给他老板看的。免费版不开这个功能。想看bug值多少钱,升pro。” “第二,ci的api接口。” “这个已经有人在问了。”韩路一说。 “內测群里四个cto在问。因为个人开发者手动跑一遍扫描就完了,但团队要的是每次代码提交自动触发检测,pr不过bugkiller就不让合。这是工作流级別的集成。” 她看了韩路一一眼。“你知道接进ci以后意味著什么吧?” “迁移成本。” “对。换工具等於重配整条部署链。能嵌进基础设施的东西,不是999能定价的。” “第三,团队看板。bug趋势图、修復率、各模块健康度,每周自动生成报告。技术上不复杂,但对续费率影响最大,因为它让老板每周都能看到bugkiller在帮他省钱。他看到的不是工具,是roi。” 韩路一靠在椅背上。 苏念念接著说:“所以价格。个人免费,不动。团队pro,2999。” “怎么定的?” “大部分公司三千以下的saas订阅,技术负责人自己能批。过了三千要走採购流程找vp签字。2999是team leader能拍板的最高价。” 韩路一看了她三秒。“行。” 苏念念合上笔记本。她想说“十七列三十二行没白做”,但忍住了。 “pro版2999,下周上线付费模块。” …… 苏念念坐在海狸科技的工位上。面前两个窗口。左边是空白的运营周报模板。右边是bugkiller后台。 一条支付回调通知弹出来。 bugkiller pro·月度订阅·¥2,999.00·支付状態:成功·用户:鹏城跨境达科技有限公司 她的手停在键盘上。 在海狸的三年。前两年是好的。第一年跟著老產品总监做智能客服系统,从需求调研到灰度上线,完整走了一遍。第二年自己带了数据看板项目,七个人的小组,三个月上线,dau做到一万二。怎么跟开发吵架,怎么在评审会上用数据堵嘴,怎么把一个想法从零变成產品,都是那两年学的。晋升答辩那天,老总监给她写的评语是“团队里成长最快的pm”。 然后老总监离职了。新来的產品总监叫方旭,从某二线大厂跳过来的,简歷好看但產品圈没人认识。他到岗第一周开產品方向討论会,ppt標题写著“海狸ai產品矩阵3.0”。苏念念坐在第二排,发现第七页的dau趋势图纵轴起始值不是零,视觉上斜率被拉高了三倍。她举手说了。方旭笑著点头:“好的,感谢,会后我们对齐一下。” 再也没有对齐过。 第三年。她的q1季度匯报做了四十页ppt。数据、反馈、规划,每一页都是她写的。匯报那天方旭说“我来讲,你在台下配合回答问题就行”。四十页讲完,vp说不错。全程没人提她名字。上个月海狸內部创新奖公布,她刷朋友圈看到同事转发,她带的那个数据看板拿了银奖。获奖人写的是方旭。她翻了三遍公告。没有“苏念念”三个字。 她对著屏幕上的2999看了很久。 刚才给韩路一讲的那张表,十七列,三十二行,十一款竞品全拆,不是天上掉下来的。是在海狸做了三年產品才练出来的手艺。但海狸已经不需要她了。 她拿起手机打给韩路一。 “你看到了吗?!” “看到了。” “第一笔!第一笔钱!!” 她听到自己的声音在抖。丟人。管不了了。 “2999块你哭什么?” “这是第一笔!第一笔!你懂不懂!”她吸了一下鼻子,“我在海狸三年,到最后连自己做的东西名字都留不下。你一个人写的產品,有人愿意掏钱了。两千九百九十九块。” “嗯。” 安静了两秒。她以为他要掛了。 “2999。” “……什么?” “第一笔收入,2999。这是你定的价,不是我说的999。” 苏念念张了张嘴,又合上了。 “我继续盯后台了。”她说。 周围海狸的同事看过来一眼。她把手机扣在桌上,对著屏幕上的支付通知发了很久的呆。 接下来一周。 第三天,14个。第五天,31个。第七天,47个。 苏念念在飞书上建了一个文档,《bugkiller付费数据周报#1》。第一行: 截至5月26日,付费用户47,月收入¥140953。用户留存率82.4%。 她在82.4%后面打了三个感嘆號,又刪掉了两个。留了一个。 saas赛道正常留存率30%到50%。82%意味著用户用了就不走。这个数字稳住了,bugkiller根本不需要烧钱获客。口碑自己会跑。 她把文档发给韩路一。他回了一个字:“嗯。” 海狸这边。 產品群里有人问“谁有q2用户增长数据的源文件”。苏念念打了一行字,那些表是她做的,q1到q2三十多张,来源、口径、公式全是她设的。打完准备发送的时候,另一个人已经回了:“我问问新来的实习生。” 她刪掉了那行字。 另一次更离谱。飞书公开频道里有人转发了方旭的產品路线图,里面有一张用户旅程地图。她一眼就认出来了,配色方案是她的,节点命名是她的,连第三个触点的备註错別字都没改。底下標註:製作人,方旭。 每天在海狸最开心的时候,是偷偷把瀏览器缩成一条缝看bugkiller后台。刷新一下,付费数字跳了一个。再刷新,又跳了一个。 手机震了一下。內测群里有个cto发消息:“请问有年费方案吗?我们走採购年付更方便。” 心在那边,人在这边,中间隔著的是一纸劳动合同。 她把手机屏幕朝下扣在桌上。面前的运营周报还是空的。 新一季度的okr定好了,上面只有一条:“协助完成运营支持相关工作。” 第三十一章 必输的案子 苏念念拎了一袋橘子敲502的门。 “我想辞职,全职来做bugkiller,產品、运营、市场,我一个人都能干。” 韩路一看著她。 “但你要给我股份。” “多少?” 她没犹豫,bugkiller的数据她比韩路一还清楚,註册过万,付费47,留存82%,月收入14万。定价方案是她做的,竞品分析是她做的,付费模块上线的运营节奏是她定的,这些活她已经免费干了三个月。 “20%。” “行。” 韩路一秒答。 她嘴角动了一下,没笑出来,又绷回去了。 “你连想都不想?” “你已经免费干了三个月,没有你就没有bugkiller,20%不多。” 苏念念没接话,拿了个橘子剥开,一瓣一瓣地吃,吃完了才开口。 “我去递辞呈了!” 第二天她就交了辞职申请。按规定要提前三十天通知,方旭当天就回了邮件:“交接工作不多,不用等一个月了,月中走完流程吧。”快得不正常。正常领导都会安排交接,他连问都没问她手上有什么。 六月十五號,办离职手续。 hr把一摞文件推过来,社保转移、公积金封存、工资结算,一项一项签。签到最后一页的时候,hr翻出一份单独的文件。 “这份需要您確认一下。公司决定对您启动竞业限制,限制范围包括人工智慧、代码审查、软体质量保障及相关领域,期限两年。公司將按协议约定按月支付经济补偿金,第一笔月底前到帐。” 苏念念拿著笔没动。 hr顿了一下,又补了一句:“需要提醒您的是,协议中约定的违约金为年薪的三倍。” 她在离职交接单上签了字,走出海狸科技大楼。六月中的海城闷热,阳光白晃晃的,晒得人发晕。 站在路灯底下,她把刚才的流程又想了一遍。方旭主动免了三十天通知期,连交接都不要,不是痛快,是陷阱。调岗,关权限,不叫她开会,一步一步把她从核心业务上剥下来。等她终於走了,再用竞业协议给她最后一击。 她打车来了韩路一的家,上了楼,敲502的门。 韩路一开门看到她的脸色,让开身。 她坐下来,把那份竞业协议从包里抽出来放在桌上。 “海狸启动竞业了,范围写的是人工智慧、代码审查、软体质量保障,违约金是年薪三倍,一百多万。” 说完了她才发现自己一直在攥包带,鬆开,手心好多汗。 “你认不认识做劳动法的律师?” 韩路一看了她两秒。 “认识一个,博衡律师事务所的,之前合作过,很强。” 他掏出手机发了几条微信。苏念念坐在旁边,看著他打字,不知道该说什么。过了一会儿他抬头:“明天下午两点,我陪你过去。” 回到出租屋,苏念念坐在床上打开手机。 博衡律师事务所官网,合伙人页面,往下翻,顾司玥。 照片是標准商务照,黑色西装,白衬衫,细框眼镜,低马尾。看起来跟她年纪差不多。 往下看。 復旦大学法学院,十六岁自主招生入学,本科gpa全院第一,哈佛法学院llm,全奖,二十一岁回国入职博衡,执业六年,博衡所內最年轻高级合伙人。 苏念念看了两遍。 十六岁上復旦?这履歷也太强了吧! 她又翻了翻公开的案例记录和媒体报导:智慧財產权、网际网路合规、商业诉讼、竞业限制纠纷,评价清一色,“专业”“高效”“逻辑极强”。 韩路一什么时候认识这种人的。 她把手机扣在床上,看著天花板,外面的灯光从窗帘缝里照进来。 第二天下午,博衡律师事务所。 苏念念第一次走进这间办公室。 窗台上一盆绿萝,叶子绿得发亮。 顾司玥从桌后站起来。 本人比照片瘦,气场比照片冷。 她翻苏念念带来的材料,竞业限制协议原件、补偿金髮放通知、离职交接单。她翻得很快,但不跳页,每一页都看完了。 看完之后没马上说话。 她把补偿金髮放通知抽出来,放在桌面最上面。 “苏小姐,先说结论,这个案子不好打。” 顾司玥看著苏念念。 “大部分竞业纠纷,要么公司不付补偿金,要么限制范围写得太宽泛法院不认,程序上有硬伤,解除起来不难。你的不一样,海狸科技每个月按时打钱,限制范围精准卡在你的岗位上,程序上挑不出毛病。” 顾司玥问:“苏小姐,如果你坐在仲裁庭上,对面律师问你,“你在海狸科技负责的產品是什么?”你怎么回答?” “……ai代码审查工具。” “他会接著问:“你现在要加入的公司做的是什么產品?”” 苏念念没说话。 顾司玥把文件夹合上。 “一模一样的赛道,一模一样的產品方向,只看业务重合度的话,这是一个你必输的案子。” 第三十二章 他帮你贏了 苏念念攥紧了椅子扶手。 “那怎么办?等两年?” 顾司玥没有回答。她重新打开文件夹,把苏念念带来的三份材料又翻了一遍。竞业协议原件,补偿金髮放通知,离职交接单。 翻到离职交接单,她停了。 “你交接单上的岗位,写的什么?” 苏念念没明白她为什么问这个。“运营支持专员。” 顾司玥把离职交接单和竞业协议並排放在桌面上。一左一右。左边“岗位”一栏写著运营支持专员,右边限制范围写著人工智慧、代码审查、软体质量保障。 “你原来是產品经理。什么时候变的运营支持?” “年假回来第一天。五月十四號。產品总监方旭通知的,他空降来了半年,之前请年假也是他批的。” “调岗之后,ai代码审查项目的產品文档权限还有吗?” “没了。” “数据看板?” “第二天就关了。” “技术评审会议?” “不叫我了。一次都没有。” “飞书工作群呢?” “產品核心群踢了。只留了一个部门大群,发通知用的。” 顾司玥拿起笔,在便签纸上快速记了几行。权限关闭日期,群移除时间,评审参会记录。 “调岗到你辞职,中间多久?” “三周多。”苏念念想了想,“二十二天。” 顾司玥合上文件夹。 “他帮你贏了。” 苏念念没听懂。“谁?” “方旭。你那个空降总监。” 顾司玥把两份文件並排推到苏念念面前。 “竞业限制的前提是劳动者掌握商业秘密。仲裁庭判断这个前提成不成立,看的不是你曾经接触过什么,是你离职时的实际岗位和信息接触范围。” 她伸手指向离职交接单。 “你离职的时候,岗位是运营支持,文档看不了,看板进不去,评审一次没参加。对吧?” 苏念念点头。 “所以。”顾司玥拿起那份竞业协议,指了一下限制范围那一栏。“海狸自己的系统记录证明,你在离职前二十二天已经不接触ai代码审查业务的任何核心信息。权限是他们关的,群是他们踢的,会是他们不叫你开的。” 她放下协议。 “你不能一边说她不配留在项目上,一边又说她重要到不能去別的公司做同类项目。两个说法只能选一个。” 苏念念的手鬆开了扶手。她在这间办公室坐了半个多小时,后背一直在出汗。 顾司玥接著问。“你辞职前后,海狸还走了別的人吗?” “两个。一个前端,一个测试。同一个部门的。” “收到竞业通知了吗?” 苏念念想了想。“没有。” “同部门、同时期、同样能接触產品信息的人,都没启动竞业。只有你。”顾司玥的手指点了一下桌面。“这不是公司制度,是定向限制。仲裁庭对选择性执行非常敏感。” “所以……能贏?” “我不说能贏。”顾司玥打开电脑,开始敲字。“对方的逻辑链有一个断裂。这个断裂不是你造成的,是他们自己造成的。调岗是他们做的,权限是他们关的,选择性执行是他们选的。我只需要把这三件事摆到仲裁员面前。” 她抬起头。 “申请仲裁。” …… 浦东新区劳动人事爭议仲裁委员会。 走廊很长,日光灯白得刺眼,两边一模一样的门。空气里有股消毒水混著旧文件的味道。 苏念念坐在候审区的塑料椅上。旁边坐著韩路一。 “紧张?” “还好。” 她的脚在地上点了三下。 顾司玥从走廊另一头走过来。黑色西装,低马尾,文件夹夹在腋下。鞋跟敲在地砖上,节奏不快不慢。 “等一下不管对方说什么,你只回答我问你的问题。其他时候不要开口。” 仲裁庭不大。一张长桌,三位仲裁员坐在对面。左边是苏念念和顾司玥,右边是海狸科技的代理律师,戴金丝眼镜,四十来岁,面前一摞文件。韩路一坐在旁听席。 海狸的律师先陈述。 声音不急不缓。苏念念在海狸科技任职期间深度参与ai代码审查核心產品设计,接触用户数据、產品路线图和技术架构文档。竞业限制补偿金按协议约定按月足额发放,程序无瑕疵。bugkiller与海狸在研產品属於直接竞品,业务方向高度重合。 每一条都是真的。她確实做过那些事,接触过那些信息。 对方律师说完,合上文件。 仲裁员翻了一下材料,示意申请人代理人发言。 顾司玥站起来,打开证据目录。 “仲裁员好。关於被申请人主张的竞业限制条款效力,申请人提交两组证据。” 第一组。岗位变更与信息隔离。 离职交接单原件,岗位一栏:运营支持专员,非ai產品部產品经理。申请人向仲裁庭申请调取被申请人it系统记录,被申请人已提供。权限变更精確到分钟,5月14日上午9:47,產品文档库权限关闭。5月14日下午2:12,数据看板访问权限移除。5月15日上午10:03,產品核心飞书群移除。技术评审系统会议记录:5月14日至6月15日,ai代码审查项目召开技术评审七次,苏念念参会次数,零。 “离职交接单由被申请人出具,it记录由被申请人系统生成。申请人在离职前二十二天已不在ai產品部,不再接触代码审查业务的任何核心信息。” 她把列印件递给仲裁员。 第二组。选择性执行。 两份离职证明复印件放上桌。 “申请人同部门、同时期离职的两名同事,一名前端开发,一名测试工程师,均未收到竞业限制通知。竞业限制是公司统一制度,还是针对申请人个人的定向行为?如果是制度,为什么同岗同期离职人员不適用?” 海狸的律师翻了一下材料。没有回应。 顾司玥合上文件夹。没有继续。 仲裁员在看前两组证据。主审仲裁员抬起头,翻了翻手里的权限变更记录,转向海狸的律师。 “被申请人主张苏女士掌握核心商业秘密,但贵公司在她返岗当天就將她调离核心项目並关闭全部系统权限。请问贵公司是否仍然认为苏女士在离职时接触商业秘密?” 海狸的律师停了两秒。 “调岗是公司正常的人事安排,与竞业限制的启动是两个独立事项。” 仲裁员低头记了一笔。 顾司玥开口了。 “如果调岗与竞业无关,那请问被申请人启动竞业的依据是什么?是申请人在运营支持岗接触到的信息,还是她二十二天前在另一个岗位接触到的信息?” 她停了一拍。 “如果是后者,被申请人自己关闭了她的信息接触渠道,切断了她与核心项目的一切联繫,又主张她仍然是需要限制的对象。这个逻辑矛盾不是申请人造成的,是被申请人自己造成的。” 海狸的律师翻开一页文件,看了三秒,合上了。 仲裁庭宣布休庭合议。 苏念念坐在椅子上没动。顾司玥在旁边整理文件,一页一页按顺序放回去。 十四分钟。 仲裁员回来了。 裁决结果:竞业限制条款对苏念念不具有约束力。海狸科技应停止发放竞业限制经济补偿金,並返还已扣款项。 苏念念听到“不具有约束力”六个字的时候,脑子嗡了一下,什么都没想起来。 走出仲裁庭。 走廊还是一样长,日光灯还是一样白。她在走廊椅子上坐下来。腿有点软。 顾司玥站在旁边打电话,已经在聊另一个案子了。语气跟刚才庭上一模一样,没有起伏。 韩路一靠在对面墙上等。 苏念念坐了两分钟。站起来。 “顾律师。” 顾司玥掛了电话看向她。 “你好可怕。” 顾司玥笑了一下。庭上从没见过这个表情。 “但是好可靠。” “律师费帐单之后发你。”语气还是冷的,但她从包里抽了一张纸巾递过来。 苏念念接过来。手心全是汗。 顾司玥点了一下头,转身往电梯方向走了。脚步声渐远,在拐角消失了。 苏念念看著那个背影。刚才在庭上,顾司玥翻证据的速度、提问的节奏、停顿的时机,全都精確到秒。 从头到尾,这个人就没觉得会输。 韩路一走过来。 “走吧。” 两人从仲裁委出来。外面下著小雨。六月底的海城,闷热裹著水汽。 “韩路一。” “嗯。” “我以后全职做bugkiller了。產品、运营、市场,我全包。” “你之前不就在包了吗。” 苏念念愣了一下,然后笑了。 “那不一样。之前是帮忙。” 她在雨里站了两秒,没打伞。 “现在是我的了。” …… 晚上。韩路一给顾司玥发消息。 “顾律师,我们准备註册公司。股东协议、智慧財產权归属这些,需要你帮忙擬。后面常年法律顾问也想找你,有兴趣吗?” 过了半分钟。 “营业范围和股权比例发我,我出一版框架。” 又过了几秒。 “常年顾问不打折。对了,苏小姐的律师费,等公司註册完可以开给公司。你的也是。” 他搁下手机。窗外雨还在下。 手机屏幕亮了一下。苏念念发来一条飞书连结。 《bugkiller全职运营计划v1.0》。三十七页。 文档创建时间:今天下午4:12。 仲裁庭散场是三点半。 第三十三章 瓢虫 七月一號,顾司玥发来三份文件:股东协议、智慧財產权归属协议、公司章程。韩路一68%,苏念念17%,期权池15%。两人分別签完,拍照回传。 三號,海城源码科技有限公司营业执照核准通过,註册资本一百万,认缴,经营范围写了半页纸。 註册地址填的是顾司玥推荐的一个浦东创业孵化器,实际办公地址,bug cafè。 七月的海城,蝉从早叫到晚。 中午的时候,手机亮了一下。 林晚晴的微信:“今晚过来吃饭?” 隔了几秒,又来一条:“不是什么大餐,就是家常便饭。” “好啊,我几点过去?” “五点半来就行。” 五点半,韩路一敲了501的门。林晚晴来开门,穿著一件浅灰色的居家t恤,身后厨房里传来油烟机的声音。 “来啦,快进来。”她侧身让开,“排骨还在燉,你先坐会儿。” 501的门韩路一路过了好几年,第一次从外面走进去。 玄关很窄,一双大人的布鞋和一双小孩的粉色凉鞋並排放著。林晚晴递过来一双一次性拖鞋。客厅不大,跟502一样的户型,但布置的风格完全不同。茶几上铺著一块碎花桌布,角落堆著朵朵的蜡笔和画纸,冰箱门上贴满了手掌大的涂鸦,太阳、花、一只巨大的瓢虫。 墙上掛著四五幅插画,装了简单的白色画框。 一只猫在窗台上晒太阳。雨天的弄堂口,积水映著半盏路灯。一个小女孩在蒲公英田里跑,裙摆被风吹成一个弧。 “路一哥哥!” 朵朵从房间里衝出来,整个人掛到他腿上。五岁的小孩力气不大,但抱得很紧。 “路一哥哥你来我家了!你看你看——” 她举起一张a4纸,上面是一只大象,四条腿粗细不一样,鼻子画成了一条彩虹。 “好看。”韩路一蹲下来。 “它鼻子会变顏色!因为它喷的水是彩虹做的!” “有道理。” “那你给它起个名字。” “彩虹大象。” 朵朵想了一下。 “不好听,叫胖胖。” “行,胖胖。” 林晚晴在厨房喊了一声“朵朵別缠著人家”,但语气没有真的在制止。 朵朵拉著韩路一在客厅转了一圈,她要给他看她所有的画,所有的贴纸,还有她的宝贝,一个塑料的万花筒,幼儿园老师送的。 “你看!转一下就变了!” 韩路一接过来转了一下,花花绿绿的碎片拼成一个图案,再转一下,又变了。 “好不好看?” “好看。” 厨房传来炒锅的声音。 饭桌是摺叠的小方桌,平时靠墙收著,林晚晴搬出来支在客厅中间,刚好够三个人。 四菜一汤。红烧排骨、油爆虾、清炒丝瓜、凉拌黄瓜,一小锅番茄蛋汤。米饭刚才电饭煲里盛出来,还冒著热气。 韩路一夹了一口排骨。 “怎么样?”林晚晴站在旁边没坐下来。 “好吃。” “那就好。” 林晚晴笑了一下,给朵朵碗里夹了一块排骨,筷子把骨头剔了才放进去,朵朵吃得满嘴都是酱。 “路一哥哥,你天天来吃好不好?” “朵朵。”林晚晴拿纸巾擦她嘴角。 “好嘛好嘛——” “人家有自己的事。” “小朵,你妈妈做饭也很辛苦的啊。”韩路一夹了第二块排骨。 吃到一半的时候林晚晴放下筷子,像是找到了一个合適的空隙。 “谢谢你介绍的律师,”声音不大。“沈律师今天打电话告诉我的,保全令通过了。” 韩路一点头。 “她很好。”林晚晴停了一下。“不像我想像的律师那样。她很有耐心。问了很多我以为不重要的事,朵朵幼儿园在哪里、平时谁接送、他上一次来是什么情况。问完了跟我说,“林女士,我们有优势,別怕。”” 朵朵听不懂大人在聊什么,专心对付碗里的排骨。 “对了——” 林晚晴放下筷子,起身去房间拿了一样东西。 是一幅画,巴掌大小,画在一块棉布画框上。 画里是一扇老式木门,暗红色的漆有一点剥落,门把手上停著一只瓢虫。瓢虫画得很细,触角弯弯的,翅膀上五个黑点。门的木纹也细,能看出一圈一圈的年轮。 “朵朵一定要我加上瓢虫,”林晚晴把画递给他。“我就画了一只。” 韩路一接过来,棉布框很轻。 “谢谢你介绍的律师,也谢谢……之前的事。” “不客气。”韩路一说。 朵朵凑过来看。“妈妈画的!我也画了一只!但是我画的瓢虫有十一个点!” “为什么是十一个?” “因为我想让它多几个!” “合理。” …… 林晚晴开始收碗,韩路一站起来要帮忙,她侧身挡了一下:“你坐著。” 语气不重,但没有商量的意思。 朵朵钻到沙发上拽他袖子,翻出自己的画册一页一页给他看。每一页都要解释,这个是幼儿园的小猫、这个是妈妈、这个是冰淇淋怪兽、这个是路一哥哥。 “等等,这个是我?” 纸上画了一个很长的火柴人,戴著巨大的圆眼镜,身边飘著一只跟人一样大的瓢虫。 “对呀!你和你的瓢虫!妈妈说你是捉虫子的人。” “……差不多。” 林晚晴在厨房洗碗,水声哗哗的,偶尔隔著门笑一声。 韩路一抬头扫了一眼501的四周。墙上那几幅插画,色彩是暖的、流动的,像一个沉默的人把所有没说出口的话都画在了纸上。 角落的画架上有一幅画了一半的插画。一只橘猫趴在窗台上,窗外画到一半没画完,铅笔线条还在。旁边的小桌上摊著几张列印的参考图,看著像是接的商单。 “路一哥哥你明天还来吗?”朵朵仰著头。 “看情况。” “什么情况?” “忙不忙的情况。” “不忙就来。”朵朵用一种不容拒绝的语气说。 “朵朵该洗澡了。”林晚晴从厨房出来,手在围裙上擦了一下。 “不要,” “洗完澡可以看一集小猪佩奇。” 朵朵立刻从沙发上跳下来。“路一哥哥拜拜!明天见!” 说完拖著拖鞋跑进卫生间。 韩路一站起来。“我回去了。晚饭很好吃。” 林晚晴把他送到门口。走廊的声控灯亮了,白光把两扇门照得一模一样。 “把画掛起来。”她说。 “我会的。” 502的门关上了。 韩路一把那幅瓢虫画放在显示器旁,就在朵朵之前画的那张大瓢虫蜡笔画边上。一大一小,各有美感。 他拿起手机给顾司玥发了条消息。 “谢了。林晚晴的保全令。” “谢什么。沈予微出的庭,跟我有什么关係。” 过了两秒。 “不过你推荐得不错。她的case不难,予微处理得很好。” 帮朵朵就像在帮小时候的自己,但他不会说出来。 顾司玥也没再说话。 打开电脑,准备继续写代码。 手机亮了。苏念念。是一张截图。 科技媒体首页—— 《重磅:codesafe宣布与鼎盛云达成战略合作,正式接入鼎盛云开发者工具链》 副標题:鼎盛云15万企业开发者將一键接入codesafe代码审查引擎。 截图下面跟了一行字: “巨头入局了。” 第三十四章 围剿 八月。bug cafè。下午三点。 苏念念的笔记本电脑摆在桌子上,六个瀏览器標籤页排成一排,飞书文档、后台数据、媒体截图。她从下午一点半开始说,说到现在,冰拿铁喝了两杯,嗓子有点哑。 韩路一只手撑在桌子上,托著下巴,一直在听。 数据他看过了。七月的月报苏念念凌晨四点发来的,十一页。註册用户18400,月活12300,付费团队142个,月收入42.6万。看上去还在增长。 但拐点已经出现了。 “七月第一周日新增註册390,第四周402。蓝线基本没动,个人开发者还在增加。”苏念念指著屏幕上两根折线。“但橙线,新增付费团队,第一周12个,第四周3个。断崖。” “付费转化率从3.1%跌到1.4%。”她切到另一个页面,指了一下右上角的数字。“七月推理成本,八万三。” 韩路一看著报告,没有说话。 “每次扫描跑一遍模型,大仓库跑好几轮。月活一万二,一个月差不多十万次推理请求。”苏念念说。“五月份月活三千的时候,推理成本是两万一。” 用户增长了四倍,成本也增长了四倍,收入却只增长了两倍。 “免费用户占月活88%,吃掉四分之三的算力,贡献零收入。”她合上电脑。“企业不敢掏钱,个人不用掏钱。照这个趋势,年底推理成本能吃掉月收入的三分之一。” 记住我们101看书网 苏念念说的都是推理成本。但想留住客户,模型得一直叠代,训练成本才是真正的大头。 这些韩路一都知道。七月中旬codesafe正式接入鼎盛云的那天晚上,苏念念发了截图过来,他就知道后面的事不会简单。但一个月下来,局面比他们预想的还难看。 媒体上两周內冒出了六篇行业分析文章,四个平台,论点整齐得像同一份大纲拆出来的,“独立开发者產品灵活但缺乏企业级保障”“大厂入局標誌著赛道进入成熟期”“真正的壁垒不在检测率,在生態集成和合规能力”。通篇没提bugkiller的名字,但每一段都在说bugkiller。 客户那边也开始鬆动了。五个付费用户问过退款政策,他们在观望,等著看bugkiller怎么应对鼎盛。 “念念。”韩路一说。“你有什么想法?” “先搞清楚对方在打什么牌。” 她把飞书文档翻到一页关係图,五个方框围著中间一个圈,箭头从四面八方射进来,每个方框旁边贴满截图和连结。 “渠道、媒体、客户、资本、定价,五路同时来的。”苏念念依次点著方框。“渠道和媒体你都看到了,那六篇文章就差把我们名字写上去。但客户这条线更脏,” 她放大一段微信截图。“codesafe的销售直接约我们付费客户的技术负责人喝咖啡,拉人进什么“企业諮询委员会”。至少三家被接触过。” 手指滑到最后两个框。“vc圈有人放话,赛道格局已定,不建议再投创业公司。社区也在传codesafe要推免费试用,还没官宣,风先放出去了。” 她把手从屏幕上收回来。 “五条线,同一个时间窗口,同一个节奏。有人在统一指挥。” 韩路一看著她。 “都是你整理的?” “我又不是今天才知道这些。”苏念念的语气平淡。“一个月了。我一直在跟进呢。” 韩路一没说话。他盯著那张图看了几秒,然后闭了一下眼。 再睁开眼,视界打开了。 面板浮现。苏念念归纳的五条线,视界同样標了出来,协同度极高,所有向量指向同一策略中心。跟她的判断一致。 他没在上面停留,顺著关联线往深处走,找她看不到的东西。 几秒后—— 【codesafe核心检测引擎重构进度≈35%,架构缺陷未根治】 【接入鼎盛云后优先完成api適配与部署改造,核心能力改进延后】 【大项目误报率仍>25%】 【bugkiller技术优势:检测率/误报率/影响评估三项指標均领先,短期不可追平】 每一条都標得清清楚楚。 韩路一往下看。 【修復路径:——】 空的。 他盯著那一栏看了三秒。视界在那个位置闪了一下,像是在尝试生成什么东西,然后又灭了。 lv.2的视界能给代码bug开修復路径,改哪个文件、改哪一行、怎么改。但面对“品牌不如人、渠道不如人、资本不如人”这种系统级的竞爭劣势,它给不出答案。 这不是一个bug。这是一个他写不了补丁的问题。 韩路一关掉视界。 苏念念还在等他说话。 “技术上我们还是领先的。”韩路一说。“codesafe接入鼎盛云之后忙著做api適配,大项目误报率还是老问题。” 苏念念没问他怎么知道的。她早就习惯了韩路一偶尔冒出来的“技术直觉”。 “所以呢?” “但是没用。”韩路一站起来走到窗口。“企业客户做採购决策的时候,检测率排在评估表第四列。前三列是“品牌你听过没”“这公司会不会明天倒闭”“出了事谁来兜底”。鼎盛这两个字就是前三列的满分答卷。” 苏念念靠在椅子上,盯著天花板。 “那我们不打前三列。” 韩路一转过头。 “鼎盛云的生態是封闭的,他们做不了社区。”苏念念坐直了,重新打开电脑。“sdk全部开源。让社区自己写插件,vscode、jetbrains、github action、gitlab ci。除了核心引擎不动,接口全打开。” “模型不开源。” “当然不开源,开源的是脚手架,不是大脑。”苏念念说。“鼎盛做得了渠道碾压,做不了社区生態。十五万企业开发者是鼎盛的,但插件生態可以是我们的。” 韩路一想了想,说:“成本的问题也要一起解决。加一个个人pro,月费九十九。不限私有仓库、完整影响评估报告、优先队列。免费版扫描上限从每月六十次收到二十次。现在重度用户有多少?” “月扫描超四十次的,八百到一千个。转化15%,月收入多一万二到一万五。”苏念念说。“覆盖不了推理成本,但至少能止血。而且这批人用习惯了,也很在公司推团队版。” “可惜,这不是破局啊。”苏念念说。 韩路一看著她。“先活下去,我们会找到机会的。” 两人沉默了一会儿。 苏念念站起来收电脑。“明天出方案。sdk开源、个人pro定价、免费版限额,三件套。” 她把笔记本塞进那个跟她人差不多大的双肩包。 “路一,你越来越像一个合格的ceo了。” 说完,她向门口走去。 …… 晚上九点。502。檯灯。 手机上两条未读。 马小飞:“老韩,我今天刷到好几篇黑bugkiller的软文,要不要我做期视频懟回去?素材我都截好了。” 跨境达的李总:“韩总,最近有猎头联繫我们技术负责人,说是codesafe在组建企业客户諮询委员会。你们这边……还好吧?” 回了马小飞:“先不用,等我再想想。” 停了一下,又加了一句“谢谢”。 回了李总:“一切正常。感谢信任。” 打开代码编辑器。v1.3的影响评估模块重构,苏念念上周提的需求,企业客户嫌大项目扫描慢。 敲了几行代码。刪了。又敲了两行。 bugkiller后台数据看板掛在右下角。今日新增註册341。跟上个月差不多。新增付费团队:0。 註册还在涨,却没人掏钱。 他闭了一下眼。下午那份诊断报告的残影还浮在意识边缘,五条攻击向量標得清清楚楚,底下那一栏修復路径,空著。 就像一张ct片子,病灶標得明明白白,但开不出药。 显示器旁边贴著朵朵的蜡笔大瓢虫和林晚晴的棉布瓢虫画。一大一小。 手机响了。是顾司玥。 “明天上午九点方便吗?合规这块我梳理了一版框架,数据安全、隱私条款、责任免除,大的方向先跟你过一下,没问题的话我这边直接推进。” 韩路一顿了一下。“很急?” “以你现在的处境,很急。” 第三十五章 出事找谁 上午九点,博衡律师事务所。 顾司玥办公桌上摊著三份文件,韩路一刚坐下,她把最上面一份推过来。 “先看第三页。” 標准化的企业软体採购合规审查清单,某公司內部文档,logo和抬头打了码,第三页第四项被红笔圈出来: 供应商数据安全资质审查,是否提供第三方安全审计报告、数据处理白皮书、用户隱私合规声明。 “哪来的?” “三个企业客户的法务部。”顾司玥拧开保温杯,“措辞不同,但要求都是一样的。” 韩路一翻了翻另外两份,確实。 “bugkiller有这三样东西吗?” “没有。” “那法务审核你就过不了。”顾司玥喝了口水,“產品评估排在法务审核后面,这一栏空著,技术团队连试用的机会都没有。” 韩路一把文件放在桌上。 他没接话。 他打开视界。 三份採购清单的数据浮现出来,第四项的位置亮起橙色。橙色標出的是流程风险。 【warning:合规资质缺失→企业採购流程阻断点】 【影响范围:年营收>5000万的企业客户(约占目標客户池85%)】 韩路一往下看。 【修復路径,】 【1第三方数据安全审计报告(周期2-3周)】 【2用户代码数据安全白皮书(可与1並行)】 【3隱私合规声明(模板化,1周內)】 【预估成本:12-20万|修復成功率:95%+】 他盯著面板。 “你有方案了。” “约你来就是为了谈这个。”顾司玥从旁边拿出一张名片,白底黑字,中盾信息安全技术有限公司。 “我一个客户,做信息安全审计的,服务过十几家上市公司。”她说,“市场价起步二十万,联繫人姓周,你自己去谈。” 韩路一把名片翻过来看了一眼。周彦,业务总监。 “行。” 顾司玥把另一份列印稿推过来,《bugkiller数据安全白皮书·框架》。 “用户代码过你伺服器吗?” “过,云端推理,saas標准架构。” “那谁能看到?” “没人,传输端到端加密,推理完即时清除,不留存,伺服器上包括我在內没有任何人能碰原始代码。” 顾司玥看了他一眼。 “你不需要看?” “不需要,模型训练的数据是我自己標註的,跟用户代码无关。” 安静了一秒。 “那就把这个写清楚。”她在第三页点了一下,“技术架构说明、数据流向图、第三方审计背书、合规声明,採购表上『数据安全措施』那一栏,填上连结就行。” 韩路一翻完七页,审计两到三周,白皮书同步推进。 “还有一件事。” 韩路一看向她。 “你那个竞品绑在鼎盛云上,我查了他们的服务条款和api文档。” “你连他们的api文档都看了?” “看文档是本职工作。”顾司玥语速慢了半拍,“鼎盛什么体量你清楚,云服务、搜寻引擎、企业协作、gg系统,用户代码在那套基础设施上走一圈,经手多少中间系统、多少人有权限,他们自己未必说得清楚。” 她在列印稿上点了一下。 “你是独立saas,数据链路乾净,审计起来简单,这是你的结构性优势。白皮书里的『端到端加密、处理即刪、零人工接触』你应该拿出来宣传。” 韩路一笑了笑。 “顾律师,你最近帮忙好像越来越多了。” “別自作多情,你是我增长潜力最高的客户。”顾司玥说这话的时候没看他,正站起来给绿箩浇水。“科技公司合规需求只会越来越大。帮你跑一遍全流程,以后同类客户就是现成方法论,我在投资自己的时间。” 韩路一没接话,把名片收进口袋。 “什么时候开始?” “白皮书初稿周五之前出,你和苏念念审技术细节。” 韩路一站起来。 “顾律师,谢谢了。” “份內的事。” …… 下午两点,bug café。 苏念念把笔记本电脑屏幕转过来。標题用红色加粗的飞书文档:《bugkiller应对方案v1.0》。 “看完再说话。” 韩路一从头翻到尾,三部分:执行项、负责人、时间节点。 核心判断放在第一行: “不跟鼎盛打资源战,做大厂做不了的事。” sdk全面开源让社区写插件,鼎盛生態封闭,这条路他们走不通。影响评估护城河加固,v1.3扫描速度翻倍,合规配合顾司玥方案,最后一条是品牌,“bugkiller在企业客户眼里就是一个github连结。要上云市场、要见投资人,得有个像样的脸。” 韩路一看完抬头。 “什么时候写的?” “没熬太晚,不用担心我。”苏念念端起杯子喝了口水,眼底有遮不住的黑眼圈。 “大项目扫描速度优化一倍,我预估两周。” “十天。” “影响评估模块要重写缓存层——” “十天。”苏念念看著他,“鼎盛每多一天免费试用,我们就多流失一天的观望客户。两周和十天差四天,四天可能差两个付费用户。” “……行。” 苏念念合上电脑。 “路一,说句实话,这套方案能撑多久我不確定,鼎盛要是真砸钱做免费,我们的付费转化还会继续跌。”她的声音有些低。 苏念念先回家了。 韩路一在角落老位置写代码,老周在吧檯后面擦杯子。店里没几个客人,空调吹得桌上的餐巾纸角翘起来。 老周端了杯水走过来,放在韩路一笔记本旁边,顺势在对面坐下。 “最近不太对劲啊小韩。” “还好。” “还好?”老周把抹布搭在肩上,“这礼拜来的开发,一半聊的是你那个bugkiller。最近鼎盛在和你打对台?” 韩路一停下敲键盘:“你都听说啦。” 老周往椅背上一靠,翘起二郎腿,头看向窗外。 “我以前待过一家公司,做运维监控的。六个人,技术比nagios好两代,客户用了都说牛逼。” 韩路一看著他。 “后来崑崙推了自己的监控服务,免费捆绑,技术稀烂。我们cto说没事,產品好他们追不上。”老周说到这停顿了一下,“半年,客户走了七成。我们当时拼了命的叠代,但是没用。有个客户说,用崑崙全家桶,出了事找崑崙,用你们的,出了事找谁?” “后来呢?” “后来cto带著四个人去崑崙上班了。”老周站起来,拿起韩路一的空杯子,“產品確实好,但好没用,得让人相信你。” 他走了两步,又回头。 “我也不是想教你什么,我也不知道怎么办。我就是说,这事我见过,光埋头写代码扛不住。” 韩路一看著老周走回吧檯。 …… 晚上九点,502。 下午跟中盾的周彦见了一面,视界看到了对方的底价,八万。周彦要衝业绩,韩路一没砍到底,最后谈到十万,对方还多送了一项渗透测试。 韩路一打开bugkiller后台看了一眼今天的数据,新增註册294,比上周日均少了五十,付费团队没有新增。 收件箱里多了两封邮件。 第一封,一家小公司的技术负责人:“韩总您好,因公司q3预算收紧,我们决定暂停bugkiller pro订阅,待预算恢復后优先考虑重新开通,感谢理解。” 第二封,深圳一家独立游戏工作室:“產品很好,只是我们最近现金流有点紧,先暂停一下,等缓过来第一时间续上。” 两个客户,一周內。 韩路一关掉邮件,打开技术论坛。 首页有一篇帖子被顶上来了,標题:《bugkiller vs codesafe:一个独立开发者的真实数据对比》。 帖主是个做saas的独立开发者,id眼生,韩路一没见过。他把自己的项目分別用bugkiller和codesafe跑了一遍,逐条截图对比检测结果,检测率、误报率、影响评估精度,三项数据摆在那里,结论一边倒。 帖子末尾一句话:“工具好不好,自己跑一遍,我的数据在这里,欢迎来查。” 评论区三百多条,清一色力挺bugkiller。 这个帖子不是韩路一安排的,他不认识帖主。 他看了几秒,关掉论坛,继续写v1.3。 影响评估模块的缓存层重构敲到一半,视界面板在意识边缘闪了几下,像信號不好的老电视。 他眨了一下眼。 面板右下角,经验值的数字跳了一下—— 200/200。 第三十六章 蓝图 面板右下角的数字刚跳完,疼痛就来了。 比上次猛得多。上次升lv.2像电脑强制重启,一下就过去了。这次持续好几十秒,视觉变形,枕头上洇了一片汗印。感觉像有个施工队在大脑里开工,先拆东西,然后往里装。 韩路一从床上坐起来的时候,头还闷闷地胀,像高烧刚退。 他习惯性地摸了摸肚子——准备去洗漱——手顿住了。 有棱。 韩路一掀开睡衣,低头看了一眼,六块腹肌清晰可见。他愣了两秒,捏了捏自己的胳膊,肉也紧实了,升级还顺带改身体?这金手指越来越离谱了。 他出神的看著房顶上那根坏了半截的灯管,半年前就这样了。 他打开视界。 【lv.3|精力:127/500】 精力上限从250跳到500,当前127,升级过程吃掉了一大半。 范围又变大了,lv.2时他坐在家里,感知边界刚好覆盖这栋楼,现在还没下床,就能感觉到更远的东西,远得多。 他下了床,走到窗边。 数据节点铺满了视野:密密麻麻的灰色小点悬浮在夜色里,每个点是一个物件、一段管线、一台设备,全部摺叠,上次从五米扩到五十米,满屏標籤差点把他淹死,花了好几天才学会过滤。这次范围不知道翻了多少倍,但没有一个標籤主动展开。 他试了试,弄堂口路灯杆上有个灰点,聚焦,標籤弹开:【路灯控制模块|故障:光敏传感器漂移→白天偶发亮灯】。鬆开注意力,標籤缩回灰点,看哪展哪,不看就收。 对面楼三层,一台空调外机亮著橙色:【压缩机轴承磨损|预计寿命:4-6个月】。楼上楼下还有几个人物基础面板,自动摺叠成灰色,只露出姓名和年龄,他没展开。再远。弄堂拐角过去,bug café。老周早关了门,设备没断电。意式半自动咖啡机上掛著个老熟人:【加热模组温控偏移+2.3°c】。以前得坐在店里才看得见。 他试著再往外推。最边缘的数据点闪烁不定,像信號只剩一格,再远,空的。 两百米,大概。 他在窗边站了一会儿,弄堂安静下来了,灰色数据点浮在夜色里。 韩路一转身走到书桌前坐下,笔记本屏幕还亮著,v1.3影响评估模块的代码改到一半,光標停在第427行。他盯著屏幕,没继续写。 围剿,五条攻击向量,苏念念的方案,顾司玥的建议,老周的故事。 现在该怎么办? 他没有刻意去问视界,但这个念头刚一成形,面板上出现了他没见过的东西。 以前的视界像手电筒,照哪亮哪。对著一段代码,告诉他哪行有bug、怎么改。对著一份合同,標红漏洞条款。对著一个人,给出基础资料和情绪。点对点。一个输入,一个输出。 这次没有输入,“现在该怎么办”,他没有对著任何人、任何代码、任何文件,视界回答了一个没有目標的问题。 大脑中那块新分区微微发热。 面板中央浮出一整块区域,像是一张蓝图,结构化的,分层的—— 【路径编译·启动】 【目標:bugkiller商业化存活路径】 【编译中……】 两秒。 【路径编译·完成】 【step 1/5:合规资质补全】 【执行:第三方安全审计+数据白皮书+隱私声明】 【资源:12-15万+法律支持|周期:2-3周|成功率:96%】 【step 2/5:產品差异化加固】 【执行:v1.3影响评估模块重构,大项目扫描速度x2】 【资源:全职开发10天|成功率:91%】 【step 3/5:社区生態开放】 【执行:sdk开源+插件接口(vscode / jetbrains)】 【资源:5天开发+社区文档|周期:2周|成功率:88%】 【step 4/5:渠道突破】 【云供应商排他绑定→长期存活率34%(致命陷阱)】 【检测到非排他替代路径——需定向编译|预估消耗180+精力|当前精力不足】 【step 5/5:融资】 【执行:天使轮/ pre-a|估值区间500-1200万】 【成功率:64%(依赖step 4路径选择)】 【—————————————————】 【当前存活概率:31%】 【五步完成后存活概率:待step 4编译后確定】 韩路一盯著面板。 三十一。 精力面板在右下角跳了一下:【lv.3|精力:94/500】。光看这一张清单,消耗33点。 他没急著关,从头又看了一遍。 步骤一,合规资质,顾司玥已经对接了中盾做审计,白皮书写了七页。步骤二,產品差异化,苏念念方案里的原话,“影响评估是护城河”。步骤三,社区生態开放,视界消耗33点精力编译出来的最优路径,有一半已经在进行了。 步骤四。 韩路一盯著那行红色的34%。 他研究过业內云服务商的合作现状,年保底三百万,首页推荐位,联合营销预算。 如果昨天有人把这份合同拍在桌上,他大概率会签。 他看了一眼右下角——94,替代路径要180,今晚跑不动了。 韩路一打开备忘录,把五步清单从头敲了一遍,面板上的信息不留存,关掉就没了。 打到步骤四那行的时候,他停顿了一下,接著写下“替代路径待编译”。 存了文件,给苏念念发了条消息:“明天上午见一下?我有些新的想法。” 窗外水果摊收摊,传来铁皮车轮碾过地砖的声音。 他准备关掉视界。 面板边缘闪了一下金光。 不是他主动扫的,lv.3被动拾取,两百米全覆盖。 隔壁,501。 【林晚晴|创作天赋:前0.3%|视觉敘事能力:极高|商业价值实现比例:4.7%】 前0.3%,他扫过几百个人的面板,跑进前1%的一只手都数得过来。 韩路一转头看了一眼显示器旁边並排的两幅画——朵朵的蜡笔火柴人和巨大瓢虫,林晚晴的棉布画框,门把手上停著一只小小的瓢虫。 他翻回备忘录,在清单末尾加了一行。 关掉视界,精力面板消失前闪了一下:【61/500】。 第三十七章 太极 七点不到,韩路一就醒了。 视界打开,精力面板浮在意识边缘,【lv.3|精力:500/500】。升级之后恢復速度快了不少,一觉睡满。 他把注意力对准了那个昨晚跑不动的问题。step 4。渠道突破。定向编译。 念头成形。大脑深处那块新分区开始发热。 【路径编译·定向·启动】 【目標:bugkiller渠道突破:排他 vs多云中立】 【编译中……】 比昨晚的全局编译要久。五秒。十秒。面板上的数据结构像拼图一样逐块落位。 【路径编译·定向·完成】 【路径a:排他绑定(单一云平台)】 【长期存活率:34%(—)】 【风险:渠道依赖→定价权丧失→平台政策变更时无退路】 【路径b:多云中立(非排他·多平台同时入驻)】 【长期存活率:78%(↑↑)】 【最优执行序列:二线云(意向)→一线云(撬动)→反向收网】 【反序执行(先一线)成功率:23%】 【关键槓桿:多云合作达成前vc主动接触率12%→达成后67%】 【精力消耗:183】 右下角跳了一下:【lv.3|精力:317/500】。 他把“34”和“78”写进备忘录,合上本子。 九点出头,门铃响了。 韩路一给她开门的时候头髮还是乱的。她拎了两杯咖啡,在门口站了一秒。 “昨晚没睡好啊?” “想事情想的有点儿晚。”韩路一接过咖啡。冰美式。 “你有什么新想法?” “是关於渠道的。” 苏念念拉了把椅子坐下。 “你方案里写过要上云市场。”韩路一说。“你当时想的是找哪家?” “青岳或者天枢吧,口碑好门槛低。崑崙也可以聊,但条件肯定不好谈。” “如果他们要求籤排他协议呢?” 苏念念想了想。“条件够好的话,排他也不是不能接受。” “不能接。” “……你昨天到底想到什么了?” 韩路一没有马上回答。 他喝了口咖啡,把杯子放下。 “签排他是死路,我们最多落到和赵文渊一个结局。” 苏念念看著他。 “我昨晚想了一宿,把帐算清了。”韩路一说。“鼎盛把codesafe绑在自己的云上,看起来是优势。有了十五万企业客户零成本接入,渠道碾压我们。 “但反过来想,这意味著codesafe只能在鼎盛云上用。 “现在整个市场,经过验证的ai代码审查產品就两个。一个绑死在鼎盛,另一个是我们。青岳云、天枢云、崑崙云,这些平台上的开发者想用ai代码审查,有几个选择?” 苏念念楞住了。 “一个。” “鼎盛帮我们做了市场教育。” 苏念念把咖啡放在桌上,整个人往前坐了坐。 “你是说不是我们去找云平台,是云平台需要我们。” “鼎盛越绑越紧,其他云越没有替代品。它的渠道优势越大,我们对所有竞爭云的稀缺性就越高。” “太极。”韩路一说。“它越用力推,越把我们推向它所有对手的怀抱。” 苏念念站起来在屋里走了两步,又走回来。 “具体怎么做?” “先找二线。青岳或者天枢,谁先接触都行。拿一份意向,拿著它去找崑崙。崑崙是鼎盛最大的对手云,它看到二线在接bugkiller会紧张,鼎盛有codesafe,青岳天枢有bugkiller,崑崙什么都没有,这个信號可以撬动崑崙。” “崑崙签了呢?” “那青岳和天枢就更不会落下了,三家我们都签。” “条件呢?” “分成,渠道推荐,首页流量,到时候再细谈吧。” 苏念念眉头皱了一下:“你这个方案听起来像在走钢丝。” 韩路一笑了:“本来就是。” “我担心两件事。”苏念念伸出两根手指,“第一,青岳天枢愿不愿意先给我们意向?就算他们给了,会不会把我们当枪使?拿我们去打鼎盛,然后反手也要排他。” 韩路一把她那两根手指按回去一根:“先说第一件,他们怕的是“没人用”。他们最需要的是一个能让开发者留下来的明星工具,鼎盛给他们做了市场教育,他们不接,我们就去找別家。” “那怎么保证我们不被当枪使?” “所以才要三家同期落定。”韩路一说,“不是我们去求崑崙,是让崑崙意识到:它再慢一点,就真的什么都没有了。它一旦上桌,就不会允许自己把牌局打成“绑定我”,那是给鼎盛送人头。” “如果他们自研呢?” “从立项到上线,至少要半年,鼎盛现在宣传的势头这么猛,自研来不及了。” 苏念念看著他:“你確定他们会按你的逻辑走?” “不確定。”韩路一说,“但我確定,签排他协议,我们会按他们的逻辑走。” 苏念念坐下来,翻开笔记本电脑,开始敲字。 “接触渠道。”苏念念头也不抬。“你有没有人脉?我倒是有几个前同事,但都不在相关岗位。” “不用绕一圈。”韩路一说,“中盾那边我有直接对接的人,销售和项目经理都在。弱关係反而好用,他们不在云厂商內部站队,只在乎成交。” “行。”苏念念敲了两下键盘,“那就从中盾那打开局面。” “谈判底线,分成要多少?保底呢?” “这个得算,取决於各家云的开发者体量和我们在上面已有的客户数。”韩路一想了想,“交给你了,说实话,定价这块我不太行。” 苏念念停下来看了他一眼,“你现在说话越来越不像程式设计师了。” 韩路一看向了天花板:“只当程式设计师不够用了啊。” …… “方案框架拉好了。”苏念念把屏幕转过来。 执行时间表、接触优先级、谈判节点、分成模型草案,四页。韩路一从头看到尾。 “还有一件事。”苏念念往下翻到最后一页,標题加粗:品牌升级。 “上云市场总得有个像样的品牌,bugkiller在企业客户眼里就是一个github连结加默认配色的网站,谈云合作、见投资人,连个正经logo都没有。” 韩路一没接话。 他的目光移到了显示器旁边。 两幅画並排钉在墙上。左边是朵朵的蜡笔画,歪歪扭扭的火柴人,旁边蹲著一只巨大的红色瓢虫,比人还高。右边是林晚晴的棉布画框,锈跡斑驳的门把手上停著一只小小的七星瓢虫,翅膀微微张开。 瓢虫。 “我知道找谁了。” 苏念念顺著他的目光看过去,看到了那两幅画。 “隔壁那个画画的姐姐?” “她是自由插画师,走正式的商业委託,品牌视觉设计,按市场价付费。” “你確定?品牌设计和插画不太一样,我们可以找专业的设计公司。” “她就是专业的。” 苏念念走之前把执行方案终稿发到飞书群,韩路一看完点了个赞。 韩路一打开微信,翻到周彦的对话框。 昨天刚签完审计合同,今天就找人家要资源,节奏是快了点。但渠道接触越早越好,哪怕只是先摸个底。 “周总,想请教个事,中盾做安全审计服务的客户里,有没有云平台那边的?我们后续想聊聊云市场入驻。” 两分钟后,周彦回了条语音,韩路一点开听了一遍。 大意是:有的,青岳云、天枢云都是他们客户。不过韩总你这个时间点直接聊估计不太行,对方要看资质的,等你们审计报告出来,我帮你引荐,到时候拿著报告去谈,比空手强得多。 “明白了。审计那边儘快推,出了报告第一时间找您。” 周彦:“放心,两周半差不多,到时候我帮你约。” 韩路一退出对话框。 两周半,审计落地之后,才有资格上桌。路径编译给了方向,但棋子要一步一步摆。 手机响了,张浩然。 韩路一接起来。 “老韩,忙不?” “不忙,怎么了?” “有个人你应该见见。”张浩然的声音压低了一点,像在办公室偷打电话,“叫陆明洲,做fa的,华筹资本的高级经理。” “fa?” “financial advisor,帮创业公司做融资的。这哥们儿经歷挺丰富的,上財出来先在德勤干了三年审计,考了cpa,后来跳去投行,再转fa,看过几百个早期项目。之前打球认识的,后来偶尔约饭。今天吃饭我隨口提了你们的事,他当场就问了我二十分钟。” “问什么?” “產品技术路线、商业模式、现在什么阶段,我说你问我也不懂,你找他本人聊。”张浩然顿了一下。“他说周末有空,想先聊聊。不是那种正式pitch,就是喝杯咖啡。” “行,你把我微信推给他。” “发了。”张浩然说。“对了,这人说话比较直,別介意。” 掛了电话,韩路一看了眼微信,已经有好友申请了。头像是一张证券交易所的照片,暱称直接是本名“陆明洲 frank”,签名栏写著“数字不会骗人”。 他通过了申请。 第三十八章 豪赌 韩路一敲了敲501的门。 门开了一条缝。朵朵先探出脑袋,喊了一声“韩哥哥”,又被林晚晴轻轻拉回去。 林晚晴出来的时候围裙上沾著蓝色的顏料。 “林姐,有件事想找你帮忙。” “什么事?” “品牌设计。我们公司的。logo、视觉体系、ui风格指南,一整套。正式商业委託,按市场价付费。” 林晚晴愣了一下。 “怎么找我啊?” “我喜欢你的画。” “我主要做插画,品牌设计不是……”她停了一下。“我没做过完整的品牌项目。” “做过商业设计吗?” “接过散单。电商详情页、公眾號配图。”林晚晴擦了擦手上的顏料。“不算品牌设计。” “想不想试试?” 朵朵在旁边喊:“妈妈画什么都好看!” 林晚晴没理女儿。她看著韩路一,安静了几秒。 “邻居嘛,不用花钱,我帮你画就是了。” “那不行。”韩路一说。“商业委託就是商业委託。你要是不收钱,我不敢提修改意见。” 林晚晴笑了一下。 “那预算多少?” “你报价。你觉得值多少就报多少。” “……我回去想想。明天给你报价单。” “行。”韩路一把bugkiller的网站连结发到她微信。“我是做ai编程的。” 他指了指朵朵那幅蜡笔画的方向。 “產品叫bugkiller。你画的瓢虫我很喜欢,我们可以还用这个元素。” 林晚晴眨了一下眼。 “瓢虫吃蚜虫呀。”韩路一笑著说。 林晚晴看了他一会。 “我试试。” 韩路一走出501的时候,朵朵追出来塞了一张纸给他。蜡笔画,是一只飞在天上的……蛇? 他把画折好放进口袋。 …… 周六下午,虹口一家独立咖啡馆。 陆明洲约的地方,说这家手冲不错。 韩路一到的时候对方已经坐在靠窗的位置了。他瘦高,穿著深蓝色polo衫,戴一副金丝眼镜。手腕上戴著一块表,看著不便宜。 看到韩路一进来,陆明洲站起来。 “韩路一?我是frank。” 两人握了握手。 陆明洲先点了两杯手冲,问韩路一有没有忌口的豆子。韩路一说隨便。 “你们公司在浦东?”陆明洲问。 “老小区,办公室就是我住的地方。” “创业初期都这样。”陆明洲说。“我之前看过一个做saas的团队,四个人挤在loft阁楼里写代码,夏天空调坏了开窗户,蚊子比用户多。” 韩路一笑了两声。 “张浩然提过你好几次,说大学室友出来创业了,做ai方向的,技术很牛。我一开始根本没在意。技术很牛的创业公司太多了。” “那他吹牛了。” 陆明洲摇了摇头。 “前两个月那个直播。”陆明洲说。“bugkiller和codesafe的对比,我看了回放。一个个人开发者把斯坦福博士的团队碾压了。確实牛逼。” “你也看技术直播?” “我看数据。”陆明洲接过服务员端来的咖啡,闻了一下。“直播之后我查了bugkiller的社区,github上的討论区比很多成熟產品都活跃。issue区有人自发写插件、翻译文档、提feature request。这种社区参与度不是花钱能买到的。” 韩路一也接过咖啡。 “后来又看到那个独立开发者写的对比帖,逐条截图,检测率、误报率、影响评估三项全面领先,评论区三百多条。”陆明洲喝了口咖啡。“那个帖子不是你安排的吧?” “不是。” 安静了几秒。陆明洲放下杯子,换了个坐姿。 “你现在月活多少?” “六万三,免费加付费。” “收入呢?” “一百四十七个团队用户,月收入四十二万。” “毛利?” “扣掉推理成本和伺服器,60%吧。” 陆明洲在手机上划了两下。“留存率?” “社区87%,付费93%。” “87%。”陆明洲重复了一遍这个数字。“我做这行这么多年,能跑到87%社区留存的,很少见。” 韩路一看著他。 “你花了挺多时间研究我们。” “断断续续一个多月。”陆明洲没藏。“从直播之后就在关注。你们四月底公测,五月中直播之后数据起飞,七月鼎盛开始围剿,整条线我都跟著。” “然后呢?” “张浩然上周吃饭的时候提了你一嘴,我才知道原来他室友就是nullpointer。”陆明洲笑了。“所以不是他引荐我,是我等了一个月等到了一个机会。” 韩路一喝了口冰美式。 “你想帮我们做fa?”韩路一问。 一个fa跑来约创始人喝咖啡,聊数据,夸產品,怎么想都是来做生意的。虽然他也是第一次经歷。 “不是。”陆明洲说。 “不是?” “fa是帮你们找钱,拿抽成走人。”陆明洲放下咖啡杯。“我不想做中间人。” 他往前坐了坐。 “你们现在的状况我看得很清楚。產品牛逼,社区也活跃,但鼎盛的动作把增长压住了,圈子里都在传“赛道格局已定”。你们现在估值被压到五百到八百万之间。” 韩路一没说话。 “但这些人看的是静態数据。他们没看到留存率87%意味著什么,没看到你的飞轮已经转起来了。”陆明洲说。“bugkiller的问题不是產品,是生存。活过这一关,估值得翻十倍以上。” “那你想做什么?” “加入你们。” 韩路一愣了一下。 “我有资本圈的资源和关係,有融资全流程的经验,能帮你们把財务、股权、融资整条线跑起来。”陆明洲说。“你们接下来要做的事,谈判、cap table升级、见vc,每一件都需要一个跟钱打过交道的人。” 韩路一开了视界。 【陆明洲|34岁|华筹资本·高级经理】 【情绪:冷静(隱藏:强烈兴奋)|核心动机:高回报押注】 他是认真的。 他不是来做生意的,他是来赌博的。 “你现在赚多少?”韩路一问。 “一百多点。” “放弃一百万来加入一个被围剿的两人创业公司?” “我过手过十几个亿了。最好的项目从我手上过一遍,然后进了別人口袋。”陆明洲说。“我要自己上一次桌。” 他顿了一下。 “热门赛道估值高,我出不起价。你的估值被鼎盛压低了,但產品好,有潜力,我相信自己的眼光。现在是你最低谷的时候,我可以帮你走出低谷。” 韩路一没急著表態。“你觉得我们现在最大的问题在哪?” 陆明洲掏出手机,翻到一张提前画好的股权结构图。 “註册的时候律师帮你们做了標准架构,两个自然人加期权池,现在够用。但你接下来要见vc的话,这个结构得升级。”他指了指图上几个空白的框。“创始人vesting,股份分四年成熟,是给投资人信號说你们拿钱了不会跑路。反稀释条款,防止后面的钱把你们稀释没了。esop发放机制、行权条件、退出规则,现在是只留了池子,但规则没写。vc的法务那不够用的。” 韩路一看著那张图。这些他確实没想过。 “还有一个。”陆明洲收起股权图,划到另一页。“你们现在月收入四十二万,增长被压住了。你可能觉得问题是鼎盛。但站在vc的角度看,问题是你没有一个能讲通的增长故事。从四十二万到四百二十万,甚至四千二百万,这条路在哪里?靠什么?分几步?每步需要什么资源?你如果回答不了这个问题,没有一个vc会坐下来听。” 韩路一没说话。视界给他指了路,但那是金手指的输出,不是一份能拿给投资人看的东西。 “这些是我能做的事。”陆明洲说。 “条件是什么?” “月薪一万五,够我还房贷的。加10%股权。” 韩路一靠在椅背上。视界里陆明洲的底线清清楚楚,5%。 “10%太高了。5%。” 陆明洲看著他。 “月薪一万五可以。但股权上,5%对应现在估值二十五到四十万,总包不低了。你刚才说的三个问题都是实打实的活,做好了后续融资轮才有期权增发的空间。5%是起点,不是终点。” 陆明洲笑了。“你不像是张浩然说的那种纯技术人。” “被逼的。” “5%加一个条件。”陆明洲说。“一年內源码科技完成不低於五千万估值的融资,期权池追加2%给我。做不到就没有。” “行。”韩路一说。“我让律师擬协议。” 两人又握了握手,陆明洲站起来扫码买单。 陆明洲出门后,韩路一给苏念念打了个电话。 “今天见了张浩然介绍的那个人。陆明洲,做金融的。” “怎么样?” 韩路一把事情经过简短的说了一遍。 “等等,他要10%?” “我谈到了5%,如果六个月能做到估值五千万的融资,再加2%。” 电话那头安静了一会。 “你怎么谈的?他开10%你直接砍一半,怎么跟菜市场买菜似的?” “跟菜市场买菜也没什么区別啊。没有人一上来就出底价的。”韩路一说。 “5%加对赌……你觉得这人靠谱吗?” “眼光不错,也有决断。” 苏念念沉默了一会儿。“这个……確实是我没想到的。” “协议让顾律师擬。我们再约个时间跟他见一面,你来看一下。” “行。”苏念念说。“你是老板,你说了算。” 掛了电话。正去地铁站的路上,又接到了周彦的电话。 “韩总,审计报告出了。青岳云那边我帮你约了,开发者生態部的梁宇,梁总监。下周二下午两点。” 韩路一发了条消息给苏念念。 苏念念秒回:“加油加油加油!!!” 第三十九章 犹豫就会败北 青岳云海城总部。 韩路一和苏念念提前十分钟到了前台。苏念念穿了条灰蓝色的连衣裙,头髮扎得比平时高一些。韩路一穿了件白色polo衫,搭牛仔裤。 前台打了个电话上去,不到两分钟一个年轻姑娘从电梯里出来,胸牌写著“开发者生態部”:“韩总、苏总?梁总监在二十三楼等你们,我带你们上去。” 到了二十三楼的会议室,一整面玻璃墙,里面是一张四人桌,桌上放了两瓶矿泉水。看到两人过来,梁宇已经站了起来,他三十五六岁,短髮,穿著藏蓝色衬衫。 “久仰久仰。”梁宇握手的力道不大,但速度很快,“周彦跟我提过好几次,终於见到真人了。” “梁总客气了。” “別叫梁总,叫我梁宇就行。两位要喝咖啡吗?我让人送两杯过来。” 苏念念笑了笑:“那来两杯拿铁吧,谢谢。” 梁宇翻开一叠列印文件,bugkiller的產品介绍,上面手写了一些笔记和標註。 “先说说我们这边。”梁宇说。“青岳云开发者平台去年上了工具市场,代码审查赛道一直在找人,我们之前聊过两家,都不太行,bugkiller我们內部评估过,直播回放我也看了。” “结论呢?” “你们的影响评估是我见过最好的。”梁宇语速不快,“检测率也高,我个人非常喜欢你们的工具。” 苏念念翻开平板,把审计报告和白皮书的摘要页推过去。 “这是中盾的数据安全审计报告,以及我们的数据安全白皮书。” 梁宇翻到审计结论那页,读了一会。 “端到端加密,处理即刪,零人工接触。”他抬头,“这个很硬啊。” 韩路一打开视界。 【梁宇|36岁|青岳云·开发者生態部商务拓展(bd)总监】 【情绪:热情(隱藏:急迫)】 【核心kpi:q3开发者工具生態完成率41%|內部压力:季度考核倒计时不到七周|bugkiller內部评级:优先接入|剩余障碍:品牌知名度偏低(直播后已上调)、企业资质待验证(审计报告提交后更新中)】 梁宇比他表现出来的急得多。 关了视界。精力掉了7点。 “合作模式你们想怎么谈?”苏念念问。 梁宇把列印文件翻到第二页推过来,合作条款一共两页半。 “我直接说方案,saas掛靠,產品跑在你们自己的伺服器上,青岳这边提供入口、计费和用户管理。技术对接有標准sdk,適配两到三周。分成80-20,你们拿大头。” 他顿了一下。 “在这个基础上,我们希望做深度合作。作为交换,我们给保底月收入二十万,外加首年推广资源包。首页banner位、开发者邮件推送、技术沙龙联办,折算市场价一百到一百五十万。” “深度合作的定义是……”韩路一拿起文件,第四条是深度合作的条款。 “bugkiller在ai代码审查赛道上只入驻青岳云,不入驻其他云平台工具市场,期限三年,到期我们优先续约。” 韩路一和苏念念对视了一眼,都没说话。 “理解你们需要考虑。但坦白讲,代码审查这个赛道不新了,我们主要还是看中你们的ai属性,这种条件可不是谁都能拿到的。” 【独家为上级硬性指示(vp审批)|开发者生態部q3完成率41%,考核倒计时不足七周|撤迴风险:若bugkiller同期接触竞对云,青岳將改变態度】 “梁总。”韩路一把文件合上,“方案我们带回去研究一下。保底和推广资源都很有诚意,但独家协议涉及公司战略,我得跟合伙人和律师过一遍。” “理解。”梁宇站起来,“不过这份方案是我在內部爭取了一阵的,窗口不会太长,你们儘快做决定。” “明白了。” “加个微信,决定了隨时联繫我。” 梁宇把他们送到电梯口。 电梯门合上,苏念念摁了一楼。 苏念念盯著楼层数字往下跳,轻轻的出了一口气:“条件比我预估的好。月保底二十万加推广资源包,三年独家,放在一个月前,我可能会犹豫。” “不要犹豫,犹豫就会败北。” “韩路一你討厌啊。”她被逗笑了。 过了一会,她又说:“路一,刚才梁宇说“不止你们一家”的时候,我感觉你的笑没憋住。” “有吗?” “有。” 电梯到了一楼,两个人没走出写字楼,苏念念在叫车。八月的海城,快四十度了,热气从四面八方漫过来,像在蒸桑拿。 “他们比我们预想的还急。”韩路一说,“梁宇准备得太充分了。那条款不是临时擬的。他內部走完审批流程才来见我们。” “那我们的节奏呢?比原计划快还是慢?” “快!原计划是拿到意向去找天枢,现在青岳直接给了独家条款。这比意向书好用。” “上车吧。” 回到502。 陆明洲在韩路一的书桌前坐著,桌上是他自带的联想小红点,旁边放了一瓶矿泉水和一支钢笔。他加入源码科技一个多星期了,502的餐桌已经快变成他的工位,韩路一和苏念念进门的时候他正在改財务模型,头都没抬。 “青岳谈完了。” 韩路一把梁宇的条款文件丟在桌上。 陆明洲快速扫了一眼:“独家?” “保底月二十万,推广资源折算一百到一百五十万,排他三年。” “分成多少?” “20%。” 陆明洲拿起文件翻了两页,速度比梁宇翻审计报告还快,看完他抬起头:“保底二十万在行业里偏低,头部工具年保底每年三百万起。推广资源用的是自家標牌价,水分至少三成,实际价值七十到一百万。” 苏念念坐到另一把椅子上。 陆明洲把文件放下:“独家不签,这个我们之前討论过了,问题是这份offer怎么用。” 韩路一靠在门框上,说道:“比我们预想的还好用。独家不是总监的提案,至少是vp压下来的硬指標,整个开发者生態部q3都在赶进度,考核指標没到,他比我们急。” “你怎么知道是vp的意思?” “他没有决定权,加上考核压力,真有底气的人不会强调窗口期。” “如果独家是上面的硬指標……”他推了推眼镜,语速快了一档,“这张牌比表面值钱得多。你手上有一张青岳给的独家offer,不管你想不想接,天枢和崑崙只知道有人在抢。” 陆明洲抿了口矿泉水,说:“你知道谈崩了就什么都没有了吧。青岳不签独家,就没有流量推广,天枢崑崙都还没影呢。” “我知道,我有把握。” “行,”陆明洲把矿泉水放下,“我本来就是来赌的。” 苏念念打开平板,说:“天枢那边呢?” 韩路一想了想,说道:“bugkiller付费客户里有四十多个团队部署在天枢云上。好几个天枢的客户反馈过,问能不能做原生集成。” “客户需求!”苏念念的眼睛睁大,“最好的敲门砖。” “我整理一份客户需求匯总。”韩路一说,“不用太正式,就是真实的用户反馈截图。拿这个去见天枢,我们不是去推销的,是去帮客户解决问题的。” 陆明洲重新打开笔记本,建了一个新表。 “梁宇那边先別回復,既不答应也不拒绝,能拖多久拖多久。天枢那边一有进展就告诉我,各家的报价方案都发我过一遍。” 苏念念已经在打字了:“天枢那边谁有路子?” 韩路一说:“周彦不能问了。他帮忙约了青岳,跟梁宇有联繫。我们同时找天枢的事不能让青岳知道。” 苏念念说:“我之前大厂的前同事有几个跳去了天枢,我去问问。你翻一下客户那边,四十多个团队在天枢上,总有人认识內部的人。” 韩路一打开bugkiller后台看了一眼工单记录:“有好几个cto反馈过原生集成的需求,先从最积极的那几个聊起。” 陆明洲也抬起头:“天枢战投部我有人,之前帮一个saas项目融资的时候对接过。我问问。” “多线推,看哪条先通。” 韩路一打开电脑,开始整理客户需求。 三个人各忙各的,房间里安静下来,只剩键盘敲击声和空调的风声。 快到六点,陆明洲合上笔记本:“我先走了,回去吃饭。” 韩路一抬手示意,陆明洲收拾东西出门,502又只剩下两个人了。 韩路一问:“吃什么?” “隨便。” 韩路一点了两份外卖,黄燜鸡和水煮牛肉,两碗米饭。他把水煮牛肉推到苏念念那边,苏念念拆开盒子,辣油味填满了房间。 吃饭的时候两人没聊工作。苏念念拿出手机来,打开了一个李子柒的视频下饭,韩路一瞄了两眼,快速把饭扒完又坐回了屏幕前。 八月的六点,天还亮得刺眼。 微信响了一声,是跨境达的李总发来的语音。跨境达是他们的第一个付费用户。 “韩总,又有人来挖我了,这次更离谱,codesafe不要钱,还送三个月鼎盛云代金券。 “你放心,我不走。咱们的產品好太多了。但说句实话,我们行业群里好几个人在聊这事了,估计有几家比我定力差的。” 韩路一回了个“谢谢”,切到bugkiller后台。 通知栏掛著一条红色提醒。 【退订通知】 【锐思数据· pro年付→已取消】 第四十章 都在射程內 第二天一大早,韩路一接到了苏念念的信息。 “我之前那个在天枢云的同事,昨天晚上回我了,他上个月离职,自己创业去了,不太方便引荐。我再在朋友圈问问。” 死胡同。 韩路一又打开公司邮箱看了看官网合作通道的提交自动回復。到现在还没人联繫。 在天枢云上部署的付费团队里,反馈过原生集成需求的有好几个。其中一个cto最积极,他们是在临安做企业协同的创业公司,上个月反馈在天枢集成不通畅,特意在工单里说了:“建议优先適配天枢原生,我们可以配合內测。” 韩路一给他打了个电话。 “高总,我是源码科技的韩路一。” “韩总!真没想到,找我有事?”对方声音很大,背景吵吵嚷嚷。 “之前你们反应的天枢云集成问题,我们的团队在做了。这边想问一下,你在天枢认不认识开发生態或者bd的人?” “生態不认识。”高磊想了想,“我跟天枢技术那边比较熟,云原生架构组的组长,我们做容器化迁移的时候打过不少交道。要不我帮你问问他,看能不能帮忙牵个线?” “太好了,麻烦高总。” “哈哈,我就是问问,不保证啊。”高磊大笑几声,“技术和商务经常各干各的,你懂的。” 掛了电话,韩路一又翻起下一张工单来。 “战投那边回话了。” 是陆明洲发来的消息。 韩路一赶紧打电话过去。 “问了我几个数据。”陆明洲说,“订阅数,增长率,月收入。” “这是好消息还是坏消息?” “是个好信號。”陆明洲说,“问数据,说明他有动作。如果只是客气,最多说“我帮你转一下”,就没下文了。我一会把数据整理好发过去。” “行。” bugkiller付费客户群里冒出一条消息。 “问一下,codesafe企业版真的免费了?我们行业群好几个人在说。” 韩路一看到了,想回復,又忍住了。 苏念念在群里发了一句:“竞品动態不方便在群里聊哈,有疑问请隨时私聊我~”然后开了三个私聊窗口。 韩路一又查看了一下管理后台。 【退订通知】 【锐辰软体· pro月付→已取消】 【退订通知】 【鹏城云翼· pro月付→已取消】 嘆了口气,他切回编辑器继续写起了代码。 傍晚六点,陆明洲发来一条微信。 “通了。” 韩路一拿起手机。 “战投那边把材料转到了天枢开发者生態部,生態部商务负责人姓周,周明远,他回復了——” 陆明洲转发了一张截图。 “周五有空,韩总方便来一趟吗?” 韩路一看了一下日历。今天周二。 三天。 他把这事发给苏念念,马上电话就响了。 “怎么联繫上的?” “陆明洲那边的关係。天枢战投转到了生態部。” “太好了!太好了太好了!”苏念念的声音像鬆了一口气,“我去准备天枢的差异化方案,他们跟青岳不一样,天枢云用户画像偏大中型企业。” 韩路一说:“v1.3版本快写完了,应该比以前快不少,我这今天晚上就把它上线,我们拿新版本的数据去见天枢。” 截止到周四晚上,一共流失了五个客户。bugkiller的日活曲线平稳上升,付费曲线转向下滑,两条线像剪刀一样慢慢张开。 韩路一出门取外卖的时候,看到门口放了一个牛皮纸文件袋。 上面贴了一张便签,是清秀的楷书:“品牌初稿,你先看看,不满意我再改。” 他把文件袋和外卖一起拿进屋,拆开。 一共三套完整方案。每一套都有配色板、字体选择、icon变体、简版ui示意图。 第二套的瓢虫造型最好看,几何化的七星瓢虫,翅膀微微张开,线条乾净利落。底下附了標语:“because every line matters(每一行代码,都值得被认真对待)”。 韩路一坐在餐桌上,翻看了半天。 给林晚晴发了条微信:“第二套完美,可以把资源发过来吗?” 林晚晴回了一个ok的手势。 收到后韩路一把资源包发在了【源码科技高管群】里:“品牌形象升级啦。” 【陆明洲 frank】:“很有辨识度。” 【苏苏念念】:“太好看了吧!这套设计至少值十万啊!” 韩路一又跑去私聊林晚晴:“记得把帐单发给我。” 又是一个ok。 …… 周五早上八点,韩路一在整理天枢见面的材料。 苏念念带了早餐来502和韩路一一起吃,两杯豆浆,一盒包子,两根油条。 进门坐下,刚把吃的在餐桌上摆开,手机响了。 来电显示:青岳-梁宇。 “韩总。” 梁宇的声音既不热情,也不愤怒。 “听说你们在跟天枢接触?” 韩路一也没打算隱瞒。 “我想多评估一下。” 电话那头安静了一会儿。 “那我们的独家方案先搁置一下吧。”梁宇说,“等你们想清楚了再聊。” 没等韩路一说话,对方已经掛了。 苏念念坐在餐桌对面,手里的肉包才吃了一半,赶紧嚼了几口才开口:“是青岳?怎么了?” “没事,都在射程內。” “你別逞强啊!他们反悔了?” “也不是反悔,想嚇我一下。” 苏念念换了个方向:“天枢那边的消息怎么传出去的?” “云服务圈子就这么大,天枢评估我们,总会有人注意到的。” 韩路一想起在青岳会议室里视界的提示:【撤迴风险:若同期接触竞对云,青岳將改变態度】。 都在射程內。 苏念念看著手里的包子。 “那现在是最坏的情况了?青岳反悔了,天枢还没谈上,连订阅数也在掉。” “不是最坏的,最坏的是签了青岳的独家,成长上限绑死在一家云上。”韩路一把天枢的方案文件推到苏念念面前,“都在射程內,相信我!” 苏念念看向他。 “青岳会回来的。”韩路一说,“先见天枢。” 窗外传来洒水车的声音。八月底的海城,早晨八点已经三十度了。 两根油条还在纸袋里,谁都没动。 距离和天枢的商务负责人见面,还有两个小时。 第四十一章 寸步不让 韩路一和苏念念从网约车上下来,比约定的时间还早十分钟。 苏念念走进大楼的时候抬头看了一眼招牌,“你有没有觉得,他们招牌比青岳低调?” “青岳是做c端起家的,招牌要醒目。天枢主要做企业客户,越低调越显得稳重。”韩路一猜测,苏念念点了点头。 电梯到十八楼,两人向前台报了名字。等了两分钟,一个穿浅灰色西装的男人快步走了出来。 “韩总,苏总?我是周明远,快请进。” “幸会。”韩路一和周明远握了握手,三人一起走向一个会议室。 周明远看上去四十出头,头髮有些稀疏,语速比梁宇慢一半。 “战投那边把材料转过来,我看了。”他开门见山,“四十七个付费团队部署在我们这,这是个很好的基础。” “我们天枢云上的付费客户,好几家都提过原生集成的需求。”苏念念把平板推过去,“整理了一份反馈匯总,您看看。” 周明远翻了两页,合上了。 “数据源是客户自己报的?” “我们做的抽样调研。” “嗯。”他把平板放回桌上。 韩路一打开视界。 【周明远|42岁|天枢云·开发者生態部商务总监】 【情绪:谨慎(隱藏:兴趣)|核心关注点:客户留存率+生態完整性|內部评估:bugkiller对天枢云用户有实际粘性价值|谈判风格:务实,重视数据】 “苏总,可以把后台打开,让周总看一下实时数据。” 苏念念看了韩路一一眼,打开bugkiller后台,平台筛选切到天枢云,把平板递过去。 周明远接过平板,边看边向下滑动,在延迟监控那栏停了一会。 “这个管道延迟,大团队能到多少?” “八分钟。”苏念念说,“小团队三到四分钟,中型五到六分钟。非原生接入多了一层中转,每次构建都得等。大团队一天跑几十次,影响很可观。” 周明远转向韩路一:“韩总,青岳那边,你们聊到什么程度了?” “青岳给了一个深度合作的方案,我们在评估。” “青岳的风格我了解,上来就排他,保底换绑定。”他把平板还回来,“我们的思路不一样,我们要做最好的客户体验,所以我更看重bugkiller能给天枢云用户带来什么。” “理解。”韩路一说,“我们准备了一份合作方案。” 苏念念把平板切到陆明洲做的方案文档,递迴去。 周明远滑到天枢专属適配那一节。 “这个缓存层是新加的?” “这周上线的。我们在缓存层针对天枢云的api做了优化,大团队延迟能从八分钟压到四五分钟。但要真正解决,还是得靠原生集成。” “方案发我邮箱一份,我带回去走程序,我老板就能拍板,不用层层审批。”周明远把平板递迴来。“下周给你答覆。” “期待。” 电梯里,苏念念呼出一口气。 “你刚才为什么突然让我开后台?” “他不信咱们的报告。”韩路一看著楼层数字往下跳,“是个务实派。” “你觉得能成吗?” “不是和你说了吗?都在射程內。” 出了天枢大楼,韩路一看了眼街对面。 “走吧,吃完再回去。跟明洲说一声,让他自己点外卖。” 苏念念发了条微信给陆明洲,两人拐进旁边一家麵馆。 “你说周明远会不会今天就跟他老板匯报?”苏念念端起碗吹了吹。 “吃饭不聊工作啦。” 苏念念笑了一下,讲起昨天在小黄书上看到一个產品经理转行做烘焙的帖子,阅读量十万加,底下全是“我也想辞职”。韩路一说你现在不就是辞职状態。苏念念说我这叫创业,不一样。 面吃到一半,韩路一的手机响了。 是一个陌生號码。 “请问是源码科技的韩总吗?我是崑崙云开发者生態部的陈凯。” 苏念念的筷子停在半空。 “陈总,你好你好。” “是这样,我们注意到贵司最近在跟青岳云和天枢云接触,崑崙云在ai开发者工具这块也在布局,想问问韩总有没有兴趣聊聊?” “有兴趣,什么时间?” “下周三下午方便吗?我们周四在海城有个活动,我提前一天过来。” “好,我加你微信,具体时间咱们微信上对。就是这个电话对吗?” 韩路一掛了电话,转头看苏念念,明显憋著笑。 苏念念低头吃麵,头都不抬:“吃饭不聊工作哦。” “所以你们不仅见了天枢,崑崙还找上门来了?” 回到502已经快两点了,苏念念把天枢和崑崙的事一口气说完,陆明洲惊讶的张了张嘴。 “两家都不绑独家?” “天枢明確不绑。崑崙还没聊条件,但他们主动找来的,姿態不会太硬。” “那就差青岳了。” “青岳会回来的。” …… 八月底的阳光透过梧桐树的枝叶在青砖路面上投下一片片碎影,沿街的老房子底楼全改了商铺,奶茶店和杂货铺挤在一起,空气里混著说不清的味道。松风茶社藏在一条弄堂尽头,门脸只有半间宽,门口掛著褪色的木牌。地方是陈凯让人订的。 韩路一一个人来赴约。 陈凯大概四十出头,头髮灰白,梳了个大背头,穿一身灰色高级西装,看起来像金融人多过像网际网路。 他给两个人都倒上普洱,然后把茶壶放到一边。 “韩总,我就直说了,鼎盛的codesafe气势太凶,崑崙不能什么都没有,我这次来是带著诚意的。” 韩路一打开视界。 【陈凯|41岁|崑崙云·开发者生態部高级商务经理】 【情绪:坦诚(隱藏:急迫)|核心动机:高层施压,一个月內必须落地ai工具合作|谈判底线:分成可让到92/8】 陈凯从公文包里抽出一份文件推过来。 “这是我们的方案。非排他,收入分成八五一五,月保底十五万,推广资源另算。” 韩路一端起茶杯喝了一口。 流量上来,分成可观,保底就没用了。保底不值得爭,分成才是长期的钱。 “保底可以,分成我想聊聊。” 陈凯没预料到他不谈保底:“八五一五是我们標准条款。” “標准条款是给標准產品的。”韩路一说,“陈总,我要92%。” 陈凯拇指在杯沿上转了一圈。 “九零一零,我能拍板。“ “92%。”韩路一说,“这是我的出价,不会变了。” 陈凯拍了一下大腿。 “韩总,寸步不让啊,这个超过我权限了,得请示一下领导。”他说著站了起来,拿著手机走出门外。 韩路一静静的坐著。 几分钟后,陈凯回来了:“韩总,好消息,领导同意了。等我回去走流程,把新方案发你。” “合作愉快。”韩路一站起来说。 源码科技的高管们围在502的一张白板前。 天枢:非排他/二十万保底/ 85% 崑崙:非排他/十五万保底/ 92% 青岳:- 陆明洲出了一口气:“就差青岳了。” 韩路一看著白板上那个空白:“青岳会回来的。” 手机响了。 来电显示:青岳-梁宇。 502安静了下来,苏念念看到屏幕,坐直了身子。 韩路一接起来。 “韩总,上次的事……处理得有点急。” 第四十二章 刚才是我说话太大声 “韩总,上次的事……处理得有点急。” “梁总,请讲。”韩路一回道。 “合作的事,我回去跟领导又沟通了。”梁宇的声音很乾涩,“排他条件可以放开,我们愿意重新谈一版。” “欢迎,梁总,我们约个地方。”韩路一说。 “不用不用,韩总给我个地址,我现在过来。” 掛了电话,韩路一把地址发过去,很快梁宇回了信息。韩路一抬起头:“他一小时后到。” 苏念念清了清嗓子,举起手机假装贴在耳边,压低声音:“韩总,对不起,刚才是我说话太大声了……哈哈哈!”还没说完,她自己先绷不住笑了,手机差点掉桌上。 韩路一也笑了起来:“一会儿可別这么囂张,不然真谈崩了。” 苏念念白了他一眼:“我知道。” 陆明洲默默站起来把白板上的字擦掉了。 梁宇比约好的时间早了五分钟。 门响了三声,苏念念起身去开门。 梁宇站在门口,穿著一件藏蓝色短袖衬衫,手里拎一个黑色公文包,胸口已经被汗透了一大片,正在微微喘气。 “梁总,不好意思,草创阶段,条件比较简陋。”韩路一说。 梁宇笑了笑:“没事,当锻炼。” “苏总你见过了,介绍一下,这是我们公司的cfo,frank。”韩路一指向陆明洲,两人握了握手。 梁宇接过苏念念递过来的水,目光扫过房间,在白板前停了停,他在上面看到些没擦乾净的痕跡。 他把水放下,在餐桌前坐好,打开公文包。 “韩总,我带了一份新的方案,你先看一下。” 梁宇觉得韩路一看他的眼睛似乎亮了一下,对方已经接过方案低头看了起来。 快速看完,韩路一抬起头:“梁总,非常有诚意,我这边只有一些小要求。”说著韩路一拿起笔在方案上写了几笔。 梁宇拿回来看了起来。 非排他合作协议,月保底十五万,收入分成88/12,这些都没动。 推广资源包:首页banner位轮播从三天改成十天、开发者邮件推送从季度改成月度、技术沙龙联合举办每年一次改成季度一次。 梁宇刚止住的汗一下又出来了,房间里只有老式空调的嗡嗡声。 过了好一会,梁宇开口了:“我带回去走流程,儘快给你答覆。” “合作愉快。”韩路一说。 梁宇站起来,把文件装进公文包。 韩路一送他到楼下。走到单元门口,梁宇停了一下。 “上次那个电话,確实是我判断失误。” “梁总在那个位置做那个决定,我理解。”韩路一伸出手,“来日方长。” 梁宇握了握,转身走了。 梁宇来之前,源码三人已经商量过了,青岳的企业用户体量太小,既然签约,就要用他们的优势在个人开发者中打开市场。现在这个结果,战略目的达到了。 韩路一上楼回到502,陆明洲已经在白板上把数字重新写上了。 天枢:20万保底/ 85% 崑崙:15万保底/ 92% 青岳:15万保底/ 88%+推广 直接订阅:10万 ——————————— 月收入合计:60万 苏念念举著手机对著白板拍了一张。 “別发朋友圈啊。”韩路一说。 “发给顾律师。”苏念念又白了他一眼,“三份合同得审。” 陆明洲清了清嗓子,两人都看向他。 他在50万下面划了道线,转过身来。 “三家云上架之后,按现有付费用户规模和增长趋势估算,分成超过保底之前,收入每月增加五十万。我们大部分客户会迁移到云平台,剩下的直销渠道的付费客户,大概每月十万元。但是接下来的增长才是大头,我们观察一下趋势,下个月我出个报告。” 陆明洲在白板右边画了个简单的公式。 “给saas公司估值,vc一般看的是arr乘数。arr,annual recurring revenue,就是年度经常性收入,可以简单的把月收入乘以十二。” 他写下:60万x 12 = 720万 “保守按月入六十万算,arr七百万。这个赛道现在热,给五到八倍不过分。” 700万x 5~8 = 3500~5600万 “也就是说,源码科技现在值三千万到五千万。” 苏念念盯著白板上的数字。 “三个月前註册资本一百万。”陆明洲敲了敲白板,“这叫增长溢价。但估值是估值,要变成真金白银,得让vc看到增长曲线能持续。当然,这只是一种估值模型,我们的增长加速也没有考虑进去,回头我出个完整的估值报告。” “还有件事得提一下。”陆明洲把白板笔插回去。 韩路一看他。 “咱们得招人了。” “这事我也想说。”苏念念接过话,“三家云的对接都需要人手,產品加运营我一个人快顶不住了。开发也得招几个,总不能一直靠你这个ceo吧?” “最少招两到三个开发,一个財务出纳,一个运营。”陆明洲掰著手指头,“加上我们三个,六七號人。” 他环顾了一圈客厅,“还得租个办公室,你家呆不下了。” 韩路一站起来走到窗边。对面楼的阳台上有人在收被子,楼下的梧桐树被风吹得沙沙响。 他手搭在窗框上,指腹蹭了一下窗台上积的薄灰。 “远郊找个共享办公空间。”他说,“便宜,工位够。” “招聘呢?”陆明洲问。 “出纳给你来面。”韩路一说,“其他的岗位我和念念来,咱们一会写一下jd(job description,职位要求)。” 陆明洲看了眼腕錶,拎起包。 “六点了,我得走了。” “明洲哥——”苏念念抬头,“你就不能有一次加个班?” “不能。”陆明洲拉开门,头也没回,“老婆等我回去做饭。” 门关上了,502又只剩两个人。 韩路一看向苏念念:“要不你也早点回去?別显得我是黑心资本家。” 苏念念朝他做了个鬼脸:“我也是合伙人!怎么,捨不得请我吃外卖啊?” 韩路一站起身来:“今天不吃外卖了,咱们下馆子去。” “真的啊,吃什么?” “酸菜鱼?” “那我要吃变態辣!” 第四十三章 四人公司 韩路一早晨出门的时候,正好501的门也开了。 林晚晴蹲在门口,正在帮朵朵调书包带。朵朵穿著白色校服衬衫,领子塞进去了一半,书包比她整个后背还宽,背上去晃晃悠悠的。 “路一哥哥!”朵朵一看见他,蹦了一下,“我要去上小学了!” 韩路一蹲下来跟她平视:“哇!你都要上小学了!” “一年级三班!”朵朵举起三根手指。 接著朵朵转了个圈让他看书包,书包侧面掛了个手工瓢虫掛件,红色的布里面填了棉花,黑点大小不一,针脚歪歪扭扭,看起来像是朵朵自己缝的。 “我缝的!妈妈没有帮我!”朵朵弹了一下瓢虫,“跟你的那个像不像?” 因为朵朵的书包太大了,韩路一忍不住伸手提了提,没想到出乎意料的轻,是空的。 林晚晴看出了韩路一的疑惑:“今天开学,要领课本回来。” 朵朵扯著林晚晴的手往楼梯走:“妈妈快走快走,迟到了!” “来了来了。”林晚晴被拽著走了两步,回头冲韩路一摆了摆手。 母女俩的脚步声顺著楼道往下,两人的声音飘上来。 “妈妈,学校会有幼儿园老师吗?” “嗯……会有老师。” 楼道安静下来。韩路一锁好门,拎包出门。 早高峰的二號线,韩路一被夹在两个西装男之间,一手抓吊环,一手回消息。半年前他也是这么通勤的,不过那会儿是去鼎盛上班,现在是去源码上班。 地铁还是同一趟地铁,只是距离更远了。 今天还约了顾司玥,三份合同审完了,中途下车取一趟。 咖啡馆在地铁站出口左转,工作日早上人不多。顾司玥坐在靠窗位置,面前一杯咖啡已经见底了,手边还放著一杯没拆封的冰美式。 韩路一在她对面坐下,她已经把三份合同拿出来摊在桌上了。 “都审过了,改了两处。”顾司玥翻开第一份,指尖点在標註的位置,“青岳的合同,把推广的条款细化了一下,包括banner的位置,时长,防止对方玩文字游戏。” 翻到第二份。 “天枢的数据归属条款,“合作期间產生的数据”,这种写法上了仲裁庭可以被隨意解释。什么叫產生?谁產生?在哪儿產生?我加了限定句,你看一下。” 韩路一翻了翻,每处修改旁边都贴著铅笔批註的便签纸,字跡工整,逻辑链条画得清清楚楚。 “其他没问题,约时间签字吧。” “顾律师,靠谱。” “別夸,算钱的。” 韩路一把合同装回袋子:“那不一样,合同签完请你吃饭。” 顾司玥已经拿起外带杯站起来了。 “签完扫描件发我。” “收到。” 韩路一给自己点了一杯美式外带,再上地铁,到办公室的时候已经快十点了。 张江共享办公三楼,8人间的独立办公室,门口右手边掛著bugkiller的瓢虫logo,红底黑点。 窗外不再是菜场弄堂了,而是高架桥和塔吊,张江的天际线。 他把包搁在自己位置上,两个显示器全开著代码,桌上孤零零的一个机械键盘和一个电竞滑鼠,十足的资深开发工位,完全不像ceo。 对面陆明洲向他问了声好,两台显示器上满是报表,终於不用摊在餐桌上了。 苏念念出去接咖啡了,她对面的墙已经变成了巨大的看板:待办、进行中、已完成,一共三列,被彩色便签贴得密密麻麻,字跡小而圆,每张右下角都標著日期。 靠窗坐著周莉,陆明洲推荐的,他前同事的老婆,做了八年財务,昨天刚入职,桌上已经码了一排编好號的文件夹。 开发和运营还在招,现在是四人公司。 “韩总,苏总,来一下?”陆明洲站起来走到白板前。 韩路一和苏念念都走过来。 “我的估值模型更新了,给你们同步一下。” 陆明洲在白板左边写下现状:“目前月收入三十八万,codesafe攻势的失血基本止住了,这个月开始有回升。” “我拉了过去三个月的註册和付费数据。”他在白板上画了一条曲线,“自然增长,月均新增付费八十个团队左右。” 他在曲线上方画了第二条。 “上云之后平台自带流量,结合三家的开发者体量,按最保守的转化率估,这个数字至少翻三倍,半年內月收入破百万是有机会的。” 他换了支顏色的笔。 “上次估值我用的是已有数据,arr乘数五到八倍。现在三家云的条款落地,增长预期已经明確了,估值可以给到八到十倍。” 白板右侧,他写下一行: 估值区间:6000万—8000万 陆明洲把笔放回白板上,转向韩路一:“我下周约了两个风投喝咖啡,韩总,你和我一起去?” “我们要融资吗?”苏念念问。 陆明洲看向韩路一。 韩路一沉默了一会儿才开口:“先不急,现在bugkiller花钱的地方我看得到,融了资往哪花我还没想清楚。” 陆明洲说:“先混个脸熟,让他们知道我们是干什么的。” 韩路一点了点头,没有说话。 陆明洲的电话响了,他向两人示意了一下,走出去接电话了。 苏念念凑近韩路一,小声的问:“他是不是有点儿太急了?” 韩路一看著苏念念,轻轻的摇了摇头。 陆明洲快步走了回来:“韩总,你来看一下这个。” 他把手机递过来。 屏幕上是鼎盛集团官方公眾號,置顶推文—— “鼎盛云宣布:codesafe正式成为鼎盛云內置开发工具,所有鼎盛云用户即日起可直接使用,无需註册、无需付费、无需安装。” 不只是免费。 自动接入。 用户连选择的步骤都省了。 “鼎盛云有多少开发者用户?”苏念念一边说一边拿出手机。 “十五万家企业客户,”陆明洲说,“至少三百万开发者。” 三百万人,从今天开始,打开鼎盛云就有codesafe,连“要不要试试bugkiller”这个念头都不会有。 韩路一把手机递迴去,看向白板。 增长曲线,估值区间,破百万的预测。 还没来得及擦。 陆明洲收好手机,看向韩路一。 “下周,要不取消?” 第四十四章 游戏发展国 韩路一意识到苏念念和陆明洲都在看他。 “不用取消。“ 他的脸上看不出情绪:“去聊聊吧。” 陆明洲消化了一下,说:“行,材料我重新调一版。” 他走过去把白板上的数字擦掉了。 韩路一也走回自己的工位,打开电脑搜索起刚才的新闻。 codesafe单次代码扫描的推理成本是多少?bugkiller的成本他清楚,不便宜。codesafe的模型架构更重,只会更贵。永久免费,自动接入,三百万开发者,每人每天扫几次?这笔推理费谁出?拿云服务的利润补?那等於整个鼎盛云在养一个代码审查工具,图什么?不可能只为了针对他bugkiller。那就不是衝著他来的,是衝著生態来的,codesafe是赠品,就是为了让开发者留在鼎盛云。这样看情况没有一开始想像的那么糟,bugkiller的客户里在鼎盛云上的本来就不多,如果鼎盛要打生態战,崑崙天枢青岳三家反而是最应该著急的。 脑海里乱糟糟涌出一堆念头,最后也没有结论,这时候新闻页面已经加载完了,韩路一打开视界。 【鼎盛云·codesafe免费捆绑策略|核心目的:提升codesafe日活用户数】 就这? 跟刚才想的都没关係,就为了做高日活。 但做高日活干什么? 视界没给答案。 韩路一把苏念念和陆明洲叫过来又开了个小会。 “对我们的影响没有想像中大,而且会把我们和三家云绑的更紧。”韩路一说。 “定价会有压力。”她说,“人家免费了,我们月费三千。技术领队要买我们的產品,老板会问:“怎么不用免费的?”” “就像微软的copilot,虽然不好用,但也是个ai。”韩路一说。 说完冷场了,苏念念和陆明洲都没get到笑点。 “所以重点不是產品好不好,是让用户自己感受到差距。”苏念念接回刚才的话题,“得有人专门做这件事。另外社区建设也要做好,好好利用青岳的活动机会,再叫马小飞拍几条视频宣传一下。” “先招人吧。”韩路一揉了揉太阳穴,总结道。 招聘gg掛出去三天,已经收了七十多份简歷。 韩路一和苏念念面对面坐著,一人一摞列印简歷做初筛。 “这个。“苏念念举起一份,“自我介绍八百字,项目经验两行半。“ 韩路一瞄了一眼:“写小说的?“ 简歷拍到左边。 “这人连公司名都没改,“贵司腾云科技”。” “大概是脚本投的。” 翻了几份,苏念念忽然笑出声,把一份简歷转过来给他看。 精通office全家桶,擅长团建策划,热爱广场舞。 “投的什么岗位?” “后端开发。” 两人都笑了。 韩路一翻到下一份的时候,打开了视界。 面板弹出来的瞬间他就后悔了。 【张伟|31岁|后端开发·7年|简歷真实度:68%|项目经验夸大程度:中偏高|核心能力:java/spring中规中矩|短板:分布式经验几乎为零(简歷写“熟悉”)|情绪锚点:焦虑(三个月未就业)|离职原因:绩效末位淘汰(简歷写“团队解散”)|薪资心理底线:14k|谈判风格:被动偏迴避|谎言概率:简歷整体偏高|竞业状態:无|婚姻:已婚育一子|房贷剩余:127万……】 一份简歷,四十多个栏位,从技术能力到房贷余额全给列出来了。 他又扫了一眼旁边那份鼎盛p7的简歷,还是前司的同事: 【陈建业|35岁|后端/架构·12年|简歷真实度:94%|核心能力:大型系统架构设计|管理经验:5人团队|隱藏动机:过渡期,六个月內大概率跳走|风险:已在面另外三家|期望薪资弹性:极低|性格特质:控制欲强,习惯主导技术决策|团队適配:只服从技术强的领导……】 视界给的信息都很有用,但是也太全了。韩路一要判断的只有一件事:这个人值不值得约面试。但视界把所有的信息全摊在面前,看简歷反而比不开视界更累了。 他又翻了两份。每翻一份,面板就刷一整屏。技术能力和短板埋在一堆“薪资弹性”“谎言概率”“情绪锚点”中间,得自己挑。 像什么? 像一个api返回了完整的json,他只需要三个栏位,其余全是噪音。 这个不能自定义一下吗? 他放下简歷,闭上眼,开始想在视野里找到“设置”键。 念头一动,一个类似代码编辑器的界面弹了出来。 他愣了一下。 【精力:437/500】 直接掉了50点。 原来视界是可编程的啊? 他试著“写“了一条指令:输出栏位只保留核心能力、短板、工作风格、团队適配、稳定性、隱藏信息,过滤掉个人隱私。 他重新扫了一眼那份p7的简歷。 【陈建业】 【核心能力:大型系统架构】 【短板:需主导权,不適配小团队】 【工作风格:强控制型】 【团队適配:低(需更强leader)】 【稳定性:低(过渡期,六个月內大概率离开)】 【隱藏:同时面三家】 七行。比刚才干净多了。 韩路一玩心大起,又做了一番更改,再看同一份简歷。 【陈建业】 【技术s|协作c|稳定d】 【特技:大型系统架构】 【词条:控制狂|过客】 下一份—— 【李婷】 【运营a|协作a|稳定s】 【特技:无】 【词条:亲和|自驱】 再一份—— 【赵磊】 【技术a|协作b|稳定a】 【特技:分布式专精】 【词条:独狼|不粘锅】 韩路一又回去把刚才的广场舞大哥的简歷翻出来—— 【牛亦凡】 【技术d|协作a|稳定c】 【特技:广场舞】 【词条:串台|团魂】 嘿嘿,好玩。 “你笑什么?”苏念念抬头看向他。 “我感觉自己在玩《游戏发展国》。”韩路一说。 苏念念平时也玩游戏,知道韩路一在说什么:“要是开公司真像玩模擬经营游戏就好了,你又看不见属性面板。” 韩路一没接话,接著低头看简歷了。 【精力:337/500】 有点费精力,但是有点上头啊。 第四十五章 是活的NP老师! 嘀嘀嘀!嘀嘀嘀! 姜亦心从被窝里伸出手,在床头柜上摸了一圈才抓到手机,七点十五,准时。 她把闹钟按掉,眯著眼在床上刷了会小黄书。 然后翻身下床,洗漱,戴上隱形眼镜,对著镜子快速画了个淡妆。 平时出门她都是素顏,但今天不一样。 今天要去见nullpointer老师! 室友从床上探出头,睡眼惺忪:“这么早出门干什么呀?” “面试。”姜亦心抓起包,头也不回地跑出门。 室友挠挠头:“面试?她不是下周要去天枢入职了吗?” 是啊,下周一。 姜亦心站在地铁口,风吹起她的刘海。校招拿了三个offer,她精挑细选了据说wlb最好的天枢,还特意申请延迟入职,理直气壮地享受了人生最后一个暑假。 结果昨天同学群里有人发了连结:bugkiller在招人呢。 她就不得不来了。 说起来不好意思,她是np老师的脑残粉。np老师每发一篇博客,她都反覆研读,还推荐给系里的同学,有人一度以为她在传教。和codesafe的直播对战她全场看完,结束之后激动的睡不著觉。 地铁摇摇晃晃,姜亦心靠著门刷手机,np老师的博客已经两个月没更新了。 创业这么忙的吗? 张江高科站出来,她跟著导航走了十分钟,终於看到那栋不起眼的共享办公楼。 坐电梯到三楼,她找到了那个红色瓢虫logo。 她掏出手机,比了个剪刀手,和logo自拍合影,发给闺蜜:“我到啦!np老师我来啦!” 闺蜜秒回:“祝你好运,脑残粉。別忘了下周一去天枢入职。” 她没回,面试到早了。 她按了门铃,来开门的是一个年轻姐姐:“你也是来面试的吧?” “嗯。”姜亦心点头。 “先坐一下,韩总和苏总正在面试呢。”姐姐指了指旁边。 没有专门的等待区。办公室墙边摆著几把摺叠椅,其中一把上坐著个人。姜亦心环顾四周,没看见面试的房间。 走到摺叠椅上坐下,她旁边那位大哥禿顶的厉害,正愁眉苦脸地盯著手机。 看著就是个满级老开发。 姜亦心坐下,把包放在腿上。这地方跟她想像的不一样。 np老师的公司……就这? 101看书 追书认准 101 看书网,????????s.???超讚 全手打无错站 她也在几家大厂实习过了,高大上的写字楼,落地窗,绿植,穿著文化衫的年轻工程师走来走去討论代码。现在她坐在共享办公室的走廊里,旁边的饮水机发出咕嚕咕嚕的声响。 她偷瞄旁边的大哥。 大哥正好也抬起头,俩人对上眼。 “您好,”姜亦心主动搭话,“您也是来面试的?” 大哥上下打量她,眼神里带著点审视:“鼎盛,p7,十年经验,带过团队。你呢?” 姜亦心没反应过来,这是在,报菜名? “我……刚毕业。” 大哥嘴角扯了扯:“小公司,估计问的问题都不专业。” 姜亦心眨眨眼。 不专业你还来? “下一位面试者,陈建业。”一个声音传过来。 “不是什么好学校吧?”大哥站起来,整理了一下衬衫领子,“这种地方也就是你们没经验的才会考虑,有机会还是去大厂,那技术,不一样。” 姜亦心一口老槽堵在胸口不吐不快,转过头去假装没听见。 大哥走了,脚步声在走廊里迴荡。 姜亦心又观察起来,墙面是块大看板,贴满了便利贴,五顏六色。她眯著眼看,似乎是產品需求拆分,用不同顏色区分优先级。 看起来……好像也没那么不专业? 又偷瞄了远处的工位,机械键盘和电竞滑鼠,那个桌子,是开发的吧? 掏出手机刷了会。 “你是姜亦心吧?” 她抬头,一个穿米色针织衫的漂亮姐姐站在面前,笑得很甜。 “我是苏念念,请跟我来。” 这不是np老师的合伙人吗?亲自来接? “用过bugkiller吗?”苏念念边走边问。 这问题不在姜亦心准备的八股文范围內:“用、用过,我是付费用户……” 苏念念带路,顺手从抽屉里拿了瓶水塞给她:“会议室在外面,共享办公就这毛病,见谅。” 姜亦心接过水,才发现面试房间不在公司里面,是走廊尽头一间共享会议室,门上贴著一张“源码科技-面试中”的a4纸。 房间很小。 韩路一坐在桌子一侧,旁边和对面各有一把空椅子。 “姜亦心?请坐。” 是活的np老师! 姜亦心在对面坐下,腿有点抖。 苏念念坐在了韩路一旁边。 “我是韩路一,源码科技的ceo兼cto,这是苏念念,首席產品兼coo。” “我是姜亦心!”喉咙也有点发乾,“nullpointer老师你好!” 韩路一眉头动了动,眼睛很亮。 “先考察一些基础知识,数据结构这块……”他突然问了个很具体的问题,精准戳中姜亦心的知识盲区。 完了。 她张了张嘴,脑子里一片空白。她本来以为会,但是被问住了。 韩路一看著她,没催。 她磕磕巴巴地答了一半,自己都知道不对。 韩路一没放过她:“这个场景,数据量上去以后会出什么问题?” 姜亦心愣了一下,一般这时候面试官会换题,也有的会直接说答案。 她盯著桌面想了几秒,脑子里有什么东西闪过去:“会……內存溢出?如果同时处理太多请求……” “对。”韩路一点点头,“怎么解决?” “分页加载?或者……用队列异步处理?”她说得不太確定。 韩路一没评价,只是在本子上写了什么,然后问了下一个问题。 下一个问题,又精准地踩在她另一个薄弱环节上。 姜亦心脑子嗡嗡的。 完了,这个我不会。 咦,这个他怎么不问?我会啊! 不是……我本来是学霸的呀。 韩路一问了四五个问题,每个都像长了眼睛,专门往她不会的地方钻。 最后一个问题,她答上来了,而且答得还不错。 “苏总,”韩路一转头,“你有什么想问的?” 苏念念一直在旁边听著,这时候开口:“如果让你给bugkiller加一个功能,你会加什么?” 姜亦心讲了“用户视角”:“代码检测的实时提示,就是边写边报,不用等保存。” 赶紧又切回“开发者视角”:“当然这个功能对性能开销很大,需要做取捨,可能不適合所有场景……” 苏念念笑了笑:“不用紧张,这个功能我们正在考虑。” 接著又问:“期望薪资?” 姜亦心深吸一口气。 “我有个天枢的offer,32万,下周一入职。”她说得飞快,“我就是来看一下……” 韩路一的笔停住了。 苏念念低头看了眼桌面。 此刻的沉默震耳欲聋。 韩路一合上本子:“好的,我们会考虑的,感谢你来面试。” 苏念念去叫下一个面试者了,姜亦心透过打开的门看到,是个戴眼镜的男生,看起来很紧张。 她走出写字楼,阳光很好。 拿出手机来给闺蜜发微信。 【小姜(马上入职版】:“啊啊啊啊啊啊,我见到活的np老师了!” 闺蜜秒回。 【大刘(牛马版)】:“怎么样?真人帅吗?” 【小姜(马上入职版】:“超帅的!撕漫男!” 【大刘(牛马版)】:“面试难不难?” 【小姜(马上入职版】:“(哭)都没答出来,我被碾压成渣了” 【大刘(牛马版)】:“(抱抱)乖,往好处想,至少你不用因为收到offer纠结了。” 第四十六章 嘰里咕嚕说什么呢 计程车在內环高架上飞驰。 韩路一盯著窗外,陆明洲坐在旁边,膝盖上摊著笔记本电脑,屏幕上是密密麻麻的表格。 “对方是启禾创投的合伙人,林征。”陆明洲说,“启禾创投是早期基金,规模不大,十几个亿的量级,林征主导过三个成功退出。” 他顿了顿:“小基金投得早,三个退出算不错的战绩,说明他眼光和运气都不错。” 韩路一“嗯”了一声,脑子里还在想著下个版本的叠代。 “先模擬一下。”陆明洲打断韩路一的思绪,“如果他问了,你们和codesafe比有什么优势,你怎么答?” 韩路一想了想:“我们基於抽象语法树做深度静態分析,能识別代码语义层面的隱藏bug。codesafe是全量大模型,在大型代码库误报率高。” “停。”陆明洲摆手,“对方听不懂“抽象语法树”,也懒得知道什么是“语义层面”。” “那我怎么说?” “你要说:“我们有技术壁垒,codesafe只是表面功夫。”然后再补一句,“我们的准確率是行业平均的三倍,用户留存率能证明这一点。”” 更新不易,记得分享101看书网 韩路一皱眉:“他不是投科技领域的吗?” “投资人习惯的是翻译过的语言。”陆明洲用手指敲了敲电脑,“他们听的是信號。“抽象语法树”是噪音,“技术壁垒”才是信號。” “然后呢,第二题?” “现在codesafe在鼎盛云前面內置了,你们打算怎么应对?” 韩路一回忆著苏念念的话:“我们要做开发者社区,社区黏性是我们的护城河。” 陆明洲点头:“这句可以,但还得加强一下,你要加一句:“社区即数据,数据即模型,未来可以训练专属垂直大模型。”” “什么?” “这是现在的风口。”陆明洲笑了笑,“只要提到“大模型”,对方耳朵就会竖起来。” 韩路一沉默两秒:“咱们没用大模型。” “將来准备用也可以。”陆明洲说,“现在行业的热点是这个。” “那不是骗?” “投资的事怎么能说是骗呢?”顿了顿,他又说:“再说了,你真不打算用?” “到时候再说吧。” 陆明洲看出韩路一的兴致不高,他把电脑合了起来,又说了一句:“韩总,我这么问可能有点儿冒昧,但是到时候vc也会问的——” “你和苏总是恋爱关係吗?” 韩路一皱眉头:“什么意思?” “意思是,”陆明洲推了推眼镜,“他会评估公司有没有结构性风险,如果合伙人是情侣,分手就等於管理层分裂,投资人最怕这个。” “不是。”韩路一说。 “最近也不会是?”陆明洲追问。 韩路一看向窗外。 “不会。” “那咱们就统一口径:你们是业务合伙人,没有私人关係。” 计程车沿著延安路往西开,过了静安寺,在越洋广场门口停下。璞丽酒店的入口藏在竹林后面,门童穿著中式立领制服过来开门。 “这种场面还是头一次。”韩路一站在旋转门前。 “会习惯的,”陆明洲说,“放心,有我兜底。” 长吧在璞丽酒店一层,三十二米的吧檯贯穿整个大堂,晨光从侧面落地玻璃洒进来。 韩路一和陆明洲等了二十分钟。 陆明洲发了几条微信,是助理回復的:“林总在处理上一个案子,请您稍等。” 林征出现时穿著polo衫和运动西裤,像刚打完高尔夫。他身后跟著个年轻女孩,手里抱著文件夹。 “抱歉抱歉,迟到了。”林征坐下,“源码科技是吧?bugkiller,我听说过。” 女孩从文件夹里抽出几页纸递过去。林征接过,低头扫了两眼,抬头看韩路一:“韩总是什么学校毕业的?” 韩路一一愣:“交大。” “还行。”林征点点头,在本子上写了什么,“工作了几年?” “五年。” “都在鼎盛?”林征笑了笑,“我看材料,你离开鼎盛的方式……对创业公司来说,行业声誉风险怎么解决?” 陆明洲刚要开口,林征抬手制止:“我想先听听韩总的看法。” 韩路一看著他:“林总这是什么意思?” “好,换个问题。”林征靠在沙发上,“你们这个產品,日活多少?” “八千。”韩路一反问道,“开发者工具问日活有什么意义?这本身不是高频场景,我们的月活是两万。” 林征没理会:“付费率呢?” 陆明洲赶紧回答:“百分之一点四。” 林征笑了一声:“也就是说,两万个用户,只有两百个付费?” 他看向陆明洲:“frank,这数据你也敢带出来见投资人?” 陆明洲表情没变:“早期產品看增速……” “增速?”林征打断他,“鼎盛云的事,你们听说了吧?够人家塞牙缝的吗?” “这种背景下出来融资,”林征摇摇头,“说实话,我不看好。” 陆明洲开口了:“林总,我补充一下我们的增长曲线——” 然后他开始说黑话。 月环比、留存率、cac、ltv、arr增长斜率。 林征和陆明洲你来我往,越聊越快。 韩路一脑袋嗡嗡的,好像旁听了加密通话,他们嘰里咕嚕说什么呢? 他打开了视界。 淡蓝色的界面展开,锁定林征。 【林征|38岁|启禾创投·合伙人】 【情绪:敷衍(隱藏:优越)|核心诉求:快速结束|投资意向度:3%】 【核心判断:小工具型项目,赛道拥挤,天花板低】 【风险评估:鼎盛入局=项目死亡】 韩路一站起来打断了两人的加密连结:“今天就到这吧。” 三个人惊讶的看著他。 “现在没什么好谈的。”韩路一面无表情,“等我们有阶段性进展了再说。” 他说完就走,没等任何人回应。 陆明洲朝林征点了点头:“林总,不好意思,我们再联繫。”说完赶紧跟了上去。 一直到坐上计程车,两人谁都没开口。 司机在听交通广播,主持人正在播报天气。窗外开始下雨,雨滴斜斜地打在玻璃上。 韩路一打破了沉默:“老陆,我知道你急著证明自己的价值,现在每天做管理財务,你可能觉得屈才了。” 陆明洲说:“韩总,我不是……” 韩路一举起一只手:“让我先说完,咱们现在没那么大资金压力,也不急著做高估值。” 韩路一看著陆明洲的眼睛:“你要是心里有疑虑,我可以做主以五千万的估值回购你的股票。” “韩总,我对源码科技有信心,”陆明洲说,“也对你有信心。你的意思我懂了。” “你放心,我们会把源码做上市,有你发挥的舞台。”韩路一说。 司机从后视镜往后面瞥了一眼,並不奇怪,在海城这种地方,到处都是这种创业者。 “说实话,我也没想到。”陆明洲嘆了口气,“以前做fa的时候,林征还挺客气的,位置不一样了啊。” “他对我们没兴趣。” “韩总,我看出来了。”陆明洲说,“但你至少等我说完啊。” “上赶著不是好买卖,没必要。” “有必要。”陆明洲转头看他,“融资不是只看这一家。圈子很小,你今天甩脸走人,明天整个浦东的投资圈都知道你“难搞”。” “我难搞没关係,只要数据好,他们会来找我们的。” 计程车拐上高架,雨刷器有节奏地摆动。 雨下的更大了。 第四十七章 她也这么想 计程车到张江共享办公楼下的时候,雨已经停了。 韩路一推开公司的门,就听见一个熟悉的大嗓门从里面传出来。 “不是,你们这墙上贴的啥?全是英文?苏念念你们创业也太卷了吧!” 马小飞正蹲在苏念念的看板墙前面,一张一张扒拉便利贴。 苏念念靠在桌边,抱著胳膊看他:“你別动我的看板。” “我就看看,就看看。”马小飞把一张便利贴举到眼前,“这写的“p0 blocker”,啥意思?” “求求你上两天班吧马小飞。” 韩路一走过去,马小飞抬头一看,嘿嘿一笑,然后上下打量了一遍:“韩总,下次换身西服,不然拍出去都没人信你是老板。” “大老板才不穿西服呢。”韩路一又想起刚才林征的做派,“刚才见那个风投合伙人,就像刚从球场上下来。” “什么球?篮球?” “高球。” “不愧是韩总,品味提升的就是快。”马小飞站起来,竖了个大拇指,然后环顾了一下四周,说,“臥槽,说真的,你们这办公室可以啊,张江啊!鸟枪换炮了!比你的出租屋强多了!” 陆明洲跟在韩路一后面进来,冲苏念念点了点头,径直回到工位坐下。 苏念念和韩路一打了个招呼:“谈的怎么样?” 韩路一说:“不怎么样,谈崩了,一会儿跟你细说。” 马小飞插进来:“老韩,先带我去喝杯水,苏念念我们一会再来找你啊。” 走到茶水间,韩路一递给马小飞一听冰可乐,给自己倒了一杯水。 马小飞的注意力已经被墙上的瓢虫logo吸走了:“这谁设计的?真漂亮,有科技感。” “一个设计师朋友。”韩路一说。 “女的吧?”马小飞回头,一脸“我懂”的表情。 “你来干嘛?”韩路一懒得理他。 马小飞说:“苏女神叫我来的啊,给你们拍宣传视频,社区建设嘛。” “需要我配合吗?” “那个一会再说。”马小飞凑近韩路一,压低了声音,“快闪被鼎盛收购了,你知道吗?” 韩路一喝水的手停住了:“你哪来的消息?” “老周跟我说的,36度的那个老周,还没官宣,但基本实锤了。”马小飞说,“破產重组了,鼎盛开了个打包价。” 韩路一放下杯子,没说话。 “你表情不对啊。”马小飞盯著他,“这不是好事儿吗,丁仁打铺盖走人了,没人追查你了。可惜落到鼎盛手里了,可鼎盛和你也没仇啊。” “我总觉得哪里不对。” 韩路一掏出手机给顾司玥发了条消息: “快闪被鼎盛收购了,举报那块有没有法律风险?” 消息发出去不到一分钟,顾司玥回了: “监管渠道举报人身份受法律保护。除非对方以誹谤罪主动起诉並申请法院调档,不会直接暴露。我们的举报已经被证实,就算起诉也不会受理。” 过了几秒,又来一条。 “別担心,出事了找我。” 韩路一回了个“好”,把手机收进口袋。 “给谁发信息呢?” 马小飞不知什么时候凑了过来。 “法律顾问。”韩路一说。 “上次那个女律师吧。”马小飞又是一脸“我懂”的表情。 韩路一喝了口水,没看他。 “嘿,我就隨口一问。”马小飞换了个表情,“但是说真的,苏女神怎么跑你这了?不是“帮”你看產品吗?” 他在“帮”字上加了个重音。 “她自己要来的。” “我说的不是这个,”马小飞说,“大学那会儿,整个系都觉得你俩能成,系花系草嘛,天造地设,怎么就没成呢?” 韩路一皱眉:“別瞎说,让別人听见了误会。” “就咱俩你怕什么?”马小飞不以为然,“再说,我又不是瞎说,那次你俩——” “马小飞!”韩路一压低声音。 “行行行。”马小飞举手,“就问一句,你们现在到底什么关係?” “好朋友。”韩路一说,“跟咱俩一样。” “跟咱俩一样?你被裁那会儿,”马小飞把声音放低了一点,“她可是主动来找我打听你的事。” 韩路一没接话。 “你们俩別光閒聊了,过来聊聊项目的事。” 苏念念的声音从两米外传过来。 马小飞秒切频道,转身迎上去,嬉皮笑脸:“苏总!我正要跟你说呢。” 韩路一站在窗边,雨已经彻底停了,云还没有散,路面还是湿的,反射著灰白色的天光。 马小飞已经拉著苏念念坐下来,开始掰扯他的社区內容方案:“现在的开发者科普,要么太硬核看不懂,要么太水没营养,我是技术和趣味都有,垂直赛道做了十几万粉,太对口了。” 苏念念说:“內容要体现產品,但不能像gg。” “你这要求是老甲方了,这我懂,”马小飞一拍大腿,“硬广等於反效果,我的做法是把bug案例做成故事讲,程式设计师最爱看什么?別人写的bug。你们帮我提供真实案例,我来包装,三分钟一条,保底十万播放。” “十万?”苏念念挑眉。 “最少。”马小飞竖起一根手指,“开发者群体的內容消费量被严重低估了,信我,专业的。” 苏念念看了韩路一一眼,韩路一点了下头。 “行,你回去写个策划方案发给我。”苏念念说,“模板、频率、分成方式,写清楚,记得给折扣啊。” “收到!”马小飞啪地立正,“苏总办事就是利索。” 马小飞收拾东西准备走。 苏念念拦住韩路一:“路一,发出去的offer都接了,但这些人面试的时候我都在场,怎么说呢,你確定吗?” 韩路一知道她在说什么,新招的三个开发,苏念念和他之前討论过,有点分歧,但他看过牌了。 “李婷匯报给你,开发我直管。”韩路一说,“放心,我有数。” 马小飞说:“韩总,都招人了?牛逼啊,有漂亮妹子吗?” 韩路一拉住他:“別八卦了小马哥,走吧,我送你下去。” 电梯门关上,马小飞又问了一句: “朋友,你確定,她也这么想?” 第四十八章 拯救世界的第一天 入职第一天,姜亦心特意比上班时间提前了半小时。 天吶,我真是疯了撕了天枢的offer来创业公司!家里人知道了会骂死我的! 算了,少掉的年薪就当花钱追星了,让我这个老少女也疯狂一把。 姜亦心输入邮箱里的一次性密码,推开门,前台没人,准確说,没有前台。几张办公桌,几台显示器,墙上贴著上次合影的瓢虫logo。 工位上已经有人了。 一个男的,脸上好多痘痘,穿一件蓝色格子衬衫,坐在靠窗的位置,盯著屏幕一动不动。 他抬头看了姜亦心一眼,点了个头,继续盯屏幕。 完了,这位不会是传说中的大佬吧。 气场这么沉稳,专注度拉满,眼神里全是代码。別人上班是打卡,人家上班是修炼。看看他坐的座位,后排靠窗,这不是主角位吗? 姜亦心找了个空座位忐忑的坐下,也不敢去打扰心目中的大佬,只好默默的玩手机。 【小姜(奋斗版)】:天吶,来早了,整个办公室只有我和一个不知名大佬! 闺蜜没回,现在是她的站会时间。 到了快十点,人陆陆续续的来了,苏念念过来和姜亦心打了个招呼,说今天有三个开发入职,等人齐了一起办入职手续。 这时候门又开了,一个男的,穿红色格子衫,头顶反光明显,双肩包带子垮一边,踩著点进来的。 是那个满级大佬。 他扫了一眼办公室,目光掠过姜亦心,毫无反应。 不是,你不认识我了? 面试的时候你可不是这个態度啊,不是说小公司你看不上吗,怎么不止面试还入职了呢。 算了,大度一点,毕竟现在是同事了。 十点半,韩路一到了。 没有入职仪式,一人发了一台macbook、办公室门卡之后,姜亦心开了她职业生涯的第一个会。 站在两个格子衫身边,她觉得自己画风有点不对。 韩路一站在白板前面,说了一句“欢迎”,然后直接进正题。 “当务之急是三家云平台適配,一人领一个。” 简洁!不愧是np老师。 禿头大佬——叫陈建业,第一个开口:“韩总,我来统筹一下吧?这种多平台並行的项目,需要有人拉通协调。” 韩路一没看他:“不用,各领各的。” 姜亦心暗自摇头,面试的时候就一股子“我来教教你”的劲,上班了还这样。 韩路一接著说:“崑崙云比较复杂,交给陈建业;青岳云给赵磊;天枢云,姜亦心。有什么不懂的隨时来问我。” 姜亦心一震。 不要拷打我啊。 姜亦心偷瞄一眼韩路一,他表情没有任何异样。 痘痘大佬——赵磊,开口了:“韩总,青岳那边需求边界能明確一下吗?没有文档不好开展工作啊。” 韩路一:“一会我和你详细讲。” 赵磊点了点头。 十一点,姜亦心去茶水间接水。 撞见陈建业正在打电话。 “这破地方连个正经的项目管理都没有,分活分得稀烂。” 姜亦心悄悄竖起了耳朵。 “还要我去带新人,那女的刚毕业的吧?天枢的適配给她做?开什么玩笑。” 禿头大叔你说什么呢??? “算了,我先看看能不能把ci(自动部署)流程搭起来,不然这项目根本没法推。” 不愧是大佬,虽然不尊重人,本事还是有的。 姜亦心悄悄退出茶水间,没让他发现。 刚回到工位,韩路一走过来了。 “姜亦心,天枢的適配我带你过一下ci工具。” ci工具? “你刚毕业,天枢的接口比较规范,正好適合你学习,我先带你跑一遍流程。” 好的!np老师要亲自带我! 等等。 禿头大叔刚才在电话里说什么来著? “这破地方连ci都没有。” 那np老师现在打开的这个面板是什么? 自动化测试、代码审查、部署流水线,三个板块,流程图画得清清楚楚。 不是,ci明明就有啊。 禿头大叔不靠谱啊,吃枣药丸。 午休的时候,赵磊端著杯子走到姜亦心身边,压低声音:“小姜,跟你说个事。” 痘痘大佬要传授经验了。 “天枢那边需求有变动,记得留邮件,群里说的不算,口头的更不算。” “好的赵哥!” “还有,接口文档韩总给你之后,第一件事,確认版本號,別回头人家改了接口,锅扣你头上。” 谢谢你,不背锅侠。 过了一会儿,苏念念走过来。 “小姜,sql你熟吗?帮我跑个数据。” 我不是sql girl!我offer上写的是后端工程师! 心里很狂,嘴上很怂:“会一点。” 苏念念要的是bugkiller近一个月的用户bug提交分析,按用户分组,看提交频次和代码特徵分布。 姜亦心盯著结果看了一会儿。 哪里不对。 有一批用户组,bug提交密度异常高。不是那种偶尔提交几个的正常开发者,是持续、密集、几乎不间断。 更奇怪的是代码风格。 这批人的代码长得一模一样。变量命名规则、缩进习惯、错误模式,像一个模子刻出来的。提交时间也不像正常开发节奏,不是集中在工作时间,而是零星分布在全天,像有什么东西在反覆试错。 “苏总,这批用户有点奇怪。你看这个bug密度……” 苏念念看了看,皱了皱眉。 两个人交流了一会,没什么头绪。苏念念建了个文档把数据放了进去。 五点半,快下班了。 韩路一在飞书群里发了一条消息。 “下周云开发者大会,青岳给我们留了展位,我和苏总过去。运营人手不够,需要一个开发过去现场帮忙,閒下来可以逛逛展会,学习一下,自愿报名。” 群里安静了好一会,没人回復。 两个假大佬带不动啊,只有靠我小姜拯救世界了。 姜亦心:“我去。” 韩路一给那条消息点了个赞。 苏念念的私信马上到了。 “展会地址和时间表发你了。” 附言:“到时候別傻站著,多逛逛竞品展台,学学別人怎么吹。” 收到! 闺蜜的信息终於回了。 【大刘饿死了】:天吶!忙了我一天!午饭都没顾上吃!晚上去吃海底捞? 【大刘饿死了】:入职第一天怎么样?大佬牛逼吗? 【小姜(奋斗版)】:看错了,不是大佬,是不背锅侠。 【小姜(奋斗版)】:被当成sql girl了,但是我发现了一个案件。 【大刘饿死了】:是什么?侦探小姐! 【小姜(奋斗版)】:有一批用户,代码写的特別像!提交数还多,是不是流量攻击啊? 【大刘饿死了】:啥?ai写的唄。 【小姜(奋斗版)】:啊? 【大刘饿死了】:现在ai写代码火得很,很多代码小白也在用。我昨天试了,做个大差不差,就是有时候藏个bug找起来很烦,小白可能解决不了。 姜亦心锁了屏,起身去找苏念念。 第四十九章 氛围编程 苏念念盯著屏幕上的用户增长曲线,手指无意识地转著笔。 曲线还在涨,但不够快。 bugkiller上线四个月,付费团队两百多。这对一个创业公司来说不算差了,但她觉得以他们的產品实力应该做的更好,这是作为coo的责任。 真正的压力是codesafe。鼎盛云內置,免费,bugkiller的定价变得极为尷尬。codesafe不仅夺走了鼎盛云的用户,而且给其他云的用户锚定了心理价位。 bugkiller的画像变成了:好用,但是小贵,对於大部分不是刚需的团队来说,寧愿选择不买。 这已经不是技术的问题了。 这是用户心理的问题。 姜亦心抱著macbook走了过来,脸上写满了“我很兴奋”。 “苏总,下午那批异常用户,我有个想法,我们去会议室说?” “好。”苏念念起身,也拿起了电脑。 到了会议室,姜亦心把电脑往桌上一放,屏幕上是打开的csv文件:用户id、提交时间、代码片段、错误类型,各种原始数据堆在一起,密密麻麻。 “我按你说的跑了一遍,”姜亦心指著屏幕,“確实有问题。这批用户的代码,变量命名、缩进风格、甚至错误模式都高度一致,和正常程式设计师的个人习惯完全不同。我猜他们是ai生產的代码。” 苏念念扫了一眼表格,没看具体內容,先问:“数据量呢?” “占总活跃用户的17%,但贡献了32%的提交量。” “好。”苏念念打开飞书,“下次给我数据,先做这一步——” 她把csv拖进飞书多维表格,选了几列做透视,系统自动生成了图表。三十秒后,屏幕上跳出三个面板:提交频次趋势图、代码特徵分布饼图、用户行为时间热力图。 姜亦心愣了一下。 “原始数据是原材料,”苏念念说,“但人脑处理不了几千行表格。做商业智能(business intelligence,bi)的第一步,是把数据变成人能一眼看懂的模式。时间分布、行为聚类、异常標註,可视化不是为了好看,是为了让决策者能一眼抓住重点。” 她指著热力图:“你看,这个时间段集中,比你在表格里翻一千行提交记录更直观。” 姜亦心盯著屏幕,眼神从困惑变成恍然。入职第一天,她学到了真正的第一课。 “现在我们有可视化面板了,下一步是做什么?” 姜亦心眨眨眼:“什么?” “看用户数据,不要只看他们做了什么,要看他们是谁——这叫用户画像。” 苏念念把屏幕拉到用户註册信息那一栏,手指点了点。 “註册邮箱后缀,你看。” 姜亦心凑过来,目光快速扫过。 “……公司邮箱居多,但不是网际网路公司。有消费品的,有gg公司的,还有……地產?” “再看提交时间分布。” 姜亦心切到时间热力图。 “集中在工作日下午两点到五点?这不是……” “不是程式设计师的工作节奏。”苏念念接过话,“正常开发一般上午状態最好,提交高峰在上午十到十二点,下午三四点还有一波。这批人的高峰在中午一两点,持续时间短,像是趁午休在搞。” 姜亦心翻开用户分享的代码样本。 “苏总你看这个注释:“实现用户点击按钮后弹出確认框,確认后调用后端接口提交订单”。” 苏念念看了一眼。 “这不是代码注释。这是產品需求文档。” “对!还有这个:“页面加载时显示加载动画,数据返回后替换为列表”,写代码的人不会这么写注释。” 姜亦心的语速越来越快。 “再看错误类型:变量未定义、括號不匹配、函数名拼错,全是基础语法问题。真正的程式设计师就算水平差,也不会密集犯这种错,除非……” 她停下来,抬头看苏念念。 “他们根本不是程式设计师。” 苏念念没说话,但心里暗暗夸奖,引导到第三步的时候自己接上了,悟性好。 “那他们是谁?”姜亦心自问自答,开始在註册信息里挖职位栏位。 五分钟后,两个人对著屏幕上的饼图沉默了。 產品经理,28%;运营,22%;ui/ux设计师,18%;市场,12%;其他非技术岗位,20%。 没有一个是程式设计师。 “他们用ai写代码,”姜亦心慢慢说,“然后把ai搞不定的bug丟给bugkiller修。” 苏念念站起来,走到白板前。 “不只是修bug,你想想,这些人为什么要用ai写代码?” “因为……他们有想法,但不会编程?” “对,產品经理想做个原型验证需求,运营想做个活动页面,设计师想把设计稿变成可交互的demo。以前这些事都得排期找开发做,现在ai让他们自己动手了。” 姜亦心接上来:“但ai写的代码不一定对,跑起来有bug他们又看不懂。” “所以他们用了bugkiller。” 苏念念在白板上画了一条线,左边写“ai生成”,右边写“bug修復”,中间画了个火柴小人。 “这批人不是程式设计师,是用ai创造產品的人。编程对他们来说不是工作,是实现想法的手段。ai降低了门槛,但没降到零,中间这段gap,就是我们的机会。” 她在白板中间写下两个英文单词。 vibe coding。 “氛围编程?”姜亦心念出来。 “对,不用懂每一行代码,凭感觉、凭想法去创造,ai负责写,出了问题——” “我们负责兜底!”姜亦心抢答,“那他们写错了怎么办?不得找我们修吗?这就是给普通人的技术保险啊。” 苏念念转头看她。 这个比喻好——保险,给的是安全感。用户们不需要懂什么叫变量未定义,他们只需要知道:出了问题,有人兜著。 “对,这就是我们的价值。” 手机响了。 来电显示:妈妈。 苏念念看了一眼白板,说了声不好意思,走出去接电话。 “念念,周末有空吗?李阿姨那边介绍了个男孩子,银行的,条件蛮好的,去见见?” “不去,忙。” “你天天忙忙忙,忙到什么辰光?都二十七了,再拖下去好的全被挑走了晓得伐。” 苏念念把手机换了只耳朵。 “你爸说了,实在不行,你当年那个外地小孩,带回来让我们看看也行。” 苏念念的手指收紧了。 “当年就是你们不让的。” 电话那头顿了一下。 “当年是当年嘛,你倒是带个男朋友回来啊?” “外地人、没房、没户口,这些都不讲究了,”母亲语速变快,“你肯找就行,別单著就行。” “妈,我在开会。” 掛了电话,苏念念深深的吸了一口气。 姜亦心低著头翻数据,很识趣。 “刚才说到哪了。” “技术保险。” “嗯。”苏念念拿起马克笔,在vibe coding下面画了三个箭头,“这个市场有三个特徵。第一,用户基数大,任何有想法的人都是潜在用户;第二,付费意愿强,他们买的不是技术服务,是时间和確定性;第三,增速快,ai工具越普及,这个群体越大。” 她看了一眼姜亦心飞速记笔记的样子。 “走,跟我去找韩总。” 第五十章 救命稻草 苏念念和姜亦心从会议室出来,其他人已经都下班了。 只有韩路一在工位上,面前两块屏幕,一块开著代码,一块是用户后台。 苏念念站到他旁边,把刚才的分析讲了一遍。 韩路一听完皱起了眉。 “让不会写代码的人用ai写代码?” “纠正一下,是帮他们实现想法。” “那有什么区別?ai生成的代码质量你不清楚?让这些人批量生產垃圾代码,然后全丟给我们修?bugkiller的算力会被拖垮。” “数据已经在这了,17%的用户贡献了32%的提交量。而且这批人的个人付费率比程式设计师高得多,他们离不开bugkiller,不像程式设计师自己能修bug。他们已经在用ai生成代码了,没有我们,他们写的bug更多。” 韩路一靠回椅背。 “bugkiller是给程式设计师用的,这是我们的根基。” “那根基也快打到头了,codesafe免费、原生集成,专业程式设计师凭什么掏钱买bugkiller?两百个付费团队之后增长已经放缓,这不是平台適配能解决的。” “那是因为適配的平台还不够多,等云平台全部打通——” “打通之后呢?国內专业开发者总共几百万,但真正的增量在这些不会编程的人身上,几千万,甚至几亿。” 韩路一沉默了。 bugkiller从第一行代码开始就是为程式设计师设计的。每一个功能、每一个交互,都建立在“用户懂代码”的前提上。面向vibe coding用户,意味著重新思考產品逻辑、交互方式、定价策略,几乎是另起一条线。 “念念,这些人是来试著玩的。”韩路一的语气低沉,“今天用ai写个网页,明天觉得麻烦就不用了。留存率不会高,付费意愿也不会强。” “你怎么知道?” “因为他们不依赖代码生存。程式设计师离了bugkiller,代码质量下降,项目延期,这是刚需。產品经理离了ai写代码,回去写prd就是了,生活不受影响。” “错。”苏念念往前走了一步,“对程式设计师来说,bugkiller是优化工具,没有也能活,只是慢点。对这些人来说,bugkiller是救命稻草,代码跑不通,他们一点办法都没有。谁更愿意付钱?” 她说:“看这批用户的復购率。” 姜亦心一直在旁边听著,手里还攥著那沓列印出来的数据,闻声赶紧把数据放到桌子上。 韩路一低头看去。 非技术用户群的三十天復购率93.2%,专业程式设计师用户群82.7%。程式设计师的数字已经不错了,但这批“不会写代码的人”硬生生高出十个百分点。 韩路一抬头:“转化率呢?復购高是一回事,新用户愿不愿意掏钱是另一回事。” “还没算出来。”苏念念没遮掩,“这批用户进来不到两个月,样本量不够,下一步我会做。” “韩总,这里还有,”姜亦心把翻开下面的几张纸,“这是我找到的一些需求工单。” “有个用户在工单里写,“能不能加一个plus档,99的不够用,又不想买2999的”,还有这个,“程式设计师的工具配置起来太麻烦了,能不能一键运行啊”,都是付费用户的真实反馈。” 韩路一看了看,说:“今天太晚了,先下班吧。” 姜亦心识趣的后退了半步:“好的,我先走了,韩总再见。” 她转身回去收拾东西了,脚步轻快。 苏念念看著她的背影,等脚步声远了,才低声说:“我明白你为什么录用她了。” 韩路一抬眼看她。 “技术好不好我不知道,產品上有点天赋。”苏念念顿了顿,“用户工单她自己翻的。” 韩路一点点头,换回刚才的话题。 “让我想想。” 走出韩路一的工位,走廊尽头,苏念念掏出手机。 来电记录里“妈妈”还排在最上面。 她把手机塞回口袋,回工位收拾东西。 …… 海底捞的红油锅咕嘟咕嘟的冒著泡,番茄锅里漂著几颗番茄,香气直往鼻子里钻。 姜亦心涮了片毛肚,七上八下,捞出来蘸满香油碟,一口下去眼睛都亮了。 “我今天跟苏总学了数据分析。”她边吃边讲,“你知道什么叫用户画像吗?就是不看用户干了什么,先看他们是谁,太厉害了。” “你这个老板听起来有点东西?” 闺蜜大刘,刘昊宇,咬著鸭肠,含含糊糊地说。 “不是有点东西,是很有东西。”姜亦心放下筷子,伸手比划,“又温柔又颯,白板上画战略的时候那个气场,我当场就变成她脑残粉了。” “那nullpointer怎么办?” “我同时是他俩的脑残粉!” “那你们公司其他人呢?” 姜亦心撇撇嘴,夹了块肥牛丟进锅里:“別提了,同期进来的两个格子衫,一开始以为是大佬,其实都是奇葩,只能靠我奋斗小姜了。” “刚入职就挑大樑?” “那可不。”她得意地扬了扬下巴,“下周还要去云开发者大会呢。” 刘昊宇的筷子停在半空,眼睛都瞪大了:“开发者大会?我靠,我们总监才能去那个展。” “嘿嘿,羡慕吧?”姜亦心笑得眼睛眯起来,“和我的两个偶像一起。” “那你到时候可得多拍点照片,让我开开眼。” “放心,给你带纪念品。” 刘昊宇举起酸梅汤杯子,认真地看著她:“祝你们公司早日上市,姜总一路升迁,到时候把我招过去当小妹。” 姜亦心倒了杯水跟她碰杯:“行啊,到时候给你安排个首席拎包官。” “去你的。” 两人笑成一团。 …… 办公室里只剩下韩路一一个人。 他把姜亦心留下的数据翻了又翻。 视界。 半透明的光幕浮现在眼前,显出只有他能看到的数据。 【用户群分析完成】 【群组標籤:非技术背景创作者】 【月均增长率:34.7%】 【增长曲线类型:指数早期】 【预测付费转化率:11.3%(行业均值3-5%)】 【风险提示:当前產品交互未针对该群组优化,流失率偏高风险】 他关掉视界,走到窗边,天黑了,张江的写字楼一栋栋都亮著灯。 第五十一章 不用排期 海城世博展览馆,云开发者大会。 九月底的海城还很热,馆外的阳光白得刺眼,一进门空调冷风劈头盖脸。韩路一眯了下眼睛,適应了几秒。 展馆很大,三个主厅打通,少说几百个展位,人流密得像二號线。头顶的巨型横幅写著“ai redefine everything”(人工智慧,重新定义一切),下面是各种展台的灯光和音响在互相较劲。 bugkiller的展位在c区,靠角落。只有一张长桌,两个易拉宝,四台演示用的笔记本电脑,和一些纪念品物料。跟隔壁那些搭了巨型电子屏幕、请了咖啡师现场做拉花的展台比起来,显得寒酸了些。 “不错。”苏念念环顾了一圈,点了点头。 姜亦心倒是很兴奋,拿著手机拍了好几张展台的照片。上周新入职的运营李婷已经在调试演示电脑了。 远处a区正中央,codesafe的展位占了差不多两百平,巨型电视屏滚动著技术参数和客户商標墙,十几个穿西装的销售分散在展位各处。 韩路一看了一眼,收回目光。 “我去竞品区转转。”韩路一把工牌掛到脖子上,“念念你守著,有事发信息。” 苏念念点点头:“去吧。” 韩路一往b区走了。 b区是ai工具扎堆的地方。 第一个吸引韩路一注意力的展台,主屏上四个大字:人人可造,下面一行小字:“让每个人都能创造软体”。 展台前围了不少人,工作人员在演示怎么用自然语言生成一个小程序,台下有人举手:“我不会写代码,能用吗?” “当然可以,我们就是为您设计的。” 韩路一往前走。 第二家,口號是“零代码,全场景”。第三家,“你的想法,ai来实现”。第四家更直接,“告別程式设计师”。 他放慢脚步,整个b区都在打同一个概念:ai编程。名字不一样,东西都大差不差,目標用户不是开发者,是编程小白。 路过一个展台拐角,两个背著电脑包的人靠在柱子边聊天,胸牌上写著“海狸科技”。 “现在连產品经理都用ai写原型了,写一堆bug甩过来让我们擦屁股。” “我们那边更离谱,运营自己写了个数据脚本,差点把测试库刪了,要不是dba发现得快——” “迟早出大事。” 韩路一脚步一顿。 这些人的愤怒他太熟悉了,他自己就是这么想的。 往回走的路上,他经过一个ai编程助手的体验区,一个穿灰色polo衫的中年男人坐在体验台前,一脸认真地跟ai对话框打字,旁边放著一杯星巴克。 【目標身份:张涛|44岁|联合利华品牌经理】 【编程经验:无】 【当前行为:尝试用ai生成自动化周报脚本】 【使用动机:每周手动整理六个城市的销售数据,耗时4小时+】 韩路一关掉视界。 张涛刚刚完成输入,点了“运行”。 报错了。 张涛皱起眉,把报错信息复製粘贴回对话框,又发了一遍。 韩路一没再看,转身往c区走。 回到bugkiller展台的时候,展台前围了五六个人,姜亦心站在演示电脑后面,手指在触控板上滑动,讲解的十分熟练:“……这里可以看到,bugkiller把所有潜在问题按风险等级排列,红色的是必须修的,黄色的是建议优化——” 一个扎马尾的女生举著手机录像,旁边站著个戴眼镜的中年人,手里拿著笔记本在记,还有一个穿白t恤的年轻女孩,一直在点头。 “请问,我用ai写的代码,你们也能查吗?”白t恤女孩问。 “当然可以。”姜亦心切到另一个界面,“不管是自己写的还是ai生成的,我们都能检测。其实我们现在很多用户就是用ai写完代码之后,使用我们的工具跑一遍——” “那你们能保证查完就没问题了吗?” 一个声音从人群后面插进来。 韩路一循声看去,一个三十出头的男人,寸头,黑色卫衣,胸前掛著鼎盛的工牌,双臂抱在胸前。 姜亦心愣了一下:“我们不能保证百分之百没bug,但……” “那不就结了。”寸头往前走了一步,带著一种居高临下的意味,“这些人连代码是什么都不懂,你们帮他们查一遍就敢上线?” 白t恤女孩的笑容僵住了。 寸头瞥了她一眼,又转回姜亦心,“你们这个產品的定位有问题,ai写代码本来就不靠谱,你们检测一遍告诉他们“大概没问题”,他们就真拿去上线了,出了事谁负责?” 姜亦心张了张嘴,没接上话。 “说白了,你们不是在解决问题。”寸头的声音越来越大,“你们是在纵容问题,有了你们兜底,更多不懂的人会觉得“反正有工具帮我查”,然后把垃圾代码扔到生產环境里,你们是帮凶。” 周围都安静了。 姜亦心的脸涨红了,嘴唇动了动,没说出话来,她看向李婷,李婷也是一脸茫然。 “出了事他们自己负责。” 韩路一从展台侧面走出来,站到姜亦心旁边。 “但我想问你,你觉得ai写的代码,永远都是垃圾吗?” 寸头愣了一下:“至少现在是。” “对,现在有问题,所以需要我们查。”韩路一指了指身后的演示屏,“查完告诉他哪里有风险,他把问题贴回给ai,ai改,再查,再改。三轮下来,代码能跑了,能用了,解决了他的问题。” “我刚在b区看到一个用户尝试用ai写自动化周报,他要的东西很简单,六个城市的销售数据自动匯总。买个bi工具,年费几千,九成功能用不上。找外包,报价两万,工期两周。用ai写,半小时,成本几十块。” “半小时写出来的东西能用?” “查完改完,就能用。快,便宜,完全按他的需求来。”韩路一看著他,“一旦过了质量线,你告诉我,ai写的跟你写的有什么区別?” “区別只剩一个。”韩路一没等寸头说话,接著说,“他不用等你排期。” 短寸头沉默了几秒,转身走了。 韩路一站在原地。他刚才的每一句话,都像是在对上个星期的自己说。 “谢谢。” 白t恤女孩抬起头,声音不大。 韩路一转向她。 “我是做服装的。”她抿了下嘴唇,“小品牌,公司一共六个人。库存管理一直是手工记表格,上个月用ai写了一套库存系统,我自己看不懂代码,测了半个月都不敢上线。后来找到bugkiller帮我跑了一遍,才敢用。” 韩路一说:“上线多久了?跑得怎么样?” 白t恤一笑:“很好。” 姜亦心的眼眶都红了。 旁边几个人重新凑近了展台,扎马尾的女生又打开了录像。 韩路一拍了拍姜亦心的肩膀,退到展台侧面。 “还挺热闹。” 苏念念不知道什么时候回来了,手里多了一沓竞品宣传册,靠在展台边上看著他。 “刚才出什么事了?” “没什么,有人来踢馆。” 苏念念扫了一眼展台前围著的人,又看了看姜亦心红著眼眶但声音很亮的样子,没再追问。 韩路一沉默了一会儿,说:“念念,你是对的。” 苏念念偏了下头。 “这个市场比我以为的大。”韩路一看著b区的方向,“而且快。” 第五十二章 兔死狐悲 下午五点,b区的人潮已经散了大半,工作人员开始收撤展架,喇叭里报本次展会感谢词。韩路一和苏念念正在展台收宣传册,姜亦心和李婷蹲在地上往纸箱里放物料。 “韩总!” 是青岳的梁宇,穿著白衬衣和灰色西裤,西服搭在左手上,右手拿著瓶矿泉水。 “晚上有安排吗?展会方今晚有个小范围晚宴,十几个人,外滩那边。天枢的周明远也在,还有几个网际网路方向的创始人——我有个名额,韩总感兴趣吗?” 韩路一说:“梁总这么客气。” “上次的事,我一直想找个机会。”梁宇话没说完,嘿嘿乾笑了两声,“非正式的,开开人脉。” 韩路一把手里最后一叠册子放进箱子,对苏念念说:“你们先收,我晚上不一起走了。” 苏念念手里正拿著一本竞品的宣传册在翻,头也没抬:“哦,好。” 梁宇在旁边听著,赶紧说:“韩总,坐我的车?” 地方定在外滩茂悦,私人包间,房间外还有个小露台,正对著黄浦江。 到的时候,长桌边已经坐了八九个人,服务员在倒红酒,有人在讲一个他没听完整的笑话,笑声刚落。天枢的周明远站起来打招呼,梁宇给韩路一挨个介绍,几位都是各细分方向的创始人,做人力资源软体的,做財务自动化的,做智能客服的。 看著都比韩路一年长些。 韩路一在靠窗的位置坐下,窗外是外滩的夜色,对岸陆家嘴的灯一簇一簇,黄浦江的水面是暗金色。 梁宇特意坐在韩路一旁边。 韩路一对面是一个中年男人,微胖,穿著粉红色的polo衫,看到韩路一坐下点了个头:“幸会幸会,董飞,做在线教育的。”操著一口广东口音。 “你好,韩路一,做软体的。” 陆陆续续又坐下几个人,最后进来的人,韩路一没有料到,是codesafe的赵文渊。 从上次直播之后,两人就没见过面,突然看到,韩路一觉得他苍老了很多。 赵文渊在门口扫视了一圈,看到韩路一在看著他,轻轻点了下头,然后他在角落唯一剩下的位置坐下,没和任何人打招呼,拿起面前的水喝了一口。 酒过一巡,话题鬆开了。 有人抱怨今年融资的事,“机构都在等,没一个给钱,说是观望,其实在逼你让步”,引来一片附和。做財务软体的创始人说他上个月刚拒了一家的ts(term sheet),条款里有棘轮,他没接,对方倒好像他做错了什么一样。 “棘轮加清算优先权,是这两年机构的新標配,”周明远摇了摇酒杯,“签之前一定要把最坏情况算清楚。” 桌上有几个人没接话。 韩路一没听懂他们在说什么,默默的喝了一口茶。 聊著聊著,有人提到ai编程的事。说到一半,另一个人接话:“我让技术团队研究了,结论是不行,现在的水平差的还有点远。”有人附和,有人反驳说已经有產品跑出来了,但也说不清楚商业模式到底是什么。几人討论了几句,没有结果。 韩路一认真的听著,没发表意见。 董飞接过话头:“韩总,你是技术出身吧?你怎么看?” 韩路一笑了笑:“我也看不太懂。” 董飞也不在意,接著说:“我看这轮ai的浪潮是真的,我这个在线教育也要拥抱ai了。我现在让团队放开了用,不用在乎预算,就是要抢个先行者。” 韩路一点点头,附和了一下。 两人又閒聊了两句,加了个微信。 赵文渊全程沉默,有人介绍“这位是codesafe的赵总,斯坦福的博士,谷歌回来创业的”,他也只是点头回应一下,並不说话。 【情绪:落寞(隱藏:心灰意冷)】 大约七点半,服务员上最后一道甜品,有人起身去洗手间,包间里的声音散了一些。 赵文渊走到韩路一身边。 “韩总,抽菸吗?” 韩路一不抽菸,但他知道这句话是什么意思。 韩路一和董飞、梁宇招呼一声,和赵文渊一起走向阳台,有两个创业者正从阳台进来。 阳台在包间外侧,江风比屋里凉些。 两个人靠著栏杆站著。 韩路一先开口:“赵博士,最近比较累?” 他真的很好奇,上次直播输了,赵文渊提前离场,但他走的时候还斗志昂扬。现在codesafe背靠鼎盛,发展的如火如荼,他怎么看著死气沉沉的。 “我出局了。” 赵文渊开口就是猛料。 韩路一等他说下去。 “我现在还是codesafe的创始人,”赵文渊说,“纸面上是。” 楼下马路上汽车驶过的嘈杂声远远的传上来。 “每一次签合同我都认真看了,”他继续说,“可是不知道在什么时候,我已经没有决定权了。” 和鼎盛合作之后,董事会决议做下一轮融资。 赵文渊不想融,但他说话不算了。 他也看明白下一步是什么了:codesafe要被收购了,鼎盛和鼎盛旗下的投资机构在董事会里已经是大头,估值怎么定,是他们说了算。 然后他才弄明白合同里有一条:清算优先权。 “如果估值按三千万算,投资人拿完他们的,剩下的才是我的……乐观能有两百万。” “辞职创业,前前后后折腾了小两年,”赵文渊说,“最后到手的钱,还没我在谷歌一年的股票多。” 他说这话的时候声音沙哑。 “你懂这种感觉吗,”赵文渊看著江面,“不是钱的事。就是突然明白了,我以为我在创业,其实我一直在给別人打工,只是股权的那一列写了我的名字。” 韩路一靠著栏杆看著他,胸口涌起一股悲凉。 “小韩,我年长你几岁,托大叫你声小韩。”赵文渊说,“我真羡慕你啊……” 两人站在那,江风一直吹过来。 “我不是想来诉苦的,”赵文渊把两手按在栏杆上,“今晚见你,是有话想说。” 他看著外滩的灯光。 “你知道他们拿codesafe在干什么吗?” 韩路一知道这时候他什么都不用说。 赵文渊会告诉他的。 第五十三章 通话中 赵文渊的声音被江风吹散了一些。 “codesafe现在有多少用户你知道吧?” “三百万左右。”韩路一说。 “三百万开发者,每天都在提交代码,”赵文渊说,“每一次提交,codesafe都在查bug。” “查bug不是產品的核心功能吗?” “是啊,”赵文渊冷笑了一下,“每查一次,伺服器都留一份。” 韩路一没说话。 “鼎盛要做代码生成,这些都是餵给大模型的养料。用户以为自己在用免费工具,实际上鼎盛拿到免费的训练数据。” 江风又大了一些,两人的衣服在风中簌簌作响。 “用户知道吗?”韩路一问。 “用户协议里有一条,大概在第三十几页,什么“为改善產品体验,可能收集使用数据用於模型优化”,”赵文渊说,“谁会翻到那里?” 韩路一想了想,他看过bugkiller的用户协议,但没看过codesafe的。 “我是写代码出身的,”赵文渊双手撑著栏杆,“我也做开源,但是这个事儿……可真他妈脏啊。” “这才是我今天想告诉你的。” 韩路一看向他。 【情绪:愤怒(隱藏:自责)】 【谎言概率:0%】 【表述內容与已知事实无衝突】 安静了几秒。 “赵总,谢谢。”韩路一说。 “別叫我赵总了,不是了。”赵文渊转过头看著他:“小韩,我有个问题,一直想不明白……你的模型到底是怎么训练的?” 韩路一没回答。 “我认真研究过你们的產品,”赵文渊说,“检测精度不该到那个水平,还有那个影响评估……除非你有特別好的数据源,或者什么新的训练方法。” 韩路一笑了一下:“赵博士技术也不差,你应该已经意识到问题在哪了,也知道该怎么改。” 赵文渊盯著江面看了很久。 “想改,也改不了了。” 他抬起手狠狠的搓了一下脸。 “回去吧,创业这条路,希望你走的比我好。” 回到主桌的时候晚宴已经到了尾声。 甜品盘基本没怎么动过,几个创始人站起来互换名片和微信。 董飞走过来拍了拍韩路一的肩膀:“韩总,咱们都在海城,有空多走动,来我办公室喝茶。” 韩路一说好的好的。 周明远在门口跟人说完话,看到韩路一点了下头,算是告別。 梁宇走过来:“韩总,我送你回去?认识路。” 韩路一摆摆手:“梁总太客气了,今天天气好,我去江边吹吹风,下次再聊。” 韩路一走出酒店的大门,街道嘈杂的声音和外滩的夜风同时扑过来。 他边走边掏出手机,给陆明洲发了条消息。 “老陆,方便吗?打个电话。” 两秒钟,陆明洲的电话拨过来了。 “展会完去了一个创业者晚宴,碰到一个人,被投资方的条款坑了,”他简短地说了情况,刻意没提名字,“融资时签了清算优先权,结果公司被低价收购,投资方先拿完,创始人没剩多少。” “优先清算加drag-along,”陆明洲秒懂,“標准套路,他签的时候估计没看懂。” “什么意思?” 陆明洲知道韩路一没有金融背景,这正是体现他价值的时候,在电话里开起了金融小课堂。 “drag-along就是强制跟售权,简单来说,大股东说卖,小股东只能跟著卖,多少钱是大股东和收购方谈的。 “清算优先权复杂一些,投资方投资的时候说好了,退出的时候先把自己的本金甚至双倍利润拿走,剩下的才轮到创始人分。要是收购价被压得很低,到创始人手里基本就剩不下什么了。 “假设投资人投了500万,要2倍优先清算权。公司后来卖了800万,没有1000万怎么办?投资人拿走800万,创始人归零。要是卖了1500万,投资人拿1000万,创始人分剩下的500万。” 韩路一消化了一会,又问:“那棘轮又是什么?” “棘轮是防稀释条款。估值跌了,投资人股份自动增加,创始人吃亏。”陆明洲回答。 “这种霸王条款,为什么签?” “不签就没钱。放心,咱们融资的时候我会盯著。” 掛了电话,韩路一沿著外滩往北走。 黄浦江对面陆家嘴的灯密密匝匝的亮著,东方明珠的圆球在夜色里泛著粉紫色的光。 他想起赵文渊说“投资方”时的表情。 快闪被鼎盛收购了,codesafe也是,背后都是同一个人,王志远。 低头处理晚宴没回復的消息,顾司玥下午五点多发的: “软体漏洞精准定位和影响评估,这两个申请的专利通知都下来了,需要你配合补一些材料。” 韩路一回了一条:“刚看到,约个时间?” 秒回:“还在办公室,打电话吧。” 电话接通。 “顾律师,不好意思,这么晚了。” “没事,”顾司玥的声音哑哑的,“你们的专利申请通知下来了,进入实质审查了。” “嗯。” “审查官发了意见稿,有几个技术特徵的描述需要你配合確认,补充完整了才能继续推进。” “你把清单发我,我哪天带著资料过来?” “等一下,”顾司玥说,“我把审查意见拿出来,给你对一下。” 韩路一听到她站起来的声音。 椅子轮子在地板上滑了一下。 脚步声,两步,三步。 砰! 一声闷响。 什么东西散落的声音,文件夹?纸张? “顾律师?你没事吧?” 安静。 “顾司玥?” 电话没掛,也没有声音传来。 韩路一看了一眼手机屏幕。 通话还在继续,计时器在跳。 01:12……01:13……01:14…… 他保持通话,划出软体准备叫车,走到路边的时候,正好一辆计程车亮著空车灯开过来。 韩路一扬了下手,车停在他面前。 拉开后门。 “陆家嘴,和合大厦。” “放心吧。” 计程车驶上延安东路隧道的入口。 韩路一把手机放在耳边听了一下。 还是安静的。 他没掛电话。 “师傅,麻烦快一点,很著急!” “好嘞。” 05:44……05:45……05:46…… 隧道里的灯光一节一节闪过去。 第五十四章 临界点 顾司玥把车停进和合大厦地下车库。早高峰的电梯要等三轮,她靠在大理石墙面上,闭了一会儿眼。 博衡律师事务所在十九楼,晨会时间是八点半。 穿过开放办公区,有两个实习生正站著聊天,看见顾司玥过来,立马站正了。 “顾律,早上好!” 顾司玥冲他们点了点头,径直去茶水间拿了一杯咖啡,走进会议室。 十二把椅子围著一张椭圆桌,三把已经有人坐了,正在聊天。主位空著,上面放著列印好的周报,那是方正平的位子。 顾司玥走到自己的位子上坐下,拿出电脑来开始办公。 陆陆续续又进来几位合伙人,方正平是最后一个进来的。方正平是博衡的主任,五十四岁,乌黑的头髮梳得一丝不乱,一身高级定製的蓝西装。 方正平看了眼手腕上的百达斐丽:“人齐了,开始吧。” 周报分发一人一份,从他左手边,每个高级合伙人依次匯报上周进展和本周排期。 轮到顾司玥。 “上周结案两件,回款一百四。盛辉医疗的专利侵权案一审胜诉,对方应该会上诉,二审材料已经在准备。另外,青岳云的品牌商標授权在推进,本周约了对方法务——” “多大標的?”方正平抬手打断了她。 “三千二。” 方正平翻了一下面前的表格,“愷明,你手上青岳的数据合规到哪了?” 王愷明翻了一下手机:“在推进,预计下月出结果。” “这样,”方正平说,“青岳那边的业务还是统一归口比较好,客户来回对接两个团队也麻烦。愷明,商標授权那个也一起跟了吧?顾律把材料整理交接一下。” 每一句话都挺合理。 “三千二百万的审查量不小,”方正平语气很温和,“你手上事也不少,分出去减减负。” “好。” 散会前方正平又加了一句:“另外,恆达的融资租赁合规审查堆了两个月了,还没人接。顾律,你手上刚好腾出来了,帮忙接一下?” 恆达是出了名的难缠客户,每份意见书要改七八轮,费率压到行价六折,难回款,还动不动半夜催活。堆了两个月没人接,因为这是大家公认的屎活。 “好。” 顾司玥合上笔记本,端著咖啡走回自己的办公室,路过助理小周的工位,小周递过来一叠牛皮纸袋:“顾律师,方主任的助理送过来的,恆达的材料。” “谢谢。” 推开办公室的门,桌上已经有两摞文件了。她把恆达的材料放在第三摞旁边,坐了下来。先处理青岳的移交,合同文件按版本整理成压缩包,修改记录导出,移交备註写了四行:合同背景、当前进度、未解决的三处歧义、对方法务的联繫方式。 【发送】 接下来是恆达的融资租赁材料,大致翻了一遍,把任务拆好,基础尽调让实习生跑,合同条款审查发给团队里的高级律师,自己留了架构意见和风险备忘录。 分完活她揉了揉太阳穴。 小周敲了敲门:“顾律师,给您续一杯?” “麻烦了。” 小周没有立刻走:“您脸色不太好,要不要——” “没事,昨晚睡晚了。” 第二杯美式续上了。 中午,小周帮她从楼下的全家便利店带了份鸡蛋三明治,她边吃边看邮件。 趁著还在午休,她登进自己的私人网盘,里面有一个加密文件夹。 她打开一个表格,调了几处財务预估,存档;又打开一份文档,把昨晚查到的租金行情补进去…… 咚咚咚—— 她迅速关掉瀏览器,扬声道:“请进。” 沈予微拿著一杯奶茶靠在门框上:“听说早上又被截了?” 顾司玥没抬头:“青岳的商標授权,转给王愷明了。” “统一归口,”沈予微走进来在她对面坐下,语气里带著点嘲,“方主任最爱这四个字,老肖在的时候他可不敢。” 老肖,肖建国,博衡的创始合伙人,前主任,去年刚退休。顾司玥升高级合伙人就是老肖点的头。 “老肖退了快一年了,”顾司玥打开恆达的表格,“別老提。” “我就是替你不值!”沈予微吸了一口奶茶,“你一年创收顶他们两个,结果好活往外分,烂活往你这塞。” “都是活。”她看似不在意。 沈予微看她不想接这茬,便了站起来,说:“行吧,注意身体,你看著状態有点差。” 门关上之后,办公室又安静下来。 恆达的合规审查继续推,同时盛辉医疗的二审答辩要定稿,还有一份商標无效宣告的法律意见书要出,三件事在屏幕上叠了七八层窗口,她在里面切来切去。 中间接了两个电话,一个是盛辉医疗的法务总监沟通二审策略,一个是团队律师请示答辩状的证据编排。 下午五点出头,她打开源码科技的文件夹,给韩路一发了一条消息: “软体漏洞精准定位和影响评估,这两个申请的专利通知都下来了,需要你配合补一些材料。” 她低头接著做別的工作。 中间沈予微探头进来:“走了啊,明天见!” 她抬手嗯了一下,眼睛没离开屏幕。 八点半,走廊里的灯都熄了,只有消防指示牌亮著绿光。 做完最后一份恆达的材料,把邮件发给项目负责人,她靠在椅背上闭了会儿眼。 手机有消息进来,是韩路一:“刚看到,约个时间?” “还在办公室,打电话吧。” 几秒钟后电话进来了。 “顾律师,不好意思,这么晚了。” “没事,”她说,嗓子有点紧,清了一下喉咙才继续,“你们的专利申请通知下来了,进入实质审查了。” “嗯。” “审查官发了意见稿,有几个技术特徵的描述需要你配合確认,补充完整了才能继续推进。” “你把清单发我,我哪天带著资料过来?” “等一下,”她说,“我把审查意见拿出来,给你对一下。” 纸质文件在桌旁的资料柜里,她站起来要去拿。 刚走几步,眼前突然一黑。 砰—— 手机不知道什么时候从手里滑了出去。 她嘴唇动了动,没能发出声音。 第五十五章 九个月 韩路一推开车门,手机还贴在耳边。通话计时器跳到11分47秒,那头什么声音都没有。 大堂只剩一个值班保安在刷短视频,抬头扫了他一眼。 电梯里他把手机切到免提,除了电流底噪,什么都听不见。 十九楼走廊黑著,只有最里面一间办公室透出灯光。 推开门的一瞬间,他听到手机里传来了自己的脚步声。 一个手机躺在地板上,屏幕亮著,显示“源码科技-韩路一”。 顾司玥侧倒在文件柜旁边,地上散了一圈文件夹。 【顾司玥】 【体温:38.7度|连续工作:13小时|脱水:中度】 【诊断:病毒性感冒,过劳,体位性晕厥,非危急】 韩路一呼了一口气。 掛断电话,蹲下去把她抱起来,放到办公室角落的皮沙发上。她的脸烧得通红。 他迅速跑下楼,去便利店买了退烧贴、布洛芬、矿泉水。 回来的时候顾司玥已经醒了,靠在沙发扶手上,眼神还没完全对上焦。她看清是他,第一反应是皱眉。 “你怎么进来的。” “门没锁。”韩路一把矿泉水拧开递过去,“电话里听见你摔了。” 顾司玥接过来喝了一口,然后她的视线扫了一圈,落在办公桌上。 电脑还亮著。 韩路一顺著她的目光看过去。 101看书 看书首选 101 看书网,1?1???.???超顺畅 全手打无错站 【目標人物·核心状態】 【规划进行中:独立开设律师事务所】 【客户资源积累:未完成|启动资金:未就绪】 【预计窗口:6个月內】 韩路一没等她开口,走过去把笔记本电脑合上了,然后退回来把退烧贴撕开放在茶几上,布洛芬搁旁边,问道:“能自己喝吗?” 顾司玥伸手把东西拿过来。 韩路一在旁边蹲下去捡地上散的文件,按右下角的编號排好,放在了桌子上。 窗台上还是那盆绿萝,叶子又蔫了,旁边放著个马克杯,里面是小半杯凉透的咖啡。韩路一去茶水间倒掉咖啡,接了杯温水回来,也给绿萝带了一杯凉的。 “专利的资料,”顾司玥的声音从沙发上传来,又低又哑,“我回头髮你邮件。” “不急。叫家人或者朋友来接你?” 顾司玥拿起手机,翻了两下,拨了出去。 “予微,嗯,还在博衡,你能来接我一下吗……嗯,没事,感冒了。” 掛了电话,顾司玥说:“四十分钟。” 韩路一点点头:“布洛芬吃了,等半小时看看退不退烧,我在这等你朋友过来。” 顾司玥没说话,靠回沙发闭上了眼。 韩路一在对面的椅子上坐下来翻手机,半小时后顾司玥额头上开始冒薄汗,脸色没那么红了。 她睁开眼,烧退了一些,眼神比刚才清了,外面传来急促的跑步声。 “司玥?司玥?” 韩路一站起来,沈予微正好出现在门口,简单交代一下,韩路一往外走去。 “韩路一。” 他回过头。 顾司玥看著他。 “……谢谢。” “应该的。” 他拉上门。 韩路一没回家,今天的展会和晚宴对他触动很大。 他叫了辆网约车沿著世纪大道往东,去张江。凌晨一点,路上几乎没有车。 整个楼都是黑的,他回到自己的工位上,大概搜索了一下,下载了市面上最火的ai编程软体。 安装,打开,右边的聊天框弹出来,光標闪了两下,他输入了一行提示词:写一个用户登录模块,包含邮箱验证、密码加密、session管理。 回车。 屏幕开始滚动代码,一行接一行,从上到下铺开,像打字机。 十五秒,几百行代码铺满屏幕,完整的登录模块写好了。 他没动键盘,看著代码从第一行滚到最后一行。 这就写完了? 他没开视界,而是把生成的代码丟进bugkiller。 五个bug。 他看了一会,主动展开视界。 【ai生成代码·趋势分析】 【当前平均准確率:62%】 【预测(12个月):3个月→72%|6个月→78%|9个月→85%|12个月→89%】 【市场临界点:准確率>85%时,用户行为將从“辅助检查”转向“生成优先”】 9个月后,用ai生成代码的人就不会再用bugkiller了,他们会直接问大模型。到时候还会有几个开发者用bugkiller? 毕竟是相关从业者,大模型刚出来的时候韩路一也研究过一段时间,那个时候的感觉是“华而不实”,幻觉严重,满嘴胡话,像一个爱骗人的学渣实习生,你让他写代码,改起来比自己写还累。 后来他经歷了裁员、创业,这六个月的时间一闪而过,每天睁眼闭眼就是工作,完全没有关注大模型的进展。 现在突然一看,准確率已经达到了62%。 进展的太快了,虽然现在还不如程式设计师,但是以这种发展速度,一场巨变就在眼前,所有的程式设计师都要失业。 视界验证了他的猜测。 他想起b区那些做ai编程的大小展台。 他想起那些不懂代码,却想用ai编程解决实际问题的用户。 他想起晚宴上聊著看不懂看不懂的创业者们。 他想起董飞,他不会编程,都敢all in ai。 他想起赵文渊站在阳台上,江风吹过他落寞的神情。 他想起在鼎盛无数个通宵达旦改代码的自己,那时候他不知道自己是为了什么,只想把手头的推荐系统做到极致。第一次做出一个小而美的软体bugkiller,被鼎盛的打压一步步推著走到现在,他还不知道怎么把自己定位成一个创业者。 直到这一刻,他才意识到:他想创业!即使创业是一条风险重重的不归路!ai的变革就在眼前,像滔天的巨浪席捲而来,无数创业者蓄势待发。 他们这些没掛的都敢玩,我他妈为什么不敢!? 他打开代码编辑器,把bugkiller开了一个分支。 他把核心引擎拆出来,再把开源的代码生成框架拿过来装上,配了一个图形界面。 他要做一个给非开发者用的,漏洞检测和修復建议嵌入的ai工具生成平台。其他人9个月之后才能做到的水平,他靠bugkiller现在就能做到。 他进入了心流模式,全神贯注在眼前的代码上,视界全程开启,给出的最优建议他全部採纳。 整个办公室迴荡著机械键盘噼里啪啦的声音。 【精力值:187/500|状態:亢奋|建议:休息】 视界的提示,韩路一忽略不看。 终於,最后一个改动结束了。 git commit -m“feat: vibe-mode v0.1” 代码生成后自动使用bugkiller模型检测,所有bug和修復建议加入下次生成提示词再次运行,直到成功。 所有的代码和逻辑都隱藏在图形界面后面,用户只需要在对话框输入想要的功能就能创建出独属於自己的软体。 韩路一看向窗外,天空露出一丝鱼肚白。 他再次输入了那行提示词:写一个用户登录模块,包含邮箱验证、密码加密、session管理。 几十秒后,一个完整的登录页面弹出来。 打开视界,一道绿色的提示框弹出来。 【0 bugs】 这一刻,整个ai编程行业还在討论未来。 韩路一已经领先全世界了九个月。 第五十六章 韩老师,你是神吗? 姜亦心到的时候,办公室里只有韩路一。 他的工位在最里面,双显示器亮著,机械键盘噼里啪啦作响,昨天那件蓝色衬衫还穿在身上,皱巴巴的。 “韩总早!” 韩路一回头看了她一眼:“来得挺早。” “来补补昨天的进度。”姜亦心把咖啡杯换到左手,右手下意识扯了扯衣角,低头往自己工位溜。 打开电脑,先点开昨天的提交记录。 陈建业的提交在最上面——【feat:崑崙平台层適配完成,接口封装、命名规范、边界处理】,时间戳昨晚十一点十七分。 她点进去看了一会儿。 分层清晰,接口封装乾净,注释写得跟教科书似的。变量命名规范到变態,连临时变量都用了完整的camelcase。 她想起代码评审时陈建业挑她毛病的那副嘴脸,撇撇嘴。 禿头大叔虽然嘴欠人品差,写代码是真的牛逼。 姜亦心瞟了一眼韩路一的方向。 桌上是楼下早点摊卖的油条和豆浆,衣服都没换,这是通宵了吧? 卷王,真他妈卷。 她突然意识到什么,低头看看自己,特意早起一个小时来补进度,结果老板来得更早。 他是老板,卷是为了自己公司,我卷是为了谁? 社畜何苦为难社畜。 正纠结著。 “小姜,先別补了。”韩路一拍拍自己旁边的椅子:“来,坐这。“ 姜亦心端著咖啡走过去,凑近才看清右边显示器上的界面。一个简陋的输入框,白底黑字,上面写著:描述你想要的功能。 这是什么?1995年的復古网页? “韩总您通宵写的?” 韩路一往键盘那边点了点:“输个你想做的功能。” ai编程啊? 姜亦心犹豫了一下。 昨天展会b区,她也体验过三四家ai编程工具,上周也试过用国外的ai编程写小功能。ai写的代码大概什么水平她清楚——能跑,但一定有bug,变量命名乱七八糟,边界条件基本不管。 她打字:写一个在线聊天软体。 回车。 屏幕上出现一个圆形加载中的图標,等了好几十秒,感觉速度比她体验过的工具都慢一些。 好尷尬啊,一会我应该做什么表情才能不伤韩老师的面子啊…… 终於,生成完毕,一个聊天界面弹了出来,有对话框,有聊天记录,上面可以设置暱称,旁边还有个二维码。 哦,能运行吗? 姜亦心拿出自己的手机,扫码,手机里也打开了一个一模一样的聊天界面。 她打字:“测试测试” 电脑屏幕上的界面也显示“测试测试” 姜亦心瞪大了眼睛。 不是,等等。 我刚才干什么了? 她回头看了看韩路一面无表情的脸。 韩老师,你一定在心里偷笑吧!你是在装逼吧? 姜亦心消化了一会儿,开口道:“韩总,您昨晚……通宵做的?” “嗯。“韩路一微笑著点了点头,“等人来齐了一起说。“ 韩老师,你是神吗? 九点多,人陆续到场。 苏念念最后进门,扫了一眼韩路一的衬衫,皱了皱眉,但什么都没说。 韩路一起身站到白板前:“人齐了,来来来开个短会!” 姜亦心想起入职第一天——他也是在这开会,没废话,直接分活。 “看屏幕。” 韩路一打开那个简陋的界面,开口说道:“上周苏总和我交流过,现在bugkiller有很多非开发者用户,这是一个很大的蓝海市场,我们应该在这里进行布局。我决定把公司下一阶段的战略重点放在这方面。这就是我们的第一个產品——vibe mode。” 他的手指向屏幕。 姜亦心偷偷看了一圈,在场的眾人脸色各异。 陈建业双臂抱胸,嘴微微撇了一下。 赵磊面无表情。 苏念念的从皱眉变成若有所思。 陆明洲欲言又止。 李婷看著有点不明所以。 刚才已经看过成果的姜亦心偷偷的掐自己的大腿。 不行,忍笑忍的好辛苦。 这就是装逼打脸的快乐吗,怪不得这么多人喜欢看网文啊! 韩路一当著所有人的面开始打字:写一个带购物车功能的电商页面,包含用户登录、商品列表、结算流程。 回车。 办公室安静了好久。 一个电商页面弹了出来,韩路一操作著进行了从登录到结算的流程。 所有人都怔怔地盯著屏幕。 陈建业喃喃地说:“提前做好的吧?” 等大家消化了一下,韩路一开口:“三件事。 “第一,適配继续做,但从今天开始全员用ai辅助开发。工具都给你们装好了,不会用的来找我。” “第二,我们的下一个重点,bugkiller新方向——vibe mode,ai生成代码加自动检测修復,面向非技术用户。”他顿了一下,“代码检测是我们的护城河,但只做检测是死路,要往前走一步。” “第三,”他看向苏念念,“非技术用户怎么定价、按什么收费,下周给我一版。” 苏念念点头。 “从今天开始,所有人都用ai生成加bugkiller的工作流写代码,自己的適配工作就是最好的测试场景,散会。” 说完,直接回工位。 姜亦心去茶水间接水。 走廊拐角,陈建业的声音飘过来—— “又变了,昨天还云適配云適配,今天又搞什么ai生成……这种公司一天一个方向,我跟你说……” “这就不是技术问题,是管理的问题,你说一个正经公司能这么搞吗?今天拍脑袋明天换赛道……” 姜亦心端著杯子退回去,没让他发现。 这一幕好熟悉! 上次他也在这个位置打电话,说“这破地方连ci都没有“。结果ci就在那摆著,他根本没看入职文档。 这次他又在这说“一天一个方向”。 禿头大叔,你又要被打脸了。 她憋著笑,绕路从另一边回了工位。 姜亦心打开天枢適配的代码,准备按韩路一说的用ai辅助。 韩路一走过来。 “小姜,天枢適配用ai辅助收尾,赶一下进度,收完之后,你跟我做vibe-mode核心。” “好的韩总!” 韩路一走后姜亦心悄悄拿出手机。 【大刘(青春版)】:起了吗? 姜亦心低头打字。 【小姜】:大刘,装逼真的太爽了!我以后也要装逼! 【大刘(青春版)】:? 第五十七章 开物 韩路一刚坐下,耳机还没戴上,苏念念就站到了他旁边。 “有件事得跟你说,来会议室。” 路过姜亦心的工位时苏念念脚步没停:“小姜你也来。” 姜亦心赶紧把手机收起来,快步跟上去。 三人进了共享办公区角落的小会议室,韩路一找个椅子坐下,打了个哈欠。 苏念念关上门,直接站到白板前面。 “你昨晚做的东西,虽然技术上很惊人。” 韩路一点头。 “但是——” 来了。 “界面太糙了。”苏念念把手机摊在桌上,屏幕上是刚才的生成页面,“你对著程式设计师,功能强大就够了,人家自己能读代码。但你面对的是开奶茶店的小姑娘,是摆地摊的大爷,是做自媒体的博主。” 她划了两下手机:“界面、交互、上手引导,这些东西对技术用户是锦上添花,对非技术用户至关重要,你现在这个界面,我都不想点第二次。” 韩路一没反驳。 通宵赶出来的,能跑就不错了,他確实一行css都没碰。 姜亦心在旁边缩著脖子不敢出声。 苏念念继续:“而且名字也不行。” “vibe-mode,我知道你是想呼应氛围编程,但你跟一个开奶茶店的小姑娘说vibe-mode,她以为你在放dj。” 姜亦心没忍住,笑了一声。 韩路一说:“那你觉得应该怎么做?” 苏念念在白板上写了三个词: 体验。信任。品牌。 “你知道iphone为什么贏了黑莓吗?” 韩路一摇摇头,他用的是国產安卓。 “黑莓能收邮件,能打电话,能上网,当时硅谷的高管人手一个。iphone刚出来的时候连复製粘贴都不行,但贾伯斯做对了一件事,就是把iphone做的连老太太都会用。” 她转过身面对两个人。 “ai编程现在就是2006年的智慧型手机,功能有了,展会b区那些工具一个比一个能写,但没有一个產品让普通人觉得“我会用、我敢用、我想用”。” 韩路一盯著白板上的三个词。 “谁先做到这个体验,”苏念念说,“谁就拿到ai编程的iphone时刻。我们不只是做一个好用的工具,我们要做一个让人信任的工具。” 韩路一举手:“同意,先从哪开始?” “名字。”苏念念很快,“vibe-mode绝对不能用,bugkiller我就不喜欢,得起一个用户一看就懂,又能代表我们愿景的名字。” 她在白板上划了一块区域,写了个大大的问號。 “来,头脑风暴。” 韩路一说:“jarvis?” 苏念念瞪他一眼:“治治中二病。” “那……builderx?” “像一款手机壳。” 韩路一:“……” 苏念念自己写了两个——“造物”,“灵机”。 韩路一摇头:“造物有点太大了。灵机……灵机一动?” “也不行。”苏念念自己否了。 姜亦心坐在旁边,张了张嘴,没出声。 韩路一又蹦了一个:“smartforge。” 苏念念懒得看他:“你是不是只会起英文名?” “……职业病。” 安静了十几秒,姜亦心突然开口。 “天工开物。” 苏念念和韩路一同时看她。 姜亦心被两道目光钉在椅子上,手指在桌面下绞了一下,但还是继续说了。 “《天工开物》,明朝宋应星写的,讲的就是……怎么把复杂的技术变成普通人能用的东西。开物,开启万物。用户不需要懂代码,只要说出想法,开物帮他把东西做出来。” 会议室安静了几秒。 苏念念念了两遍:“开物……开物。” 韩路一拍板:“就这个。” 姜亦心鬆了一口气。 苏念念转向白板,把问號擦掉,写上两个字:开物。 然后在下面拉了一条线,写了一排关键词:首页、生成界面、结果展示、错误引导、品牌色、字体规范。 “名字有了,產品还需要一整套ui设计体系。”她指著白板上那排词,“这些东西我可以出需求,但得有人画。” 韩路一想了想:“找外包?” “一套完整ui体系,外包起步十几万,而且沟通成本高,品质不可控。”苏念念皱眉,“最怕的是改需求,这个阶段產品形態还在变,外包给了你第一版,改一次加一次钱,改三次等於买个新的。” 姜亦心听到“十几万”,咽了口口水。 苏念念看向韩路一:“你邻居那个姐姐,能不能让她来做?” “我去问问。” “如果她愿意,我先出一版產品需求文档给她。”苏念念说完这句,在白板上写了个“待定”打了个圈。 討论快收尾的时候,姜亦心举手。 “韩总,有个事我一直想问——” 韩路一看她。 “开物用的大模型……是別人的吧?” “嗯,开源的代码生成模型。” 姜亦心接著说:“那bugkiller的检测引擎,也是公开產品,其他公司也能调用。” 她停了一下,像是在组织措辞。 “所以……別人用同样的开源模型,加上bugkiller或者別的检测工具,不就能做出一样的东西吗?” 苏念念的目光从白板移到韩路一脸上。 “能。”韩路一说,“能抄,谁都能抄。每个创业者都会被问这个问题,如果巨头做了和你一样的產品,你怎么办?” “告他?” “告没用,你要跑得比他快,我们今天能跑通全链路交付,能比別人领先至少半年。” 韩路一指了指白板上苏念念画的闭环流程图。 “生成、检测、修復、再生成,这个循环看著简单,但到底怎么做,全要摸索。別人想抄,这些路也得走一遍。” “那半年以后呢?別人追上来了呢?” “半年能做很多事了,用户是有迁移成本的。” 韩路一举了个例子:“你手机里有个app,用了大半年,里面存了你所有的东西,隔壁出了个功能一样的,你换吗?” 姜亦心想了想:“不换。” “所以快点做!”韩路一拍了下手。 姜亦心回去工作了,苏念念给白板拍了个照,也走出会议室。 只剩下韩路一一个人坐在会议室里,闭上眼睛。 “你知道他们拿codesafe在干什么吗?” “鼎盛要做代码生成,这些都是餵给大模型的养料。” “真他妈脏啊。” 第五十八章 备註 青岳云销售事业部q3復盘会,16楼大会议室。 投屏上各团队kpi完成率从高到低往下排,vp张阳坐主位,一个团队一个团队过。 渠道合作部,91%;大客户服务部,87%;中小企业部,76%。 数字念过去,张阳偶尔抬头点评两句,语气平稳,像在念天气预报。 轮到开发者生態部。 “生態部q3,整体完成率,53%。” ppt停在这,会议室里十几个人鸦雀无声。 梁宇坐的位置背靠窗户,阳光从背后打进来,显得他脸有点儿黑。几个同事偷眼看他,他看著屏幕上自己部门的数字,没动。 ppt继续往下翻:“新签合作伙伴12家,標准合作方案12家,深度合作0家。” 零,单独掛在屏幕上。 “重点项目bugkiller,签约方式標准合作方案,月保底十五万,分成88%。”张阳念完这行,目光从平板上移开,扫了一圈,没落在任何人身上。“这个项目方向判断不错,合作伙伴產品数据有亮点,下个季度重点看看实际转化,保底花出去了,得看到开发者增量。” 四平八稳,滴水不漏。 在座都是老人,中译中很熟练:你梁宇判断对了,但没谈下来最开始的独家方案,希望你能证明这钱花的值。点拨的很重了。 投屏翻到下一个团队。 梁宇依旧没动。 散会他没急著走,等人走得差不多才出门。 电梯口,大客户服务部总监许峰靠在墙边看手机,他的部门做了87%,现在正春风得意。网际网路这些大厂,指標订的狠,完成80%就算过关,53%確实有点难看。 终於等到梁宇过来,许峰收起手机,笑了一下。 “老梁,辛苦辛苦,你们生態部的活最难干,一时半会儿看不到回报。” 梁宇露出笑容:“嗨,我们苦点累点,也是给你们打工了。” 许峰跟了两步,语气隨意:“我听说q4预算要重新评估?咱们提前准准材料,別到时候被动。” “多谢提醒,我也听说了。”梁宇笑著点头,“下次请你喝茶。” 他走进电梯,按了关门,许峰没进来。 电梯门关上,梁宇脸色铁青,小声说了一句:“他妈的小人得志。” 梁宇一毕业就进了青岳云,从商务开发专员做到生態部总监,中间经歷过三次架构调整、两任直属vp、一次裁员潮,整整十二年,他还在这栋楼里。 一次季度復盘不好看,不至於让他伤筋动骨。 生態部和许峰的大客户部不一样。大客户做的是存量生意,维护关係、续约提价、守住地盘,每个季度交数字就行。生態做的是增量,在生態工具的池子里钓小鱼,等小鱼变大鱼,平台才能收割。这个过程快则一两年,慢则三五年。53%放在大客户部是灾难,放在生態部叫投入期。 但ppt不替你解释,屏幕上只有数字。 而且现在大环境变了,不是五年前蒙眼狂奔的时候了,全社会都在讲降本增效,很多企业在做去云化,一年砍几百万的预算,整个云市场增速放缓,业绩压力一层传一层。以前他生態部炙手可热,现在是大客户和渠道合作耀武扬威。 电梯到了二十三楼。 这个季度没拿到好看的数字,但他也有收穫。 源码科技,更准確地说,源码科技的ceo,韩路一。 三个人的创业团队,他给的独家条件不算差,任谁想都是签了。 结果他不仅不签,转头跟天枢谈了,跟崑崙也谈了,三家云,一家独家都没给,每一家都签了。 梁宇入行十几年,过了几百家合作方,这操作换他来不一定敢。 他犹豫了几天,低头回去谈,对面和没事人一样。 他后来和周明远、陈凯私下对过,这小子谈判的本事简直神了,摸著你的底线谈。 上周晚宴,全桌聊ai编程,和这个赛道离得最近的就是他,韩路一坐那儿吃菜,只听不说,董飞问他,他说看不懂。 谁信?梁宇见过太多创业者在饭局上使劲,恨不得名片两面都印ppt,这人年纪最小,话最少。 老练的他见过,这么年轻就这么老练的,少。 韩路一是不是池中的金鳞?只等风云化龙? 说曹操曹操到,手机响了。 是韩路一。 “梁总,忙呢?有个事请你帮忙。” “你说。” “展会参会者名单,青岳手上有吗?能不能帮忙推一些非技术背景的参会者?” 非技术背景的,他要来干嘛? “非技术的?” “有个新方向,想找点用户內测。” 梁宇没再问,“有个新方向”,就是不想说。 名单在市场部,展会数据走活动运营系统。他直接调得走跨部门,提申请,市场那边先问一轮“商务调这个干嘛”,再等审批。正常时候打个招呼就搞定。但刚才那个会开完,他的权重又掉了一格。跨部门要数据,对面掂量的不是工號,是你上个季度考核的评分。 路径不止一条。 “名单是有,但想调起来有点麻烦,”梁宇说,“这事归市场部管,我也得打申请才行。” “那能不能麻烦梁总引荐一下?”韩路一没犹豫。 “嗨,韩总,这话说的。这忙我肯定想帮,你看,要不换个方式,我出一个联合触达,以青岳合作伙伴的名义给目標人群发邮件。你们写內容,我这有权限直接发,回復的人你们直接对接。” “行。” “人群画像的具体要求呢?” “非技术背景,展会b区停留超过十分钟的,最好是活动上试用过的。” “那你把內容儘快给我,我这边过一下数据,给你个数字,最快能赶上下周一的邮件。” “梁总,太感谢了!” “韩总,別客气。还有,邮件得带青岳logo和合作伙伴標识,我要报活动量。” “没问题。” “回头联繫。” 茶水间只有他一个人,梁宇把手机放在窗台上,看著楼下的车流。 忙能帮,但不能轻易帮,得让人记你的好。 联合触达走他部门的预算和系统,活动量能报。韩路一那个新產品上线跑出来的数据,转化、留存、反馈,都是他q4匯报时的现成素材。 梁宇拿起手机,翻开通讯录。 韩路一,备註还是两个月前写的——“bugkiller/创始人/三人团队”。 他把备註全刪了,添加为vip联繫人,按了保存。 第五十九章 收音机 “搞定了。” 韩路一掛断电话的时候,苏念念正好走过来。 “搞定什么了?” “內测用户的邀请,我找梁宇要上次展会在b区有意向的非技术用户,青岳生態帮我们发,回復给我们对接。” “內容这周写好,下周一就发出去。”韩路一接著说。 苏念念瞪大了眼睛:“发什么?” “开物的內测邀请。” “开物?”苏念念说,“你说的是那个连完整用户流程都没有、界面还是你通宵糊的,开物?” “先让用户——” “你让用户试什么?”苏念念点开笔记本上的一个页面,“输完需求点“生成”,转三圈报“伺服器繁忙,请稍后再试”。再点,弹一个空白画布,中间就一行字:正在连接ai助手。连个进度条都没有,用户怎么知道是卡了还是在跑?” 她把屏幕转向韩路一:“引导页还是占位符,“即將推出精彩功能”。你发出去,人家打开一看就关了,再也不回来。” “內测嘛——” “內测也是第一印象。”苏念念把椅子往后一推,“你知道苹果地图吧?” 韩路一知道苏念念是果粉,他不是。 “2012年ios 6上线,苹果把谷歌地图踢了,换自己的地图app。结果导航把人往河里带,卫星图扭成麻花,布鲁克林大桥的3d建模像被揉过的锡纸,库克公开道歉。”苏念念竖起一根手指,“十四年,到今天你问任何人苹果地图怎么样,第一反应还是“烂”。口碑一旦崩了,花十倍力气补不回来。” 101看书 101 看书网解无聊,101??????.??????超实用 全手打无错站 “我们不是苹果地图。”韩路一说。 “什么?” “苹果地图推给几亿iphone用户,一夜全球曝光,我们是发给展会上几十个人的內测邀请。”韩路一说,“这几十个人在展会b区蹲了十分钟以上,有的还现场试用过代码生成工具,他们知道自己是在帮忙测试,不是在用成品。” 苏念念没说话。 “就算全烂了,影响范围就这几十个人。而且他们的反馈恰好能告诉我们该改哪里。”韩路一顿了顿,“坏印象的杀伤力跟覆盖面成正比,几亿人面前翻车是灾难,几十个內测用户给差评,是我们要的反馈数据。” 苏念念的嘴角动了一下,没想到怎么反驳。 “你听过那句话吗?”韩路一说,“如果你不为第一版產品感到羞耻,说明你发布得太晚了。” “reid hoffman。”苏念念说。 “谁?”他没在这句上停,“不重要。你也看到了,代码生成现在是大模型的热门领域,鼎盛也在憋大模型。我们现在的效果好,能领先,可不知道能领先多久。” 其实他知道,九个月,九个月內他就要占领市场,不然他就出局了,因为他现在没有资本玩大模型。 苏念念盯著屏幕上开物的界面原型看了一会儿。 “行。” 韩路一刚要开口。 “我有两个条件。” 她脸上的表情从纠结切换成执行模式,快得像按了个开关。 “邀请內容我来写,不叫產品体验,叫共创计划。用户预期要按我的来。让每个打开邮件的人清清楚楚知道自己是在帮我们打磨產品,不是在用成品。” “可以。” “第二,人要筛,不是所有留资的都发,我们只发那些在b区体验过ai编程工具的,这批人有真需求,反馈质量也高。” “好。” 苏念念已经打开了新文档,共创计划。 韩路一看了一眼那个標题,这方案確实比他原来想的好。 赵磊在工位上坐了一上午没出声。下午两点,带著电脑过来了。 “韩总,您忙吗?我有个问题想问。” “坐。” 他没坐,站在韩路一工位边上,电脑上开著飞书,是一条备忘录。 “ai辅助开发这块,我试过了。有些模板化的东西,生成速度比手写快三四倍,確实好用。” 韩路一点头。 “但有个问题,”赵磊说,“ai生成的代码,评审流程是什么?上线之后出了问题,追责到哪一层?是写代码的人的,ai的,还是评审人的?” “你就用ai使劲往前推,”韩路一说,“能生成的都让它生成。” 赵磊没动,也没说话。 “生成完用bugkiller跑一遍,能检测出来的bug先过一轮。” “bugkiller检测不出来的呢?” “最终代码评审我来做。”韩路一看著他,“所有ai生成的代码,最后一道关我来过,出了问题,不算你的。” 赵磊沉默了几秒。 “韩总,ai生成的挺快的,我自己看也要不少时间,要是发这么多评审任务给你,也快不起来吧?” “你做完就发我,我没时间看就攒著。”韩路一说,“下班之后,一晚上我保证看完,不耽误第二天你接著往下写。” 反正有视界,评审就是一眼的事。 赵磊低头在飞书备忘里打了一段字:“韩总评审最终代码”。 然后@韩路一,点了发送。 韩路一手机震了一下,飞书弹窗【赵磊在备忘里提到了你】。 他看了一眼,点了个赞。 赵磊看到那个赞,把电脑盖上:“行。” 韩路一掏出手机。 他打开顾司玥的对话框,打了一行字:“身体恢復得怎么样了?” 回復很快。 “好了。” 一秒后第二条消息进来,一份专利申请需要的资料清单,七八条,每条后面標了截止日期,最近的一个下周三。 韩路一回了个ok,然后把清单转发给苏念念:“专利相关,你看看哪些你那边能出。” 手机又震了一下,是梁宇:“邮件系统確认了,周一就能发,內容定了告诉我。” 他回了个字:好。 韩路一站起来,站太快,眼前黑了半秒。他扶了一下桌角,等视野恢復。 “走了?”苏念念从屏幕后面探出头。 他从来不比她先走。 “嗯。” “……回去早点休息。” 韩路一摆摆手。 出了办公楼,天还没全黑。一晚上没睡,又工作了一天,升级过的身体也有点吃不消了。 他叫了辆网约车,上车闭了眼。 司机正在听收音机的新闻节目,声音不大。 “……鼎盛科技今日宣布,將於下月发布自研代码大模型——” 韩路一睁开了眼。 第六十章 共创计划 大排档的桌上摆了四个菜,两瓶雪花啤酒。方远倒了三杯,自己那杯倒得最少。 对面坐著两个人,一个做前端,一个做后端,大厂员工下班接私活的。方远以前也在网际网路公司干过產品经理,没少和开发打交道。后来实在是累的受不了,就辞职了,又閒不住,搞了个社区互助的公益组织,叫暖邻,温暖邻居,目的是帮老旧小区的独居老人。现在志愿者两百多人,全靠微信群和飞书表格管著,一直想做套系统,找了这两个人。上次三人已经在咖啡馆聊了一轮需求了,对方报了十万,方远说能不能再商量商量,对方说回去合计合计。 今天这顿饭就是合计的结果。 “方哥,需求我们仔细看了。”后端工程师先开口,手里还拿著毛豆,“志愿者排班、活动报名、后台管理,前后端加起来工期得两个月,十万真是底价了。” 方远脸上堆著笑:“是是是,理解。我们是公益组织,没有营收,能不能再低点儿?” 两人互相看了一眼。 前端放下筷子:“八万,这比我们工资都低了。” 方远没说话。 八万他也拿不出来,暖邻帐上只有上个月社区捐赠的七千多块,他自己每月往里贴两三千,够活动经费就不错了。桌上安静了几秒。后端开始刷手机,前端打了个圆场:“方哥你也別急,需求不会变的,先攒攒钱,我们隨时能做。” 方远说:“行,那先这样。” 散场,方远去收银台扫了一百三,回来的时候,两个人已经分別叫车走了。 方远站在大排档门口,九月的晚风吹过来有点凉。他把外套拉链拉到顶,往公交站走。 八万,就算从现在开始攒,一年也攒不出来。 但暖邻不能等一年了,现在全靠他一个人的脑子和那张飞书表格撑著,他要是哪天病了,这摊子就散了。 回家后,方远坐在电脑前整理排班表,二十三个人分社区,每人每周两到三个时段,还得考虑谁跟谁搭班顺手、谁住得近去哪个社区方便。 他顺手打开邮箱清一清未读,大部分是gg,划掉,划掉,划——“共创计划”几个字让他停了一下。 发件人是青岳云的开发者生態团队,大意是邀请他参加一款ai开发工具的早期共创,说他在云开发者大会体验区的反馈很有价值,希望进一步收集意见,末尾附了一串邀请码。 方远差点划掉,这类邮件他收到过不少,但“共创计划”让他多看了一眼。上周他去展会上那些ai编程工具的展台试用,输了需求,生成了一屏代码。他看不懂,也跑不起来,走的时候更加確认了:还是得找人做。 犹豫了几秒。 反正是免费的。 点开了连结。 註册,输入邀请码,进去了。 界面比他预期的简陋。一个对话框,上面一行字——“描述你想要的软体,我来帮你生成。” 方远把手放在键盘上。 他打字写需求跟以前工作一样: “我需要一个社区志愿者管理系统。功能:1.志愿者註册和排班,志愿者选自己有空的时间段,管理员能看到总排班表,按社区筛选;2.活动发布和报名,管理员发布活动(时间、地点、人数上限),志愿者在线报名,报满自动关闭。” 点“生成”。 进度条走得比想像中慢,他去厨房倒了杯水,回来的时候进度条到80%。 他一边喝水一边盯著最后那20%走完。 跳出来了。 屏幕上出现一个完整的界面,左侧导航栏三个入口:志愿者列表、排班日历、活动管理。他一个一个点开,排班日历能选时间段,活动页面能填標题和人数上限,报名按钮在活动详情下方。 配色丑,但功能都在。 他试著创建了一个活动:“周三下午·和平小区送温暖”,人数上限8人,保存。切到志愿者视角点“报名”,报上了,名额显示7/8,下面写著他的名字。 然后他停住了。 他的志愿者不只是排班和报名,每个服务的老人有情况要记,张奶奶糖尿病不能吃甜的,李伯伯腿脚不好只能参加一楼的活动。这些信息有些在飞书表格备註列里,有些没有。 他刚才忘了写这个需求。 回到对话框,补了一段: “加一个服务对象档案功能,每位老人的姓名、住址、电话、紧急联繫人、健康备註,志愿者能查看对应老人的档案。” 重新生成。 这次他盯著进度条从0走到100%。 左侧导航多了一个入口:“服务对象”。 点进去,表单栏位都在,他填了一条:张秀兰,和平小区3號楼201,糖尿病,忌甜食,紧急联繫人:儿子张磊。 保存。 切到活动详情页,张秀兰的信息完整地显示在弹窗里。 方远瘫倒在椅子上。 十万,两个月。 他坐在这把椅子上,前后不到一个小时。 桌上那杯水已经凉了。 方远截了几张图,打开小黄书。 《我花了0块钱,做出了外包报价10万的东西》 “先说背景。我做社区公益三年了,组织叫暖邻,帮老旧小区的独居老人,200多个志愿者全靠微信群和飞书表格管著。 一直想做套管理系统,找了外包,报价10万,工期两个月,我拿不出来。 前阵子收到一个ai工具內测邀请,需求打进去,一个小时不到,排班、报名、老人档案全出来了(图1-4)。 配色一般,但功能齐全。十万块两个月,和零块钱一个小时,我选了后者。 不是说外包黑,十万是市场价。就是公益这行,太多事卡在没钱上。” 发完,方远把手机搁一边,打开储物间的灯,开始清点明天活动的物资。消毒液三瓶,够了;血压计电池得查一下。 他走回来拿起手机,通知99+,点开帖子,评论区已经翻不到底了。 “什么工具?求连结!!!” “我开了个小店一直想做库存系统,这种也能做吗?” “这是ai生成的?我以为至少要花好几万找人开发” “做公益的大哥太牛了” “邀请码还有吗?能分享一个吗” “我也是做社区服务的,一直用纸笔记,求同款工具” “笑死,外包团队看到这帖子什么心情” “十万和零的对比也太炸了……” 第六十一章 倒计时 苏念念把笔记本电脑转过来的时候,屏幕上全是红色的数字。 “小黄书原帖,点讚十二万,评论八千多条,转发两万六,还在涨。”语速很快,“b站已经有up主出了实测视频;知乎热榜有一条问题叫“零块钱做系统是什么ai工具”,瀏览量四十多万;微信公眾號我刷到至少六篇,標题全是“十万vs零元”。” 韩路一和陆明洲坐在会议室里,白板上还留著昨天的架构图没擦。 “共创计划邀请码一共发了四百份,三天前就发完了,”苏念念继续,“但帖子火了之后,评论区和私信全在问“什么工具”、“能不能给个连结”。原贴主那边被淹了,他不知道產品叫什么,也给不出连结,他只有自己那个帐號。已有的內测用户也在被朋友同事问,有几个人把註册页转出去了。” 她翻了一下后台数据:“昨天新註册八百多个,都是填了邮箱在排队等码的。” 韩路一问:“已经进来的那批,用得怎么样?” “好评率百分之九十七,日均生成三点四次。反馈集中在ui和交互体验上,功能层面基本没人吐槽。”苏念念合上电脑,“数据很好看,现在的最大的问题是——” 她停了一下。 “热度窗口很短,路一你是做推荐的应该了解,这种热度没有新事件接上不会持续太久。” “但產品还没准备好,”她双手交叉放在桌上,“没有付费体系,没有客服流程,內测状態连用户协议都是临时版本,直接开放公测风险太大。” 陆明洲打开笔记本电脑:“我接一下成本。” “现在內测四百人,日均调用一千二百次,月推理成本两万三。”他在表格里拉了几行公式,“公测放开到日活两千五,月推理成本到十七万。如果帖子那波流量全涌进来,日活过万——” 他把电脑转过去,屏幕上是一列数字。 日活一万二,月推理成本八十二万。 日活两万五,一百七十万。 苏念念盯著屏幕没说话。 “现在月利润四十多万,”陆明洲说,“日活过五千,推理成本直接吃掉全部利润,再多就倒亏,用户越多亏越多。” 苏念念问:“所以你的意思是现在就收费?” “必须收费!”陆明洲说,“不收每月要倒贴几十万往上。” “我刚才说了產品没准备好,连付费体系都没有,”苏念念的声音快了一点,“收费,拿什么收?就算今天决定收费,最快也要一到两周才能上线!” “那就先不开放,等付费体系上了再放量。”陆明洲说。 “那热度窗口就没了!”苏念念提高了声音,“三到五天,帖子就掉下去了,等两周搞好收费再开放,评论区问“什么工具”的人早忘了这事了。” 两个方向都堵死了,开放就烧钱,不开放就错过窗口。 两人都看向韩路一,此时韩路一刚关闭视界。 “必须在这周之內开放公测,这种病毒式传播可遇不可求,比花多少钱打gg都有用。”韩路一定调,“定价模型好了我来写支付系统,用不了一周。” 苏念念深吸一口气:“定价可以做,但至少需要一周跑数据,用户愿意付多少,哪个功能值钱,免费额度设多少能兜住成本。这一周里,先用免费额度上限控住成本,別敞开了烧。” 陆明洲也没异议。 “定价是一方面。”他起身走到白板前,拿起笔擦掉了昨天的架构图,“成本那头也得压。我们现在用的是云厂商的標准价,如果能签一个大客户合同把单价压下来,同样的量,成本能砍掉一大截。” 韩路一说:“找一家云,签长期协议,走量拿折扣。” “对,但有个窍门。”陆明洲画了条曲线,“云厂商给折扣不是纯看用量:你消耗小,人家懒得搭理你;消耗大,单价確实低,但大到某个临界点,他知道你离不开他了,折扣反而给不动了。你需要的量越大,他手里牌就越多。” 他转过身:“最好的谈判位置,是你看起来在增长、值得锁定,但还没大到他要吃你的程度。” “bugkiller现在月消耗十来万,增长稳定,”韩路一说,“正好在这个位置。” “对,以bugkiller的名义签约,把折扣锁死。合同生效之后,开物的流量也从同一个帐號走。” 苏念念马上跟上了:“签之前,对方不能知道开物,他只看到bugkiller,月消耗十来万的稳定客户。” “一旦知道我们手里有个正在爆的消费级產品,”陆明洲说,“他就不会按bugkiller的量来定价了,他会按开物未来的量来谈——那个价格就没什么余地了。” 热度降下来之前要开启公测,公测之前要拿下折扣,两个倒计时叠在一起了。 陆明洲在白板上写了三个名字。 天枢云,崑崙云,青岳云,笔尖停在青岳云上,画了个圈。 “青岳体量最小,最饿,一直想往企业端冲,缺標杆案例,我们对他们来说有故事可讲。” 韩路一看著白板上那个圈,说:“我约梁宇出来聊。” 苏念念:“梁宇能拍板定价吗?” “不能,他是生態的,定价不归他,但他能把管事的人引出来。”韩路一说,“而且我对梁宇有数。” 他没细说,上次晚宴梁宇对他的態度变了,他用视界看过为什么。 陆明洲说:“要快。” 会散了,苏念念去设计定价方案的框架,陆明洲继续做成本模型。 韩路一路过工位区,在陈建业旁边停了一下。 陈建业在写代码,屏幕上开著四五个文件,云適配模块写了一半。 “老陈。” 陈建业抬头:“韩总?” “手头云適配的活先放一放,做个扩容方案,如果日活从现在的四百突然涨到一万,现有架构撑不撑得住,优先做这个。” “嗯。”陈建业撇了撇嘴。 手机响了,梁宇回消息了:“韩总,巧了,我正想找你。明天晚上有空吗?我来组个局?” 第六十二章 局【单章求追读!】 梁宇提前十分钟到了。 弄堂在外滩背面,走进去要拐两个弯,铁门上只有门牌號,没有招牌。他推门进去,跟服务员確认了包间,看了一遍菜单,把茶换成了大红袍。 请许峰出来不容易,上次季度復盘会散场,许峰在电梯口嘲讽他,那嘴脸他到现在还记得。但韩路一要的是基础设施折扣,定价不归生態部管,归许峰的大客户服务部。梁宇主动发了条微信,客客气气地说有个ai赛道的客户想聊年框。许峰倒是爽快,q4刚开头,多一个单子总是好的。 许峰比韩路一先到,坐下来先扫了一眼包间:“这地方不错,老梁你经常来?” “朋友推荐的,老板是安徽人,徽菜做得很正。”梁宇给他倒茶。 许峰端起茶杯抿了一口,扫了眼菜单:“你点就行。” 梁宇点完菜,顺著聊起了今晚要见的人:“源码科技,做bugkiller的,上次復盘会张总提过一嘴。” “有点印象,”许峰说,“ai代码审查?你们生態部的重点项目。” “对,月消耗十来万,增长不错。创始人很年轻,技术出身。” 许峰没再问,十来万月消耗,在大客户部连周会匯报都上不了。 梁宇看得出来他没上心,但也没办法,数字就是这个数字。 门被推开,韩路一到了。 “许总,久仰。” “韩总年轻有为。”许峰说,標准的客套。 梁宇招呼坐下,茶已经泡好了。许峰注意到韩路一手腕上没戴表,隨口问了句平时有什么爱好。 “写代码算吗?”韩路一说。 许峰笑了:“那是工作,不是爱好。” “对他来说可能真是爱好,”梁宇接话,“我看他聊起產品来,眼睛都在发光。许总你呢,最近还打球吗?” “好久没下场了,最近忙得脚不沾地。”许峰说,“等年底松一松,约一场。” “到时候算我一个。”梁宇说。 菜很快上了,私房菜的老板亲自端了两道,梁宇跟他寒暄了几句,看得出来是真的常来。 梁宇控场,先聊行业:ai赛道今年的变化,云厂商之间的竞爭格局,哪家大模型烧钱最狠。许峰喝了两杯之后打开了一些,讲了几个大客户的案例,没说具体名字,但数字很有衝击力。 韩路一听著,不急。 话题自然转到bugkiller,梁宇把球递过来,韩路一接了几句,说了调用量的增长曲线和几个客户案例。 许峰夹了口菜,隨口问了几个问题。 “团队多大?” “八个人。” “產品线怎么分布?代码审查一条线,还是有別的?” “目前主力是bugkiller,后面会有新的產品线,还在规划。” “增长预期呢?” “每个月都在涨,趋势还不错。” 许峰点了点头,没追问,给自己倒了杯茶。八个人的小团队,月消耗十万出头,他平时对面坐的是年消耗千万级的客户,今晚这个局,无非是给梁宇指点指点项目。 韩路一拿起茶杯,打开了视界。 【梁宇|36岁|青岳云·开发者生態部bd总监】 【情绪状態:热情(隱藏:谨慎)】 【核心诉求:促成交易→深化与源码合作关係】 梁宇正在跟许峰讲青岳生態部今年的案例库。 韩路一看向许峰。 【许峰|40岁|青岳云·大客户服务部总监】 【情绪状態:从容(隱藏:优越)】 【核心kpi:q4大客户新签数】 【基础设施资源折扣权限:最低可至成本价(60%)+5%】 【决策逻辑:客户规模+增长潜力】 【当前评估:小客户,凑个单量,顺便展示格局】 韩路一关掉视界。 饭后梁宇起身:“旁边有个地方不错,走几步就到,去放鬆一下?” 出了菜馆,同一条弄堂再往里走,是个足浴会所。包间里有三张躺椅,灯调得很暗,技师进来倒了功夫茶。 许峰躺下来,嘆了口气:“这种地方比办公室舒服多了。” 韩路一也躺下了,技师蹲下来开始泡脚,等手上动作稳了,他开口:“许总,想跟你聊个事。” “嗯。”许峰轻哼一声。 “源码想把核心云资源迁到青岳,签年框。” 许峰没意外——梁宇组这个局就是为了这个,他偏过头看韩路一:“预估年消耗多少?” “两百万起步,保守估计。” “独家吗?” “核心云资源可以独家放青岳,备份线还是多活备灾,但主力消耗放你们这里。” “愿不愿意做联合案例?” “可以。” 梁宇在旁边帮了一句:“源码在我们生態部是重点合作伙伴,bugkiller的开发者口碑很好,对青岳品牌是有加成的。” 许峰没接话。 韩路一说:“许总,青岳的计算实例標准价毛利大概三四成,大客户折扣打完,还有接近三成的利润空间。” 许峰的躺椅微微动了一下,看他的眼神跟饭桌上不一样了:“韩总做过功课。” “我想要的是接近成本价,年框两百万,单价锁死。” 翻译成大白话:源码每年至少花两百万,作为交换,不管以后实际用多少,单价都按今天谈的来,不涨价。 许峰没立刻回。 “增长预期多少?” “保守翻三倍。” 许峰在算两百万的帐,韩路一在算两千万的。 “成本价做不到,”许峰说,“成本加八个点。” 许峰嘶了一声,低头看了眼技师:“轻点。” 技师换了个力道,许峰重新靠回去。 “五个点。”韩路一说。 许峰看向他。 灯光很暗,看不太清楚表情,但韩路一的语气很稳。 “六个点,”许峰说,“最后的价格,年框两百万。” “成交。”韩路一说。 许峰看著天花板:“明天让你手下来找我们大客户组签合同。” 梁宇在旁边躺著,始终没插嘴。成本加六个点,许峰觉得这是给他梁宇面子,行,这个人情他先记著。 洗完脚,许峰先走的。 站起来的时候腿有点麻,扶了一下躺椅,笑著说:“梁总的局好,下次有好的客户多引荐。” “许总客气。”梁宇送到门口。 包间里剩下他们两个,韩路一掏出手机,给陆明洲发了条消息:“成了,六六折,年框两百万。” 陆明洲秒回:“回来过条款。” 梁宇也在穿鞋,两个人一前一后走出会所。弄堂很窄,路灯是暖黄色的,投下两道影子。 梁宇掏出手机叫代驾,一边等一边说了句话。 语气很隨意,像是收场閒聊。 “韩总,最近网上那个挺火的ai工具——零块钱做系统那个——是你的吧?” 第六十三章 病毒式传播 韩路一看向梁宇,笑了:“是。” 代驾到了,梁宇拉开车门,回头说了句:“韩总,以后要是需要青岳这边的资源,你知道找谁,咱们来日方长。” 年框合同顺利签署,韩路一带著赵磊和姜亦心,当天就完成了计算资源的迁移,第二天开物就公测了。 公测第三天中午。 姜亦心关上电脑,拎包站起来:“走啊,婷姐,今天吃什么?” “想吃麵,热汤的那种。” “和府?” “行。” 两个人下楼,拐进隔壁商场的和府捞麵。姜亦心点了草本番茄汤雪花肉麵,李婷要了骨汤软骨面。面端上来,姜亦心嗦了一口,抬头问:“陈建业今天没来,你说他是不是偷偷出去面试了?” “听说女儿发烧了。”李婷说。 “哦。”姜亦心心里愧疚了一秒,但她总觉得这人迟早要走,请假也好、出去面试也好,都不意外。 “婷姐你mbti什么?”姜亦心换了个话题。 “isfj。” “难怪,老好人型。” “你呢?” “enfp。” “看得出来。”李婷说,“每天精力都用不完。” “那叫生命力好吗。”姜亦心把嘴里的肥牛咽下去,“你说韩总是什么型?” “intj吧,理性狂魔。” “我觉得不是,他挺闷骚的,上次公布开物的时候你注意到没,他先拿那么丑的演示出来让大家猜,铺垫了半天,那个节奏绝对是设计过的。” “那是什么?infj?” “infj闷骚总裁,太上古女频了。”姜亦心点了下筷子,“苏总呢?” “estj,铁血女企业家。” “哈哈哈哈哈有画面了,“我不要你觉得我要我觉得”。” 李婷也笑了:“你研究得还挺深。” “嘿嘿。” 两个人又去排了杯奶茶才回去,路上经过会议室,门关著,透过玻璃能看到韩路一、苏念念和陆明洲在里面,屏幕上全是图表,白板上写著几行数字。 三个人的表情都很专注,苏念念在说什么,手指点著屏幕上的某条线,没人注意到外面。 姜亦心和李婷对视了一眼,各自回到工位。 会议室里,屏幕上的註册曲线从上午十点开始变陡了。 苏念念刷著后台数据:“今天的流量来源跟前两天不一样,社交媒体引荐占了六成以上,不是暖邻那条帖子的长尾,是新內容。” 她翻出几条:“你看这个,“帮我姥爷的象棋群做了个约棋系统”,三千多点讚。还有这个,“我用ai做了个宠物疫苗提醒,花了八分钟”——评论区全在问连结,用户推广比我们自己推有用十倍。” “按这个註册增速,今天日活就会暴涨,推理调用量会更夸张。”陆明洲看了看屏幕,“每个新用户首日平均调用量是老用户的两倍多,都在到处试。一个用户发一条,评论区二十个人问连结。” “今天註册量应该能过一万,”苏念念说,“前两天加起来才一万二,今天一天顶前两天总和。” 陆明洲放下笔,看著屏幕上的曲线没说话。 苏念念靠著椅背,盯著屏幕上那条不断往右上角爬的曲线:“已经快超过bugkiller了,我们踩对赛道了!” “定价模型还要多久?”韩路一问。 “免费期先把使用数据跑出来,哪些功能用得多、用户分几类、高频低频怎么分层,”苏念念说,“有了这个底子,下一步上灰度付费测价格敏感性,两步才能出定价模型。” “不能直接抄同类竞品的?”陆明洲问。 “代码生成工具有好几家,但能端到端交付完整產品的,就我们一个。”苏念念说,“没有同类竞品,连个参考锚点都没有。定价定高了用户跑了,定低了把自己烧死——只能拿自己的数据慢慢试。” 韩路一看了一眼手机,站起来:“我出去一趟,约了顾律师聊点事。” “行,数据我们盯著。”苏念念说。 下午的办公室很安静。 姜亦心切到瀏览器刷了一会小黄书,好几条晒开物的帖子。她打开內部监控面板,今天的曲线跟前两天完全不是一个形状,前两天是缓坡,今天像有人在下面装了个弹射器。 “嘿,”她叫李婷,指了指屏幕,“你看,今天涨得好猛。” 李婷凑过来看了一眼:“哇。” “你运营的那个官方帐號,粉丝多少了?”姜亦心问。 “昨天刚破两万,今天应该能到三万,”李婷掏出手机看了一眼,“但说实话涨粉主要靠用户自己发的內容带的,我发的官方內容数据一般。” “那不是挺好,用户自来水。” “是挺好,就是显得我没用。”李婷笑了笑。 赵磊听见他们两个人的对话,站起来远远的看了一眼她开著的监控后台。 “同时在线涨得有点快。”他说了一句。 姜亦心看了一眼:“两千多,怎么了?” 赵磊想了想:“不知道,陈建业扩容扩到多少来著?” 两个人对视了一下,都不確定。赵磊没碰过基础设施那块,姜亦心更不用说。 “应该够吧,”赵磊说,“之前做过扩容方案的。” 他坐回去了。 到下午四点,监控面板上的在线人数曲线像一个长长的斜坡,但办公室里没人在意。 四点半,姜亦心切回面板想看一眼增长数据发个朋友圈,看到在线人数,愣了一下。 五千。 她看到旁边响应时间在变——中午还是十几秒,现在四十多秒。 “赵哥,”她喊了一声,“你来看一下这个。” 赵磊走过来,脸色一下变了。 他快步走回自己工位,打开伺服器监控。 “要炸了。”赵磊说。 “什么?” 赵磊没回答,掏出手机给韩路一打电话。 就这一会儿的功夫,监控面板上好几个健康指標飘红,六个推理实例全部过载,排队请求数已经堆满了大半。 用户反馈群里有人发消息。 “是不是比上午慢了啊?怎么老生成不出来?” “好像卡住了,我刷新了三次也没出来。” 每一次刷新都是一串新请求,请求越多,响应越慢,人们就越想刷新。 死亡螺旋已经开始了。 第六十四章 救火版 顾司玥听完韩路一的想法,端著咖啡杯没喝。 “赵文渊的情况跟普通员工不一样,”她说,“他是codesafe创始人,不是打工的。劳动合同法的竞业条款管不到他。” “那鼎盛收购的时候呢?” “收购协议里几乎一定会加创始人竞业条款——我花钱买你公司,你不能转头再做一个一样的跟我竞爭。” “但是他是被拖售的,他是小股东,鼎盛跟大股东谈完,他强制隨售,没有选择权。” “那得看他有没有在收购协议上签字確认竞业条款。”顾司玥说,“拖售权强制的是股权转让,不是人身义务。如果他本人没签字——” “所以我可以试试?” “法律上问题不大。没签字的竞业本来就难打,何况鼎盛收购codesafe只要技术和用户,人都没留。”顾司玥放下杯子,“那么大的公司,里面山头不知道多少个,一个被洗出去的小股东去了哪,根本没人在意。” 她顿了一下。 “但入职声明还是要签,確认没有携带前东家商业秘密。他的收购协议原文也让他发给我,我帮你把底线摸清楚。现在没人管,不代表以后也没事,你要是哪天做大了跟鼎盛正面撞上,这些旧协议隨时会被翻出来。” “我先接触他一下。” 顾司玥喝了一口咖啡。 安静了几秒。 “如果——”她说。 韩路一看著她。 “如果我离开博衡,”顾司玥的语气跟刚才差不多,“源码会怎么做?” “顾律师,我认可的是你的能力。我跟博衡可没什么交情。”他说得很快。 顾司玥看了看表:“今天的諮询时间到了。” 韩路一笑了笑,正要说话,他的手机震了,是服务监控在报警。 “不好意思,我得回去一趟。”韩路一起身,椅子在地板上发出一声短促的刮擦,离开了咖啡馆。 顾司玥没说话。 韩路一刚打上车就接到了赵磊的电话。 “先提紧急工单让青岳放开gpu配额,我们要扩容。” “好。”赵磊说,“我现在就提。” “別等审批,能拉多少先拉多少,配额不够他们会拒绝,到时候再说。” 掛断电话,他赶紧给梁宇打了个电话,让他帮忙催一下优先级。 他推开办公室的门时,气氛跟他走之前完全不一样。赵磊坐在工位上,三个终端窗口全开著,右边的监控面板一片红,姜亦心站在他身后,不知道该干什么。苏念念、李婷和陆明洲在会议室,手在电脑上疯狂打字,用户反馈群一直在弹消息。 他径直走到座位上,打开电脑。 开启视界。 【开物·系统状態】 【推理实例:6/6过载|gpu利用率:100%】 【推理队列:2847请求等待|平均推理时间:>120s(正常值:8-12s)】 【请求超时率:42.3%|状態:服务降级】 【原因:为同时在线两千人设计,现在在线五千+】 每个用户都在提交生成请求,算力根本扛不住,请求堆进来出不去,用户刷新又製造新请求,越堆越崩。 “赵磊,姜亦心。” 两个人立刻围了过来。 “赵磊,你先把队列监控拉出来,一会儿队列分离你来做。“他看了一眼姜亦心,“小姜,你搬把椅子过来,学习的机会,一会帮我跑脚本。“ 韩路一低头开始敲命令。 “要不要把陈建业叫回来?”赵磊问了一句。 “他孩子生病了,別叫了。”韩路一说,眼睛没离开屏幕。 第一步,扩推理实例。 梁宇那边动作快,青岳已经把配额放开了,韩路一在配置文件里把实例数从六个直接拉到二十个,改完推给姜亦心。 “跑这个部署。” 姜亦心接过来,手指都在发抖,但敲得很快,部署脚本跑起来了,终端开始刷日誌。 新实例一个一个上线,监控面板上队列在分流,超时率开始往下掉,三十五……三十…… 两分钟后,超时率降到百分之十五。还是高,但至少不是瀑布式崩溃了。 第二步,加速率限制。 韩路一现写了一个中间件:单用户请求频率超过閾值,不再让请求排进队列等到超时,直接返回一个“排队中,请稍后重试”的提示页。 “这个也部署上去。” 姜亦心接过去跑。 效果立竿见影——用户端从“一直转圈”变成“排队中”,带预计排队时间。刷新不再製造新请求,死亡螺旋的输入被切断了。 第三步,分离队列。 现在ai推理和网页页面共用一个请求队列,推理慢了会把页面加载也拖死;要把推理请求分到独立队列,网页服务走另一条通道。 韩路一说了方向,赵磊自己写了配置,改了路由规则,手速比韩路一预期的还快。 “可以了,”赵磊说,“推理队列隔离完了,网页服务不受影响。” 姜亦心部署完最后一版,盯著监控曲线,数字一格一格往下掉。 “超时率……百分之二……百分之一……” 七点二十,在线人数开始自然回落了,开物的用户画像偏白天使用场景,晚上本来就不是高峰期。 七点四十五,超时率归零,推理时间回到正常的十几秒。 监控面板上一片绿。 “解决了,都下班吧。”韩路一没站起来。 赵磊关掉终端,拿起外套。 “走了。” “辛苦。”韩路一说。 姜亦心还在工位上,监控曲线还开著,但她低头在发微信。 【小姜(救火版)】:你不会信的,我今天经歷了人生第一次生產事故!!!比过山车还刺激 【大刘】:这么野的吗? 【大刘】:你还吃晚饭吗我快饿死了啊! 苏念念走到韩路一工位旁边。 “用户群里已经安抚了,明天早上我再发一条公告,措辞你要不要看一下?” “你定就行。” “流失情况我明天跑一下数据给你。” “好。” 苏念念拍了拍他的椅背,走了。 韩路一关了屏幕,拿起手机。 第二天早上八点四十。 陈建业一进办公室,就看见姜亦心端著杯子走过来,脸上带著那种经歷了大事后还在回味的兴奋劲儿。 “老陈!你昨天没在太可惜了——” 第六十五章 系统的问题 东方路儿童医学中心的输液室上午九点已经坐满了。 陈建业坐在输液椅旁边的塑料凳上,女儿的手臂扎著留置针,小脸烫得通红,三十九度二。她闭著眼睛,嘴唇乾得起皮,一只手攥著他的手指。 走廊里有一个小孩在哭,空调不够冷,空气里满是消毒水和汗混在一起的怪味。 输液瓶的液面一滴一滴往下走。 护士过来换了一次输液袋,女儿醒了一下,喊了声爸爸,又迷迷糊糊睡过去了,他摸了摸她的额头,还是烫的。 中午回到家,女儿吃了药又睡了。 老婆在厨房热粥,探头问了一句:“下午还去公司吗?” “都请假了,在家歇一天吧。” 老婆没说什么,把粥端出来,他隨便吃了几口,坐到客厅沙发上。 下午女儿还在烧,蔫蔫地靠在沙发上看动画片,看一会儿就闹,要喝水,水凉了不喝,要抱,抱起来又要下来。又给她量了两次体温,三十八度五,比上午好一点了,但还没退乾净。 趁她安静盯著屏幕的间隙,他掏出手机打开招聘app,上周主动联繫的几个猎头都没回消息,投出去的几份简歷,一份已读未回,其他的连已读都没有。三十五岁的后端架构,市场什么行情他比谁都清楚。 “爸爸我要尿尿。” 陈建业赶紧把手机锁屏,把女儿抱去了卫生间。 晚上八点半,女儿睡著了,烧终於退了。她的小脸上还掛著干掉的鼻涕眼泪,头髮上都是汗,被子被她蹬到一边,陈建业给她掖好,把门带上。 客厅沙发上坐下来,打开手机,静音刷了会短视频,弹出来一条微信,老周发的。 老周以前是鼎盛测试组的,和陈建业合作的多,是他在鼎盛为数不多的朋友。但是前两年老周转了管理,两人联繫就少了,他离职的时候还是喝了顿酒。 “老陈,最近怎么样啊?上岸了吗?” 陈建业点进对话框,打“挺好的。” 犹豫了一下,又刪掉。 打“还行”。 老周秒回:“那就好,改天约饭。” 老婆从臥室出来倒水,经过沙发的时候停了一下。 “学区房的事你想的怎么样了?”她声音压得很低,怕吵醒孩子。“我妈说隔壁那套又涨了,明年九月就来不及了。” “嗯,我再看看。” “首付还差多少?” “我算算。” 他没算过,根本不敢——在鼎盛的时候年包五十多万,现在源码开的三十万,有点期权,都是纸钱。差了一半的现金流,学区房的首付缺口只会越拉越大。 “再看看”是他这三个月说得最多的三个字。 老婆没再问,端著水杯回臥室了。 第二天早上,陈建业开车去公司。 推开源码科技的门,办公室里跟平时没什么两样。 姜亦心正端著杯子从茶水间走出来。 “老陈!你昨天没在太可惜了——” 她眼睛亮亮的,声音比平时大。 “你还不知道吧,”她往旁边桌子上一靠,“昨天下午服务全崩了,延迟直接飆到两分钟,用户群都炸锅了。” 陈建业放包的手顿了一下:“崩了?” “韩总带我们搞的,还有赵磊,三个人从下午五点多干到快八点。”她喝了口水,完全没有要停下来的意思,“我当时都慌了,韩总让我坐他旁边,他给我什么脚本我就跑什么脚本。” 她越说越来劲。 陈建业的脸色越来越难看。 姜亦心感嘆了一声:“我真的是第一次见有人那样排查问题的,连日誌都不看就知道瓶颈在哪,现场写改动,就好像不用思考一样。” 陈建业站在那没动,开物的扩容计划是韩路一让他写的,要求是支撑一万日活,他当时不以为意,按最低標准做的,能支撑两千同时在线,这两千人也不是同时发请求。结果,崩了。 “老陈你脸色不太好,”姜亦心歪了一下头,“昨天孩子看病累著了吧?” “有点。” “那你多喝热水啊。” 姜亦心走了。 陈建业也在工位坐下来。 打开飞书,群里置顶了一份文档,是韩路一写的,標题是《9.29线上事故復盘》,他点进去,从头开始看。 开头是事故时间线:16:27在线人数突破五千,16:31推理队列明显堆积,16:38首批用户超时,16:52超时率突破40%。 影响范围:全部在线用户,持续约三小时,预估流失用户数待统计。 然后是根本原因分析,用的五个为什么方法: 为什么服务崩了?用户量超出设计上限。 为什么用户量超出上限?社交媒体病毒式传播,增长超出预测。 为什么超出了没有预警?没有设监控閾值。 为什么没有设监控閾值?上线流程里没有。 为什么上线流程里没有?我们还没有正式的上线流程清单。 最后是改进清单,监控閾值、压测標准、上线流程清单、架构扩容方案,每条后面跟著负责人和截止日期。 他从头翻到尾,通篇没有出现他的名字——不,出现了,架构扩容方案负责人。 旁边赵磊一直在敲代码,中间去接了次水,路过他工位看了一眼,没打招呼。 看完文档,陈建业又坐了一会,然后他站起来,往韩路一工位走过去。 韩路一面前的两块屏幕,一边是代码,一边是飞书文档。 “韩总。” “老陈啊,”韩路一抬头看到陈建业,“孩子好点了吗?” 陈建业一愣。 他走过来之前想了很多种开场——道歉、解释、主动认错。他没想到第一句话是问孩子。 “退烧了。” “那就好。”韩路一的语气跟閒聊差不多,顺著就切进了工作,“昨天下午用户暴涨,把后台衝垮了。我们做了紧急处理,现在系统是临时方案。现在用户量还在涨,得赶紧重新设计一下,我正在写復盘文档,等写完了你看一下,做一下参考,再出一版设计给我。” 陈建业坐在椅子上,没接话。 他不知道说什么。 他在鼎盛干了十多年,见过太多次事故復盘了,每次復盘会都只做一件事,就是甩锅。先找是谁的锅,再定处罚,最后写一份没人看的改进方案。 “韩总……你不开除我吗?” 韩路一看著他,表情严肃了下来。 “我昨天看过了,你做的架构能支持两千同时在线,昨天一下涌进来三万新註册用户,这是谁都没想到的。” 韩路一停了一下。 “老陈,你记住,人都会犯错,所有的线上事故,都是系统流程的问题,不是人的问题。” 第六十六章 英雄无用武之地 赵磊把转椅滑到陈建业旁边,压低声音:“刚才韩总跟你说什么了?” 陈建业看他过来有点儿惊讶,两人一起入职的源码,赵磊基本没主动跟他说过话。 “让我重新出一版扩容设计。”陈建业说。 赵磊点了一下头:“没批评你?” “没有。” “昨天事故刚发现那会儿,我问韩总要不要叫你,他说你女儿病了,別叫。”赵磊说。 “……谢谢。” 赵磊把椅子滑回了自己工位。 苏念念来到韩路一身后,敲了敲隔板:“中午出去吃?” 韩路一抬头看了她一眼:“好,想吃什么?” 苏念念说:“麻辣烫吧!旁边新开了一家杨国福。” 姜亦心本来也要起来吃饭,看到两人走过来,赶紧默默坐下了。 到了杨国福,两个人各端一个碗在食材柜檯前面走,苏念念夹了毛肚、鸭肠、鸭血,又加了一把油麦菜,汤底选的骨汤大辣。韩路一隨手捞了点肥牛和菌菇,一大把粉条,选了个番茄汤。 苏念念看了一眼他的碗:“你吃这些能饱?” “够了。” 端到座位上,苏念念吹了吹汤,问韩路一。 “陈建业的事,你怎么想的?” “什么怎么想的?” “一点不追究?” 韩路一夹了口青菜:“我在鼎盛时候看他们甩锅,就想,我要是管人一定不这么干。” 苏念念在嚼毛肚,没说话。 韩路一看她表情,笑了一下:“你不同意。” “不甩锅是对的,”苏念念把上一口咽下去,说,“但你什么都不说?” 101看书 看书首选 101 看书网,101??????.??????超给力 全手打无错站 韩路一反问道:“在海狸什么样?” “海狸完全不一样,”苏念念说,“有一次线上灰度开关没关乾净,打到了生產环境,影响了八千个用户。当天下午復盘会,產品总监进来第一句话——“谁上的?”” 她学那个人的语气,怒气冲冲。 “是个刚毕业的后端,总监当场让他站起来,对著ppt把事故时间线念一遍,一屋子几十个人看著。后来那个后端自己走了。” 韩路一说:“所以我不想那样。” “我也不想那样,”苏念念看著他,“但你连一句重话都不说,他会觉得这事不严重。” 韩路一换了个话题:“开物的数据你看了吗?” 苏念念从手机里翻出一个表格,递过来。 “昨天暴涨之后,今天增长平稳了点,大方向没问题,但你看这几组数据。” 韩路一接过手机。 “这个是用户平均生成轮次,简单需求还好,三到四轮能出活;但稍微复杂一点的项目,七轮以上。有些用户跑了十几轮还在调。” 韩路一往下划。 “这个,token消耗结构,bugkiller检测出来的原始bug要往返几次才能修完,用掉了差不多60%的token,等於说我们一大半的算力费用花在生產bug上,纯浪费。” 韩路一把手机还给她。 苏念念接过来,说:“你有什么想法?” “模型太差了,我们用的开源通用大模型不够懂代码,”韩路一说,“它能生成,但生成质量不够高,质量不高就得反覆调,结果就是成本高、体验差。” “所以——” “得在模型层想办法。” 苏念念点了点头,低头喝了口汤。 韩路一也没再说话。 回到办公室,陆明洲在小会议室等著。 他面前摊著笔记本电脑,屏幕上开著一个表格,韩路一路过瞄了一眼,全是数字。 “韩总,”陆明洲关上门,语气压不住的兴奋,“整个海城的投资圈全在传开物,我的电话快被打爆了。” 韩路一坐下来。 “启禾也在联繫我,但是他们的规模投不了咱们了。” 韩路一想了想,启禾,陆明洲和他一起去见的那个投资人,不记得叫什么了。 陆明洲打开电脑,给他过了几个估值模型。 “见投资人还早,先確定一个问题,咱们打算融多少钱——我是说,至少融多少钱?”陆明洲问。 “钱的事还不急,我要先见个人。” 陆明洲问:“谁?” 韩路一站起来,没回答,拍了拍陆明洲的肩膀。 “你先把数据做好,vc的资料整理一下。” 韩路一打车到了南京西路一家瑞幸。 他到的时候赵文渊已经在了,穿一件灰色运动外套,端著杯生椰拿铁靠在窗边的高脚凳上看手机。 “小韩。”赵文渊看到他,站起来招手,指著旁边的一杯生椰拿铁:“帮你也点了一杯。” 韩路一走过来:“赵博士,谢谢。” “別叫我赵博士了,这年头谁还不是个博士。”赵文渊笑著说,“叫我文渊吧。” “从美国回来还爱喝这个?”韩路一一边插上吸管,一边问。 “一回来就爱上了,在加州可喝不到这个。” “最近在忙什么?”韩路一问。 “也没什么忙的。”赵文渊的语气比外滩晚宴上鬆弛了不少,“看了几个项目的技术顾问,都不太靠谱,偶尔看看论文。” 韩路一喝了口咖啡,听他说。 “最近有个新的论文出来,我自己在家搭了几张显卡,开源模型跑了个代码的post-train,效果不太好——主要是没有好数据。”赵文渊说。 赵文渊接著问:“鼎盛在做大模型的事上新闻了,不是什么秘密了,你听说了吗?” 韩路一说:“做的怎么样?” “我走的时候还早,但是鼎盛这次的数据量太大了,不止开源的那些,很多都是私有的。”赵文渊又喝了口生椰,“鼎盛现在有一个几十个人的团队在做这个,那个负责人从openai挖回来的,叫刘什么的。” 说到这,他顿了顿,感慨了一句:“真好啊,有卡有数据。” 韩路一打开了视界。 游戏化加载,招募面板亮起来,和上次筛简歷时一样的四行格式,投射在赵文渊身上。 【赵文渊】 【技术s(研究ss)|协作c|稳定a】 【特技:大模型训练|大模型后训练】 【词条:未竟|屠龙术|英雄无用武之地】 “文渊。” 赵文渊看向他。 “你想来源码吗?” 第六十七章 二十七 “你不是做的比我好吗?要我来干嘛?”赵文渊问。 “不是接著做代码检测,我想做大模型。”韩路一认真的说。 赵文渊看向窗外的街道。 “小韩,我在deepmind的时候是做模型训练的,你知道为什么我创业的时候没有做模型,反而选了应用层吗?” 韩路一看著他。 “因为大模型太贵了,这不是我们玩的起的领域。”赵文渊转向他,“谢谢你的邀请,但是,小韩,你再好好想想吧。” “没事,”韩路一说,“源码的门隨时给你开著。” 赵文渊笑了,他举起咖啡:“行,我记住了。” 两个人又聊了几句,韩路一起身告辞,走出瑞幸的时候回头看了一眼——赵文渊又低头看手机了,那杯生椰拿铁已经空了。 …… 虹桥站进站口排满了人。 韩路一背著双肩包从地铁出来,被人流推著往里走。前面一个大叔扛著两个编织袋,后面一家四口推著行李箱,小孩骑在爸爸脖子上,手里举著一面小国旗。 队伍慢慢排到他,他扫码进站,候车大厅座无虚席,地上也坐了不少人。广播大概在循环播报车次信息,被鼎沸的人声淹没了。 刚坐上高铁,微信响了。 【苏苏念念】:“路一,生日快乐!今天什么安排?” 【nullpointer】:“谢谢” 【nullpointer】:“回老家几天,已经在高铁上了。” 【苏苏念念】:“啊[沮丧][沮丧][沮丧],那你的生日礼物只能等你回来再给你啦” 【nullpointer】:“是什么?[口水]” 【苏苏念念】:“保密[嘘]节后见” 【nullpointer】:“节后见,国庆快乐” 韩路一看向窗外。 城市的轮廓向后方飞去,高楼变成矮楼,矮楼变成厂房,厂房变成农田。十月的稻田大片大片金黄,有几块已经收过了,露出短短的稻茬。 他拿出手机看了一眼工作群,没人说话。 戴上耳机,点开提前下载好的播客,他闭上了眼。 三个小时不长不短,到六安南站的时候,车厢里几乎没人动,大多数人的终点不在这。 出站口没有海城那种规整的网约车等候区,就是一条马路,计程车三三两两停在路边,司机摇下车窗喊“去哪去哪”。 韩路一上了其中一辆。 “师傅,皋城路,皋园小区。” 车子起步,开上一条不宽的路,两边是六层高的老居民楼,底商开著手机维修、沙县小吃、五金店,有几家的招牌顏色都褪色了。 到了小区门口,韩路一扫码付了车费,小区门禁过年的时候就坏了,现在还没修,铁门虚掩著。 一栋一单元,上到三楼,他敲了敲门。 周敏站在门口,穿著件灰色家常外套,头髮隨便扎在脑后,手上还沾著水。 “妈。” 她上下打量了一眼儿子。 “瘦了。” “没有,胖了一点。” “別骗我,你肯定没好好吃饭。”周敏转身往里走,“进来吧,拖鞋在那儿。” 韩路一低头一看,门口摆了一双新拖鞋,棉的,標籤还没拆。 他弯腰把標籤撕了,换上。 屋子不大,两室一厅,客厅放了张深色木头餐桌,上面已经摆好了碗筷。餐桌旁边就是冰箱,冰箱上还贴著一张他小学时候画的画,磁铁吸著,边角发黄了。画的是一栋房子,旁边站著两个人,一大一小。 他的房间在走廊尽头,门虚掩著。他推门进去,把双肩包放在门边,床上铺了新床单,书桌上放著他高中毕业的合影,镜框擦得乾乾净净。 “洗手吃饭,”厨房里传来周敏的声音,“过来把菜端上桌。” 韩路一去洗了手,周敏已经把菜端完了。 桌上四菜一汤,番茄炒蛋、红烧肉、糖醋排骨、拍黄瓜,中间一锅排骨海带蛋花汤。空的座位上摆了一碗麵,手擀的,上面铺著一个煎蛋,蛋黄金黄完整,边缘焦了一圈。 韩路一在餐桌前坐下。 “路头,生日快乐,”周敏坐在对面,先给他碗里夹了一块排骨,“你先把面吃了。” 面的汤底是排骨汤——周敏每次做糖醋排骨之前都会先燉一锅汤,再把其中一部分拿来糖醋。面上撒了点葱花,他吃了一口,咸淡刚好。麵条韧韧的,有点粗,是周敏自己擀的,他从小吃到大。 周敏看著他吃麵,自己没动筷子。等他吃了大半碗,才夹了一筷子番茄。 “工作忙不忙?” “还行。” “国庆放几天?” “七天。” “那就好,好好歇歇。”周敏又给他夹了一块红烧肉,“你看你,在大城市也不知道好好吃饭。” “我好好吃了。” “外卖吧。” 韩路一没接话。 “跟同事处的怎么样?领导对你怎么样?” 韩路一夹著排骨的筷子停了一下。 妈妈说的是鼎盛。 “挺好的。” 周敏夹了口菜,像是隨口问了一句:“谈朋友了没有?” “没有。” “二十七了,”周敏看了他一眼,“你也上上心。” 韩路一没接话,埋头喝汤。 饭后她收拾桌子,韩路一说“妈,我来洗”,被瞪了一眼。 “你回来就歇著,別在这碍事。” 韩路一坐在沙发上,听见厨房里水龙头的声音,碗碟轻碰的声音。 他打开了视界,对著厨房那个背影。 光標转了一圈,暗绿色的面板展开,投射在周敏背上。 【周敏|51岁|六安一中语文老师】 【颈椎c4-c5轻度退行性变|长期低头/固定姿势所致】 【睡眠效率偏低(深睡占比<15%)|持续大於6年】 面板右下角亮了一行小字: 【无严重异常。】 韩路一仔细看了一会儿。 周敏洗完碗出来,擦著手看了他一眼。 “发什么呆?” “没有。”韩路一反应过来,关掉视界,“妈,你別老站著,坐会儿。” “我又没怎么站。”周敏在旁边坐下来,拿起手机,眉头皱著,手指在屏幕上戳来戳去,像是在跟什么东西较劲。 “妈,你看什么呢?” “排课的什么手机app,什么ai做的,你们年轻人的东西,我搞不懂。” 韩路一凑过去看,一愣。 第六十八章 瓜片 这什么玩意儿?怎么这么丑啊? 周敏的手机屏幕上是一个网页应用,配色用的大红大蓝大绿,撞在一起很刺眼,但能看出来是个课程表——有时间轴,有教师名字,有教室编號。 “怎么这么丑?”韩路一说,“你们学校花钱做的?” “什么花钱,学校哪有这个钱,”周敏把手机往他这边递了递,“新来的那个小王老师自己弄的,说不花钱,用一个什么ai做的。” 韩路一打开视界。 【web应用|排课管理系统】 【构建平台:开物(kaiwu)|默认模板|未自定义配色】 【优化空间:拖拽触发区域偏移|移动端未做响应式適配】 “我也搞不太懂,小王教了我两遍了,”周敏用手指戳著屏幕上一个色块,“你看这个课,我怎么排到下午去?” 韩路一把手机接过来。 他的手指在那个粗糙的界面上划了一下。课程色块可以拖动,得按住稍微久一点才能激活,但激活后也没有阴影变化,让人困惑。他把那节课从上午第四节拖到了下午第一节,色块落进时间格,顏色变了一下,表示成功。 “妈,你按住这里,等一秒钟,然后拖到你想放的格子里,鬆手就行。” 周敏接过手机,照著试了一下。 “哦。”她又划了两下,把另一节课也移了位置,“行,这回记住了。” 韩路一有一种奇妙的感觉,在意想不到的地方,妈妈间接用上了自己的產品。他的动作,好像带起了一点涟漪。 晚上,韩路一在他的小床上躺下来,床是木板床,铺了层厚棉被,没有弹簧床垫,枕头是蕎麦的。他从小就这样睡,妈妈说对脊椎好。 他盯了一会儿天花板。 翻了个身,没看手机,很快就睡著了。 第二天上午陪妈妈去菜市场。 周敏在摊位前挑茄子,旁边卖豆腐的大姐招呼了一声。 “周老师来啦!” “嗯,买点菜。” 大姐看到韩路一,招呼道:“哎,这是你儿子吧?长这么高了!在海城做什么呀?” 周敏停下挑茄子,抬起头答道:“在大公司上班呢,搞电脑。” 韩路一站在后面默默跟著,没说话。 在家待了两天。 上午睡到自然醒,吃妈妈做的早饭,白粥煎蛋咸菜。帮她修了卫生间漏水的水龙头,清了手机里的流氓推送,坐在阳台上发了会呆。 第三天上午,他坐不住了。 以前在鼎盛的时候,天天加班,下了班就不想工作。现在比那时候还忙了,可是脑子根本閒不下来,全是各种想法——排课app的配色太丑,开物的生成模型没有对uiux进行优化;用户的引导流程可以再优化,在系统提示词中加入自动检测用户输入是否完整的內容……他打开手机备忘录边想边写,半个小时,写了二十多条,有正经的產品规划,也有几个字的灵感碎片。 他把备忘录关上的时候,意识到自己已经不想待了。 他打开12306看了一眼,十一点二十有一班回海城的高铁,还有票。 其实不回去也行,电脑在身边,他隨时可以工作。但在妈妈身边工作的感觉很彆扭。妈妈以为他在放假,他要是打开电脑坐一下午,她肯定问“你不是放假吗?怎么还得加班?”他不想告诉妈妈自己已经不在鼎盛了。 他放下手机,去厨房倒了杯水,在门口站了一会儿。周敏在客厅看电视,声音开得不大。 “妈,”他说,“我想一会儿回海城了。” 周敏没立刻回头,过了一会儿,她拿遥控器把声音调小了一点。 “才回来两天就走啊?” “有点事想回去弄。” 周敏又沉默了一会儿。 “行吧。” 她去柜子里翻了翻,拿出两罐六安瓜片,铁罐装的,挺沉。又去厨房拿了个饭盒,装了几个煮鸡蛋,切好的苹果。 “茶叶带给你同事尝尝,这个路上吃。” 韩路一接过来,把茶叶塞进包里,包一下子沉了不少。 周敏站在门口看著他换鞋。 “路头,实在累了就回来。” 韩路一站起来。 “知道了,妈,你注意身体。” 他拉开门出去,脚步声从三楼响到一楼,铁门发出咣的一声。 周敏站在门口,听到楼下的声音没了,转身回去把电视关了。 又是三个小时的高铁。来的时候他闭著眼听播客,脑子是空的;回去的时候他打开电脑,在备忘录和代码之间切换。窗外的田野又变回了城市。 出了虹桥站,他站在出站口看了一眼手机,三点四十。 他叫了一辆去张江的网约车。 共享办公楼国庆完全没人,电梯里只有他一个,走廊里只有他的脚步声和中央空调的嗡嗡声。 韩路一刷卡进门的时候,看到办公区有一盏灯亮著。 他愣了一下。 苏念念坐在她的工位上,面前开著两个屏幕,一边是开物的用户数据后台,一边是一份竞品分析的表格,密密麻麻的。她戴著耳机,没听到有人进来。 韩路一走到她旁边,敲了一下桌面。 苏念念猛地抬头,发出一声尖叫:“啊!” 看清是韩路一,尖叫声才停下来,她嚇的几乎哭出来了:“你怎么在这啊?” 韩路一被这个场景也搞得慌乱了:“没想嚇你,不好意思啊……没事吧?” 苏念念平復了一下气息:“没事没事,就是突然一下……你不是回老家了吗?这么早就回来了?” “待不住。”韩路一放下双肩包,“你怎么在这?” “閒著也是閒著,用户数据刚好有空整理一下,”苏念念打了个哈欠,“平时太忙了。” 韩路一看了一眼她屏幕上的表格,列了七八个竞品,每个都標註了功能对比、定价策略、用户评价。 “你做了多久了?” “今天第二天。”苏念念说完,看了一眼他身后的双肩包,撑得鼓鼓囊囊的,“你包里装的什么东西?” “茶叶,我妈让我带给同事的。” 苏念念笑了一下。 “有我的份吗?” 韩路一拿出一罐放在她桌子上:“我的礼物呢?” “明天带给你啦!” 韩路一拉开旁边的椅子坐下,打开电脑。 “正好你在,有件事一定要提上日程了——开物做出来的app太丑了!” 第六十九章 好丑 ui丑的问题韩路一早就听苏念念说过了。 他看过用户反馈,“丑”这个分类在反馈里排第三,前两名是“卡”和“不会用”。卡的问题在於模型能力、软体架构、伺服器扩容,这个已经在做了。不会用的问题在用户引导流程,这个苏念念也在改进了。至於丑,他看著也还行,一直没当回事。 ——又不是不能用。 直到他在周敏手机上看到那个课程表app,从终端用户的视角,才体验到这种丑有多令人困扰。 听他主动提起这个话题,苏念念意外的看了他一眼,像是在说“你终於懂了”。 “我已经联繫过林晚晴了,”苏念念说,“想约她帮开物做一套组件设计。” “她怎么说?” “说国庆要带孩子,没法出来工作。” 韩路一想了想:“要不……我来带?” 於是第二天下午,两人站在了林晚晴家门口。 林晚晴打开门,她穿著家居服,头髮隨便扎了个丸子。 上次见到的那张摺叠餐桌摆在客厅中间当工作檯,ipad支在支架上,旁边搁著手绘笔和一杯茶。 里面有一间房门半掩,能看见里面立著画架,窗台下摞著顏料盒。 朵朵趴在客厅沙发的靠垫上看小猪动画片,电视声音开得很小。 “路一哥哥!”朵朵看到他,从沙发上蹦下来跑过来。 “嗯,”韩路一把手里的袋子递给林晚晴,“水果,刚在楼下买的。” 林晚晴接过去看了一眼:“谢谢啊,买这么多。” “你们聊,朵朵我带著。” 他在沙发那头坐下,朵朵立刻爬到他旁边。 餐桌那边,苏念念已经开始了。 “我先说数据。”她把电脑屏幕转向林晚晴,上面是开物后台的用户行为分析,“开物现在生成出来的app,也不算特別丑,准確地说是平庸。规规整整的,能用,但没有任何设计感。所有app出来都长差不多。” 她滑到一张截图,四个不同用户生成的app界面並排放著,配色不一样,但布局、按钮样式、字体大小几乎一模一样。 “就像是校服,”苏念念说,“没人想穿出去。” 林晚晴看著截图,两只手平放在ipad上。 “然后看用户反馈。”苏念念打开另一个表格,“出现频率最高的操作——反覆在对话框里打“让它变好看”。” 她念了几条: “配色换一个。” “这个按钮能不能更圆润。” “整体风格高级一点。” “模型能力有限,改来改去还是那个味道,”苏念念说,“甚至越改越乱,用户试了三四轮放弃了。” 沙发那边,朵朵把画本翻开给韩路一看:“你看,这是我画的小猫。” 那只小猫有一个独角兽的角,上了彩虹色,还有两条尾巴,但確实能看出来是只猫。 “画得真好。”韩路一说。 餐桌那边,林晚晴看完那些反馈,开口了。 “他们自己都不知道想要什么。” 苏念念一愣,她准备了一整套分析——放弃率曲线、反馈词频统计、用户行为路径——结果被人一句话跳到了终点。 “……对,进入ui调整对话的用户里,超过六成在第三轮之后停止修改,但最终上线的版本大部分回退到了调整前。”苏念念说,“越改越乱,最后还不如不改。” “所以我的思路是——”她打开一个新文档,上面是她自己画的產品草图,“增加可视化的调整工具,顏色选择器、字体切换、间距滑块、布局模板,用户现在只能打字说“好看一点”,太模糊了。我们给他们具体的旋钮,让他们自己精確调整。” 林晚晴听完,摇了摇头。 “这样不行。” 苏念念的手停在那。 “就像我刚才说的:他们不知道自己要什么,”林晚晴看向她,“你给一个没画过画的人两百管顏料,他能调出好看的顏色吗?选项越多他越慌。” “这不一样——” “一样的,”林晚晴的语气很確定,“你问一个人喜欢什么风格,他大概率说不出来。但你摆三张图在他面前,他肯定能说出来最喜欢哪张。” 苏念念靠在椅背上,盯著天花板看。 “贾伯斯。”她突然说。 林晚晴没跟上。 “安卓骂了苹果多少年?什么都不能定製,桌面不能改,默认应用不能换,连个文件管理器都不给,”苏念念说,“结果呢?用户付费率、忠诚度、满意度,全是苹果碾压。贾伯斯从来不问用户想要什么,他直接告诉你你需要什么。” 她把椅子转回来,看著林晚晴:“你刚才说的跟他一样。” 林晚晴笑了一下:“那我跟贾伯斯一个水平了?” “至少这个观点是。”苏念念敲了敲桌面,“行,不给工具,给结果。那问题来了——怎么给?” 沙发那边,朵朵拽了拽韩路一的袖子:“路一哥哥,陪我画画。” 韩路一被拽著站起来,走到茶几旁坐下,朵朵把彩笔推到他面前。 “你画一个公主。” “……我不会。” “那你画一个房子。” 韩路一拿起彩笔,画了个三角形屋顶,下面加了个方块,再加上门和窗,旁边画了个太阳。 朵朵看了一会儿,认真地评价:“好丑。” 韩路一看了看自己画的,又看了看朵朵画本前几页那些歪歪扭扭但色彩斑斕的画,发现她说的是事实。 餐桌那边,苏念念已经切回了需求模式。 “我的方案是做一套设计组件。”她把屏幕转向林晚晴:“定义好组件的样式规范,按钮多大、圆角多少、间距多宽、配色怎么搭,所有生成的页面都遵守这套规则,出来至少不丑。” 她顿了一下,看著林晚晴:“但ui组件跟你平时画插画不一样,插画追求个人风格和独特性,组件追求的是克制和一致性,听起来可能有点无聊。” “不无聊,我做过组件,”林晚晴说,“但还有个问题。” “如果所有app出来都长一个样,用户怎么觉得这是“我的”app?” 第七十章 美图 苏念念没说话。 她刚才那套方案只是把丑的校服变成了不那么丑的校服,还是没有解决根本问题。 林晚晴站起来,手指在ipad上滑了几下,点开一个文件夹,里面是她过去接商业项目的案例,她把ipad递给苏念念,屏幕上並排著六套app界面。 “这是我之前帮不同客户做的,”林晚晴说,“你看配色、圆角、字体、图標,每套都不一样,但设计质量差距不大。你觉得区別在哪?” 苏念念一张一张滑过去。 “风格。” “对,风格。”林晚晴把ipad拿回来,点开一张空白画板,手绘笔在上面快速勾了几个框,“不是一套组件打天下,是多套风格模板。” 她画了一排方块,每个方块里写了几个字:“商务简约”、“潮流撞色”、“自然清新”、“暗黑科技”。 “用户选模板,就像选滤镜,”她说,“选完再生成,出来的东西自带风格差异。选了自然清新的人和选了暗黑科技的人,生成出来的app第一眼就不一样。” 苏念念盯著那几个方块看了一会儿。 “多一步选择,”她说,“用户会不会嫌麻烦,直接不用了?” “不是多一步,是少三步。”林晚晴说,“现在用户生成一个不喜欢,换个描述再生成,还不喜欢,再换——要试三四次才能撞上自己想要的感觉。选了模板,一次就到位。” 她在第二排画了几个更小的方块,从上面的模板拉下箭头,每个箭头旁边標了几个关键词——配色比例、圆角半径、阴影深浅、字体搭配。 “用户不需要懂这些,选了模板就等於选了一整套规则。” 沙发那边,朵朵已经放弃让韩路一画画了,改成自己画,韩路一负责递彩笔。 “红色。” 韩路一递过去。 “不是这个红,是那个红。”朵朵指了指。 韩路一看了看,那堆彩笔里有五种红,最后在朵朵的指导下找到了正確的那支。 餐桌那边,林晚晴的手绘笔已经画到了第三排。 “最后一层,”她说,“aigc绘图。” 苏念念抬头。 “app里面的头图、图標、背景插画,用图像生成接口做。用户描述“我想做一个猫咖的app”,不只是功能出来了,连首页头图上的猫也出来了。” 她在画板上画了一个手机框,里面是一个粗略的app界面,顶部有一块大图区域,標了“aigc生成”。 “模板做骨架,提示词做皮肤,aigc做脸面,三层叠完,每个app才真正是“我的”app。” 苏念念靠近把那张画板来回看了两遍。 “好,”她说,“节后先出一套,跑起来再说。” 本书首发.??????,提供给你无错章节,无乱序章节的阅读体验 林晚晴点了下头。 “ai画图这块……”她低头把ipad放回支架上,“说实话,以前觉得画画就只有人能做。现在这些ai出来的东西,不说超越,至少够用了。我学了十几年的东西,只要几十秒。” 苏念念看了她一眼,没接这个话题。 林晚晴接著说:“我先想想风格分类,回头列个方案出来。” 討论差不多了,窗外的光已经偏暖了。 苏念念看了眼时间:“都六点了,一起吃个饭?” 林晚晴摇了摇头:“不了,朵朵还得早睡。” “那我们走了,”韩路一站起来,朵朵抬头看他,手里那张独角兽猫又多了一对翅膀和一把剑。 “路一哥哥,下次还来画画。” “好。” 林晚晴送他们到门口,朵朵扒著门框往外探。 出了小区门,韩路一和苏念念在街上走了一段。 “你还挺会带小孩的,”苏念念说,“將来肯定是个好爸爸。” 韩路一没当回事:“那不是带,那是被使唤。” 苏念念笑了一下。 两人在一家麻辣香锅坐下,点了一个鸡翅锅一个大虾锅。 菜还没上,韩路一说:“还在放假呢,工期这么紧,她还得加班工作,是不是太急了点?” 苏念念掏出手机翻了一会儿,找到一张图,把屏幕推到他面前。 屏幕上是一条时间线,从2008年到2013年,標满了logo——全是当年做修图的app。 “你知道美图秀秀吧?” “知道。” “跟它同期做修图的app不下二十个,”苏念念指著屏幕上那一排logo,“技术上没有任何差距,有几个比它还好,有滤镜算法比它强的,有背靠大厂资源的,你现在记得第二名叫什么吗?” 韩路一没说话。 “美图秀秀贏在一件事——它让用户第一个愿意发朋友圈的。功能谁都能抄,性能谁都能优化,但窗口期只有一次。用户只记得第一个让他们“哇”的產品。” 韩路一看著那张时间线。那些消失的logo排在那里,一个比一个陌生。 这是他教过姜亦心的道理。 他拿起茶杯喝了口水,嘆了口气:“当牛马的时候被逼著卷,当老板了还得逼別人卷。” 苏念念把手机收回去。 “你有没有算过,”韩路一说,“加上aigc绘图之后成本是多少?” 他掏出手机打开计算器,两人对著屏幕按了一阵。 aigc出图按次计费,风格提示词让模型调用翻倍,伺服器扩容又是一笔—— “成本可能要到原来的三倍,”苏念念说,“不能再免费了。” 两人对视了一下。 “假期回来订价方案我应该做完了,”苏念念说,“林晚晴的风格模板上线之前得定好,那是收费的最佳窗口。” “嗯。” 饭上来了,苏念念忽然想起什么,从包里翻出一个小盒子推过去。 “早上忘了给你,生日快乐。” 韩路一拆开,一副入耳式降噪耳机。 “你那副有线的该退休了,”苏念念拿起筷子夹鸡翅,没看他,“坐在那线晃来晃去的。” “谢了。”韩路一把盒子收进口袋。 两人吃到一半,韩路一的电话响了——陆明洲。 韩路一正在剥虾,用小指接通,碰了一下扬声器:“餵?” “韩总!假期过得怎么样?国庆快乐啊!准备准备,下周带你去相亲。” 韩路一皱了下眉:“什么?” 苏念念的筷子停在半空。 陆明洲在那头说上了——时间、地点、要带什么材料。韩路一还在追问细节,但苏念念已经没在听了。 第七十一章 相亲局 陆明洲在电话那头还在说:“……资料列印五份就够了,电子版我已经做好了,到时候发电子版给对面——” “等一下,”韩路一打断他,“什么相亲?” 陆明洲笑了一声:“融资相亲会,speed dating。十几个项目、十来家机构,八分钟一轮,像相亲一样。你当我真给你介绍女朋友啊?” “……你说话能不能別这么嚇人。” “下周四下午,穿得正常点就行。” 韩路一用小指掛了电话,苏念念已经恢復了正常,低头吃鸡翅。 “老陆让我去参加个路演活动。” “嗯,听到了。”苏念念语气平淡,筷子夹起一块藕片。 十月八日,国庆假期后第一个工作日,上午十点。 韩路一跟著陆明洲走进了一栋写字楼的十七层,是一家叫深流资本的头部基金自己的办公区改的活动空间。 从走廊拐进去,是一个超大的开放空间,两面都是落地窗,中间有几面白墙,投影屏幕上滚动著当天的项目列表,十五个公司名从上到下排开,源码科技排在第九个。装修很简洁,看著没花多少钱,但坐下来就知道不便宜。 中间有两排长桌面对面摆开,中间留了刚好侧身能过的通道。每个位置放了矿泉水、一张a4项目介绍卡、一支笔。一面墙上贴著时间表:15轮,每轮8分钟,中间一次15分钟喝茶休息时间,总共两个多小时。 创始人这边穿什么的都有:有西装三件套的,皮鞋擦得能照人,看著像销售多於创业者;有卫衣牛仔裤的,网际网路標配;还有一个穿白大褂进来的,胸口还別著工牌,写著【科瑞生物实验室】——医疗赛道? 投资人那边商务休閒的居多,polo衫衬衫休閒西装,每个人都带著腕錶。几个年轻的低头刷手机,几个年纪大的翻项目资料,用笔在a4卡上做標记。 签到台站著两个年轻姑娘,负责发胸牌、引座,动作熟练利落,韩路一接过胸牌低头看了一眼——【源码科技·韩路一·创始人】。 大部分创始人在低头翻手机,翻带来的商业计划书。有个人对著墙小声背台词,嘴唇动得很快,手在空中比划。 投资人那边倒是都很淡定,像在饭店的食客,在等上菜。 韩路一和陆明洲並排坐下,每个项目两个位子,对面投资人那边也是两个位子。 韩路一扫了一眼对面投资人的胸牌,名头五花八门——合伙人、gp、投资总监、vp,看著都挺大。 “这些头衔怎么排的?”他低声问陆明洲。 陆明洲瞄了一眼对面,压低声音:“gp,general partner,就是合伙人,最大的,能拍板的;总监是干活的中坚力量,能聊能投能决策;vp听著唬人,但在投资圈vp遍地都是,很多是出来拉项目的,不一定有决策权。” 韩路一惊讶道:“总监比vp大?” “金融圈就这样,”陆明洲笑了一声,“出去社交要名头响,所以人人都是vp。你就记住,今天能跟你聊到点上的,不看名头,看他问的问题质量。” 韩路一点了下头。 他叫不紧张。 铃声响了,第一轮开始。 对面坐下来一个年轻男士,胸牌上写著【新潮资本·林殊·vp】。 他拿起面前的商业计划书看了几页,开口道:“我们主要看消费和新零售,开发者工具这块暂时不是我的领域。” 韩路一点头:“理解。” 两个人客气地坐满了八分钟,聊了聊天气和国际局势,铃声一响各自鬆了口气。 第五轮坐到对面的是北斗创投的总监,叫姚梦琳,戴一副金丝眼镜,一上来就问技术架构。 “你们的模型是自研还是调api?后训练方案是什么?自动修復的准確率怎么算的?” 问题一个接一个,密度很高,都在点上。韩路一正经回答,两人从模型选型聊到推理成本,又从推理成本聊到数据飞轮——铃声响了,没聊完。 姚梦琳递来一张名片:“韩总,技术有深度,有机会来我们办公室聊。” “好。”韩路一接过名片,职位还印了一行小字:清华计算机系博士。 “臥虎藏龙啊。”韩路一小声对陆明洲说。 第六轮,一个刚毕业的年轻分析师,全程低头记笔记,问了三个问题都是从网上抄的模板。韩路一耐心答完,对方认真道谢,感觉像是来上课的。 第七轮,两个人坐下来,一个问问题一个记笔记,像在做审计,问完之后面无表情说了句“我们会回去討论的”,走完了流程。 第八轮。 对面坐下来一个四十多岁的男人,西服穿在身上显得有点宽鬆,胸牌上写著【兴隆venture·peter·gp】,旁边跟著一个小助理,在身边替他做自我介绍:“这位是peter总。” peter一开口就飆英文夹中文:“我们fund之前投consumer,现在pivot到ai track,你们这个case我觉得很interesting,market size够大,team background也很solid。” peter说话太有特色,韩路一忍不住扫了他一眼。 【王大力|48岁|兴隆创投合伙人】 韩路一没说话,等他说完。 没等到。 这位屁总说著说著就跑偏了:“韩总是哪里人啊?” 说完没等韩路一回答,就接著说:“我是山东的,前两天我去山东参加一个activity,你猜怎么著?我小学时候的校花给我发message,她跟我说“peter,你现在好帅哦”——” 韩路一忍不住打断他:“peter,你小学就叫peter了吗?” 屁总的脸一下就憋红了,旁边的小助理忍不住转头捂嘴憋笑。 铃声响了,韩路一直接起身,那位gp还坐在原位,表情有点掛不住。 陆明洲凑过来低声说:“你这懟的也太直接了。” “投资人还真是什么素质的都有。” 陆明洲笑了一声:“有钱和有素质是两件事,习惯就好。” 到中场休息了,15分钟。 隔壁桌一个创始人还在讲,声音紧张到发抖,对面的投资人在刷手机,连头都没抬。 韩路一到休息台拿咖啡,有人从后面打招呼:“韩总,好巧啊。” 第七十二章 不能跟任何人说 是董飞,穿了件深蓝polo衫,气色比外滩晚宴见那次差很多,黑眼圈很明显。 “又见面了,刚才我在屏幕上看见你的项目了。上次你还说看不懂ai编程,结果你是全场看得最明白的那个。” 韩路一笑了下:“还在学习。” “行,这话我信。”董飞端起咖啡杯,往创始人那排努了努嘴,“你也来这儿找钱?” “是啊,董总呢?” “c轮。”董飞吹了下咖啡,“双减把整个教育赛道都搞臭了,我们做的是成人教育,跟k-12没关係,但投资人一听“教育”俩字就摇头。我都想改名叫“ai教育”了,好歹能多聊三分钟。” 他问韩路一的项目怎么样,韩路一简单说了几个数字,董飞听完陷入了沉默。 过了好一会,他嘆了口气:“你这是挑人,我这是求人,差距太大了。” 两个人靠著茶歇台聊了几分钟,韩路一发现在很多问题上跟董飞都有共鸣。 “这种事没法跟员工说,跟家里人说了也是添堵,跟投资人就更不能说了。”董飞顿了顿,“只能跟同样创业的人聊。” 韩路一点了点头,感同身受。 “活动散了来我这喝茶啊。”董飞说。 茶歇结束的铃声响了。 韩路一又一轮一轮聊下去。 最后一轮,对面坐下来一个男人,三十出头,胸牌上写著【新锐基金·徐周行·合伙人】。 这人跟前面的都不一样,不急著要数据,上来先聊行业判断。 “ai代码生成和检测这个赛道我们跟了半年了,国內外的產品都看了一遍,你这个產品做质量保障,切入角度太好了,不同凡响。” 韩路一点了下头,没接话,等他继续。 “如果有机会参与,我们希望做领投,估值这块我们可以给到行业顶级,条款也可以谈得宽鬆一点。另外我们在大企业那边有不少资源,可以帮你们对接。” 估值高,条款松,还愿意帮对接客户,很有诚意了。 【可信度:极低】 【资金结构:多层嵌套】 【实际关联控制人:王志远】 面板上的字安静地浮了一秒,消失了。 王志远,又是他。 韩路一不动声色,继续聊完剩下的几分钟。 铃声响了,两人握手,徐周行坚持扫了韩路一的微信。 “回去让团队看看,有消息联繫您。”韩路一说。 徐周行笑著点头离开。 活动结束,创始人和投资人三三两两散场,有几个投资人主动走过来加微信,陆明洲在旁边挨个加了。 出了楼,两人走到停车场。 陆明洲问:“感觉怎么样?” “感觉真想出钱的没几个。” 陆明洲点了下头:“对,这种活动不是成交的地方,让他们知道有你这个项目就行了,后面有兴趣的还得单独谈。今天主要是让你来適应一下和投资人打交道的节奏,我们现在反而不著急融资。” 韩路一问:“为什么不急了?” “增长这么快,每多一个月数据,估值就往上走一截,现在去谈,估值八千万,再等两个月,可能就一点五个亿了。” 韩路一让陆明洲先回张江了,自己去了董飞的办公室。 董飞的公司在徐匯一栋写字楼的十二层,前台写著“翰林在线”,旁边画著一个学士帽。 办公区不大,但工位明显铺得比人多——靠窗那排全空著,椅子整整齐齐推进桌底,显然很久没人坐了。角落里一间玻璃隔出来的录播室,里面架著环形灯和提词器,墙上贴著隔音棉。几块白板上画著课程排期表,有些格子被红笔划掉了。 董飞带他穿过办公区,路过的员工不多,但都在低头干活,空气中有一种紧张感。 进到他办公室,桌子上铺满了列印出来的材料,董飞上去一边把纸码在一起放好,一边说:“商业计划书,都写了第七版了,每见一个投资人改一版,比我当年写毕业论文勤快多了。” 他从后面的书柜里搬出一套功夫茶具来,烧水,烫杯,从茶砖上撬了块普洱投进盖碗,熟练的泡了头道茶然后倒在一只紫砂蛤蟆的头上,第二泡才一人一杯,推了一杯在韩路一面前。 “今天的活动怎么样?有感兴趣的吗?”董飞问道。 “有几个,回去再看看。”韩路一回答道。 董飞笑了一声:“你这是凡尔赛。” “当年我拿b轮的时候,在线教育是风口,八家机构抢,最后挑了两家领投,估值比我自己报的还高两成。投资人跟你说的最多的一句话是什么?“我们长期看好这个赛道”。”董飞看著茶杯,“几年过去了,风口没了,那些说长期看好的人,每天在出去找人接盘。” “c轮不好融资?” “c轮的问题不是没人问,”董飞说,“是b轮估值给得太高了。” “b轮估值两个亿,现在业务数据实际撑得住不到一个亿,c轮如果按实际来——” “棘轮。” “对,b轮协议里有反稀释条款,c轮估值一旦低於b轮,之前的投资人自动补偿股份,我的股份就被摊,降得越狠,摊得越薄,摊到最后,公司就不是我的了。” 韩路一看著董飞,想起在外滩晚宴上创业者们的討论。 “那你现在有什么打算?” “要么找到一个愿意平轮进的新投资人,不触发反稀释。要么自己把增长拉起来,让估值站得住。” 董飞端起茶杯一口闷了。 “你知道创业最难受的是什么吗?” 韩路一回想起被鼎盛围剿以来自己左右奔突,发现自己也有答案,只是可能跟董飞的不一样。 董飞没等他回答:“没钱也难受,但没钱是个具体的问题,具体的问题总能想办法。最难受的是不能跟任何人说。” 他伸出手:“跟员工说,人心散了,简歷当天晚上就掛出去。跟投资人说,他们恨不得现在就把你卖掉。跟老婆说,她嚇得晚上睡不著觉。” “所以只能跟创业的人说。”韩路一说。 董飞笑了:“对,只有创业的人听到“帐上还能撑三个月”不会劝你放弃,因为他们自己也差不多。” 他接著问:“你还有几个月?” 第七十三章 你的工作 “我们比较保守一些,现在现金流还是正的。”韩路一说。 此乃谎言。 现在现金流虽然还是正的,但是隨著开物的用户越来越多,烧钱也越来越快,收费转化能不能挣钱还不好说。另外受困於没有钱,源码一直没有大规模投入模型的叠代。训练模型就是个无底洞,可是在ai这一行,你必须不停叠代,不然很快就被淘汰了。 只是他不打算把这些都告诉董飞。 “我多希望当年能像你这么想。”董飞说道,“我觉得能撑一年,结果六个月就开始找钱了,钱烧得永远比你想的快。” 董飞又泡了一道茶,自己端著杯子望著窗外,外面的办公区传来稀稀拉拉的键盘声。 “我最近在接触几家產业资本,“董飞说,“不是纯vc,是做企业培训的公司,对翰林的课程內容体系有兴趣。估值肯定低,但只要不触发棘轮就行。” “纯vc看增长曲线,曲线不好看就不投。產业资本看业务嵌套,能塞进他的体系里就有价值。赛道冷的时候別在vc的牌桌上耗,换张桌子坐。” 韩路一意识到,董飞一直在找出路。 只是他的选项比自己少太多了。 董飞喝了口茶,看向韩路一。 “韩总,我是过来人,倚老卖老,给你一个建议。” 韩路一看著他。 “趁势头好的时候多拿钱,但是花的时候得省著花,因为你不知道什么时候风就停了。” “b轮刚落定那阵,帐上好几千万,数据周周涨,投资人主动找上门,我当时想的是——再等等,等c轮数据更好看,估值再翻一倍。” “结果风向一变,再去找钱,所有人都知道你急了,我找了几十家风投,没一个人回我。” 韩路一离开的时候,董飞送他到电梯口。 “有事隨时打电话。”董飞说,“创业的人不跟创业的人说,跟谁说。” “董总也是。” 电梯门合上。 韩路一掏出手机,陆明洲发了几条微信—— “最近主动找过来的机构不少,我还在筛选。另外有几个合適的我们可以主动接触一下,资料发你了,回来看看。” 韩路一回了个“好”。 韩路一上了去张江的车,窗外的阳光已经偏了,秋天的海城下午短,路边的梧桐树影子拉得老长。 回到公司的时候快三点半,大家都在各自的工位上忙碌。 韩路一坐到工位上,打开电脑,手指习惯性敲了几个快捷键,编程界面弹了出来。 赵磊写了不少云適配代码的收尾,他要看看。后台实时数据也该刷一眼了,上午出门前在线峰值刚破过一次纪录—— “你回来了?” 苏念念走到他旁边,手里拿著一叠列印出来的文档,拉了把椅子坐在他对面。 “定价方案做出来了,三档——基础版免费,专业版99/月,plus版299/月,超出的部分可以额外买额度。灰度跑过了,专业版付费转化率6.2%。” “比预期高一些。”韩路一说。 “对,用月收入模型按当前增速预测了一下,日活到两万的时候月收入过百万。灰度数据、用户画像、流失点分析都在报告里了,你有空看一下。” 她把报告推过来,翻开第二份。 “第二件,林晚晴那边第一批模板交了。三套——商务简约、自然清新、儿童卡通,小姜在做交互细节,下周就能发布。” “定价方案我晚点看。”韩路一拿过报告翻了两页,“模板进度我知道了。” 苏念念点头,站起来:“报告不急,明天早上我带你过一遍就行。” 她走了。 韩路一关掉编辑器,打开陆明洲发来的三家机构资料,用视界研究一遍。 第一家,原点资本,海城本地的產业基金,背后是上市公司,重点投ai基础设施,管理规模二十个亿。 【原点资本|投委会三人,决策链短|近三个月连投两个ai赛道项目,出手快|lp以產业资本为主,对估值敏感,超过1.5亿要上投委会复议】 快,但砍价狠,韩路一在旁边记了两个字:跟投。 第二家,观澜创投,老牌美元基金的人民幣子基金,刚募完新一期。 【观澜创投|资金构成:產业母基金|合规审查周期45-60天|投资风格偏保守,早期项目投委会分歧率高|品牌背书强,后续融资有信用加成】 招牌硬,但慢。不急的时候是张好牌,急的时候指望不上。韩路一在旁边画了个圈。 第三家,弘远资本,京城。 韩路一多看了一眼。 【弘远资本|头部人民幣基金|管理规模180亿|资金构成:国资+市场化混合|投资阶段覆盖pre-a至c轮】 韩路一看了看最后一条,在弘远资本后面打了个星號。弘远资本投过网际网路、新能源、半导体,早期到后期都做。这种基金看项目会看创始人团队和赛道结构,不止看单月增长,和他的投资理念更贴合。 他给陆明洲回了条微信:“优先弘远。” 陆明洲秒回:“我正想说这个,弘远的贺云深可不好见,我托人问问。” 韩路一把手机放下,又翻开苏念念留的定价报告扫了一遍。 事情都做完,才再打开代码编辑器。 窗外的光一点点暗下去,办公区的键盘声从密变疏,工位上的灯一盏一盏灭了。韩路一自己待到了八点多,把手头的事情干完,收拾收拾准备回家。 出了办公楼,张江的夜风带著凉意。园区里没什么人了,路灯把行道树的影子拉得很长,月光从云层缝隙里漏下来,把远处几栋写字楼的玻璃幕墙照出一层冷白色。 韩路一向地铁站走去。 前面有两个人,背对著他站在路灯下,一高一矮,穿著普通的深色外套,低头在看手机。 视界自己弹开了。 两道红色的信息面板在两个人头顶浮现—— 【???????????|34岁|kk园区第三工区·执行总管】 【?????????|28岁|kk园区第三工区·现场执行】 【critical warning!!!】 矮个子收起手机,转过头来,正好和韩路一对上了视线。 第七十四章 咔 两人对视了一下,矮个子又低下头看手机了。 韩路一的右手已经伸进了口袋。 拇指摸到手机侧面的按键,长按,口袋里震了一下——紧急拨號启动了。 他没有停步,也没有加速,脚步的节奏跟刚才一模一样,就是一个加完班往地铁站走的人。耳朵里塞著无线降噪耳机,手放在兜里按著手机,从外面看就像边走边听歌。 视界还亮著。 矮个子外套左侧內袋鼓起一块,形状扁长,是刀。高个子腰后別著东西,细长金属,是根钢管。两人距离约四十米,还站在麵包车旁。 他们没认出他。 韩路一脚下微微偏了个方向,往路对面斜过去,距离拉开了一点。 “您好,这里是110——” 他压低声音,嘴唇几乎没动:“张江高科技园区碧波路,路灯下有两个人,带了刀和钢管,有辆麵包车,云x·xxxxx,我正在往地铁方向走。” “先生请您保持通话——” “嗯。” 韩路一继续走。 身后有说话声,不是中文,语调起伏完全陌生。矮个子掏出手机——他在看照片,看了两秒,抬头看韩路一的背影,又低头看照片。 对高个子说了一句:“????????” 高个子抬头,看韩路一走路的样子。 “?????????????。” 两个人同时迈开了步子。 韩路一的后背像被什么东西刺了一下,视界里距离数字开始跳: 40米、39米…… 他不再装了。 跑! 脚底拍在地上,风从脸上刮过,110接线员还在说话,他已经听不清了。 他跑得不慢,视界强化过的体能在这一刻终於派上了用场,前几步就拉开了一截距离。 视野里疯狂跳数据——路面摩擦係数、肌肉紧张度、步频偏差——全是噪音。张江园区的路白天走过无数遍,夜里却好像全变样了,一半的路被施工围挡截断,他根本分不清哪条通哪条不通。 路灯在头顶划过去,一盏,又一盏。 往右拐,树后面有另一条路,他不知道通向哪里,但身后有脚步声,只能拐。 拐过去—— 路的尽头站著一个人。 高个子,手里的钢管已经握在身前了。 韩路一剎住脚,脑子里有什么东西咔噠一声接上了——视界刚才有一瞬间后方信號从两个变成了一个,他没反应过来,他太慌了,那条数据被淹在噪音里直接滑过去了。 两个人分头行动,一个追,一个包抄,他们提前踩过点的。 身后,矮个子的脚步声也停了。 两个人从两头走进来。 矮个子从外套里抽出刀,刀刃上反射著路灯的光。 韩路一后背抵著建筑围挡的钢板。视界里数据还在跳,跳得眼睛疼。 距离:6米。距离:8米。 矮个子先动手了。 刀举起来的那一瞬—— 时间仿佛变慢了。 不,是真的变慢了。 视界里所有的噪音都消失了。 只剩一样东西: 刀的轨跡是一道红线,从左上斜劈向他的肩膀。 韩路一似乎什么都没来得及想。 刀弧来的时候他往前半步,身体侧开,刀从肩膀旁边划过去,带动了他的衣服。 他伸手用力推了一把。 矮个子踉蹌后退,脚后跟绊上沙袋,整个人往后摔下去。他的手本能地撑地,但角度不对,手腕反过来承了全身的重量—— “咔。” 矮个子惨叫了一声,刀脱了手,弹在地上,人蜷在沙袋旁边,手腕掛在一个不对的角度。 高个子衝上来,钢管高举过头顶,从上方砸下,视界里画出一条红线。 韩路一往旁边一躲,钢管砸在地上,弹了一下。 脚边另一只沙袋亮了。 绿色。 韩路一从来没见过视界给出绿色的標记,但他来不及想,伸手把沙袋一把拎起来。 二三十斤。 轻。 他抡了出去,沙袋砸在高个子胸口,人直接倒退了两步,仰面摔在地上,钢管脱手滚出去。 韩路一走过去,捡起钢管。 高个子挣扎著要爬起来。 韩路一照著他小腿抡了下去。 “咔。” 高个子也在地上惨叫,两个人高声叫著韩路一听不懂的语言。 韩路一把钢管扔远,后退了两步坐在地上。 【精力值:0/500】 视界自动关闭了。 韩路一看著自己的手。刚才那个沙袋,二三十斤,他单手拎起来抡出去的。 我的力气原来这么大。 那刚才其实也不必扔沙袋。 110的电话还没掛,接线员的声音从口袋里传出来,隔著衣服布料,模糊得像另一个世界的声音。 警笛声响起来了。 巡逻车停在围挡口,两名特巡警衝进来,一个人手里还拿著枪,手电筒的光扫过满地的狼藉,迅速控制住正在惨叫的胖瘦头陀。 韩路一被扶起来的时候腿还是软的,跟著后到的民警去了派出所做笔录。 “我加完班走回去,路上有两个人拿刀追我,我跑到那个围挡里面跑不了了,就……打起来了。” 值班民警怪异的看了他一眼:打起来了?一打二?空手入白刃?你是什么都市兵王吗? 民警克制住吐槽的欲望,接著问问认不认识对方。 不认识。 有没有纠纷。 没有。 值班民警出去打了个电话,回来跟他说:“你先等一下。” “警察叔叔,我这算是正当防卫吧?” “这我说了不算。” 韩路一给马小飞打了个电话。 “老韩,大半夜——” “我在派出所做笔录,刚才有两个歹徒追我,你过来一下,我给你发定位。” 马小飞的语气立马变了。 “我马上到。” 马小飞二十多分钟就到了,但是民警让韩路一再等会。 他在塑料椅子上坐到韩路一旁边,上下打量了一遍,没有像平时那样开玩笑。 “伤著了吗?” “没事。” 马小飞压低声音:“怎么回事啊?” “那两个人不说中文。” 马小飞愣了一下:“什么语言?” “可能是缅甸语。” 派出所的日光灯嗡嗡响,值班民警在隔壁打电话,声音隔著墙传过来,听不清內容。 马小飞凑过来,声音压得更低了:“你觉得跟快闪那事有关係吗?快闪不都没了吗?” 第七十五章 体面 方正平每天早上八点十五到办公室。 这个时间点恰好:八点太早,走廊空荡荡的,没有人看见你来了;八点半太晚,大家都来了,你才来,显得你摆谱。八点十五,前台刚到,助理刚泡完茶,路过的同事都记得——方主任今天又这么早到。 博衡律师事务所在海城陆家嘴和合大厦的十九楼,方正平的办公室在拐角,有两面落地窗,是所里最大的一间。书架上法律书和高尔夫奖盃挤在一起,一座是亚军奖盃,还有满满当当的参与奖。墙上掛了一排合影——与法官、企业家、区里的领导合影,照片里的方正平永远是同一个姿势,同一个角度,同一个笑容。 秘书端了一壶龙井进来,方正平翻开当天日程,上午十点合同审查,下午两个客户回访。秘书在日程表下面夹了一张便签,合伙人季报今天发。 方正平打开邮箱,点开高级合伙人季度创收排名。目光从上往下扫。第一陈立群,老牌合伙人,客户群体稳定;第二李和平,政府关係好,有吃不完的老本。 前两名没悬念。第三名,顾司玥。 方正平看了几秒,往右拉了一格——客户满意度,顾司玥排第一。 他端起茶杯,没喝,放下了。 这个排名组合他看了两个季度了,每次看到都有同一个感觉:有能力,刺头,不好管。 有能力不是坏事,但能力在律所就像空气:你需要它,但不会因为有它而对它格外重视。 顾司玥的案子自己接、自己谈、自己做,合伙人会议上不站队、不社交、不陪所里客户吃饭。她自己的客户评价里永远是“顾律师样样好”,提到博衡名字的屈指可数。 在法律行业,这是个危险信號。 一个合伙人如果让所里觉得“有他没他差不多”,那他是安全的,不占位子也不碍事。但如果她的客户只认她不认所,那她走的那天,肯定会把这些客户都带走。 年纪轻轻,锋芒太盛。 最重要的是,顾司玥是前任主任老肖力排眾议提上来的。她做得越好,越说明的是老肖眼光准,跟方正平没有关係。 內线响了一声,秘书的声音:“方主任,鼎盛集团法务部的电话。” 方正平按下转接,拿起听筒。 是鼎盛法务部副总监,说话很公式化:固定的两句寒暄,然后切正题。 鼎盛在做法律服务供应商整合,集团目前法律业务散在六七家律所,管理成本太高,准备收拢到两到三家,签长期法律顾问框架协议,博衡的企业法务和智慧財產权团队在行业內有口碑,鼎盛法务部做过评估,列在候选名单上。 对方继续说:但尽调过程中发现一个问题,博衡目前代理著一家叫源码科技的初创公司,是你们一位顾姓合伙人经手的,鼎盛与源码在ai產品赛道有直接竞爭关係。 “利益衝突是硬伤,”对方的措辞礼貌但没有余地,“博衡要进我们的候选名单,这个问题需要先解决。” 方正平说了几句场面话:感谢关注,高度重视,內部先沟通,然后掛掉了电话。 他从笔筒里抽出一支笔,在便签纸上写了几个数字。 源码科技一年的法律费用,把顾司玥经手的所有单子加在一起,大约二三十万。初创公司嘛,单子不大,付款倒是准时,顾司玥在上面投的时间精力不少,这一点方正平承认。 而鼎盛的长期法律顾问,年框一百五十万起,后续如果有诉讼代理——以鼎盛的体量,几乎是確定的——单独的代理费另算。而且鼎盛是集团,今天签法律顾问,明天就是投融资、劳动爭议、智慧財產权、反垄断、数据合规,每一项都是长期业务。 方正平把便签纸扔进了垃圾桶。 下午两点,方正平让秘书请顾司玥来他办公室。 门敲了两下,顾司玥推门进来了,没坐,站在椅子旁看著他。 “顾律,有件事要通知你,鼎盛集团法务部主动联繫了我们,要建立长期法律顾问关係。鼎盛的体量不用我说,这个机会对所里意味著什么,你是清楚的。” 顾司玥没说话。 “但现在有个问题,鼎盛和源码科技在ai產品赛道有直接竞爭关係,利益衝突客观存在,从合规角度,我们不能同时代理两方。” “源码那边的案子,妥善收尾,尾款记得结清。鼎盛这边所里会安排。” “这是所里的决定。” 办公室里安静了几秒,有一群鸽子从天上飞过,传来扑翅的声音。 顾司玥开口了。 “这个决定过合伙人会议了吗?” 方正平说:“我会安排,先跟你通通气。” “利益衝突审查走了正式流程吗?” “正在走。” 顾司玥点了下头。 “方主任,我確认一下——你是在通知我,还是在跟我商量?” 方正平笑了,居高临下,和蔼可亲:”顾律,我在跟你通气,但方向不会变。“ ”好,我知道了。“ 顾司玥转身出去了。 从进来到走,不到三分钟。 方正平坐在办公椅上,看著关上的门,端起桌上的龙井喝了一口。 顾司玥很聪明,不会在这跟他闹。 二十八岁,就在博衡当上了高级合伙人,是很唬人,可不过是运气好罢了。离开了博衡的牌子,谁知道她? 方正平把茶杯放回茶盘上,拿起手机看了眼时间。 两点十一分,比他预估的还快。 他打开鼎盛法务发来的那份框架协议草案,开始看条款。 顾司玥径直回到自己办公室,关上门。 她站在窗前,看向下面的车流,这个城市每天都有人从一个地方离开,去到另一个地方。 她转身来到电脑前,打开一个加密文件夹,文件夹里有她独立开所的商业计划书,有目標客户名单,有跟三个律师的初步意向沟通记录,这个文件夹她建了好几个月了。 她新建了一个文档。 《博衡律师事务所执业违规备忘录》 打开手机,导出录音。 第七十六章 天亮了 “你觉得跟快闪那事有关係吗?快闪不都没了吗?” 韩路一摇了摇头。 “不清楚。” 马小飞张了张嘴,想再问什么,又咽回去了。两个人在塑料椅子上坐著,隔壁有个醉汉在吵闹,被民警按在椅子上,含含糊糊骂了句什么,又安静了。 韩路一靠著墙,看著对面墙上贴的反诈宣传海报,一个卡通警察举著手指头,旁边写著“转帐前请三思”。 值班民警从里面走出来,朝他们这边看了一眼。 “韩先生?” “我在。” “支队的罗队过来了,要单独跟你了解一下情况。”民警看了眼马小飞,“你朋友先在外面等一下。” 韩路一站起来,拍了拍马小飞的肩膀,跟著民警走进里面的房间。 刚做定,门被推开了。 进来的人五十岁左右,方脸,头髮剪得极短,鬢角有几撮花白。他穿深色夹克,里面套一件灰色圆领t恤。 他没急著坐下,站在门口先看了韩路一一眼,然后走到桌前,拿起笔录翻了起来,翻得很快。 放下笔录。 “手让我看看。” 韩路一愣了一下,伸出双手,罗海峰低头看了几秒。没有淤青,没有肿胀,指关节完好。 “嗯。”他拉开椅子坐下,把夹克拉链往下拽了拽,“你之前跟这两个人有过任何接触吗?” “没有,今天第一次见。” 罗海峰点了下头。 “这两个人的我们一直在跟,和之前一起跨境案有关联,具体不方便说。”他停了一下,“你的正当防卫认定没有问题。” 韩路一说好。 “你报警的时候,口述的信息很完整。”罗海峰看著韩路一,语速不快,“位置、人数、武器类型、车牌號。一般人遇到这种事,能把话说清楚的不多。” “我也嚇坏了,超水平发挥了吧。” 罗海峰看了他几秒。 没说话,微微点了下头。 韩路一在他翻笔录的时候就激活了视界,精力值大约恢復到十几——在派出所干坐了快一个小时,总算攒回来一点。 面板亮了,但不像平时那样清晰,文字边缘发虚,有几个栏位像坏掉的led屏一样闪烁不定。 【罗海峰|50岁|浦东公安分局刑侦支队·副支队长】 【情绪:平静(隱藏:██赏)|当前任务:2██专项行动·收尾██】 【关联案件:kk园区|██:总部已捣毁(9月██执法)|本案██:漏网人员跨境报復|情报来源:快闪██购后內██查资料██】 大半个面板都是马赛克。但关键词能拼出来足够多的信息了:kk园区,总部已捣毁,九月执法行动,本案两名嫌疑人是漏网之鱼。 跨境报復。 绕了一圈,还是快闪的事。 面板暗下去,精力又不够了,视界懒得再显示。 罗海峰对韩路一说:“这两个抓住就齐了,你放心,以后不会再有类似的事。” 他从夹克口袋里掏出一张名片,搁在桌上推过来。 “当初举报,你是好样的,以后有事可以打这个电话。” 韩路一接过来看了一眼。白底黑字,只写著名字、职务、手机號。 “谢谢罗队。” “没你事儿了。”罗海峰站起来往外走,走到门口的时候回了一下头,“下次走夜路,走大路。” 门关上了。 韩路一在椅子上坐了一会儿,把名片放进口袋,出去找马小飞。 马小飞在走廊尽头的饮水机旁边站著,纸杯里的水一口没喝,看见韩路一出来,迎上去。 “怎么说?” “没事了,正当防卫,可以走了。” “那走吧,车在外面。” 两个人出了派出所大门,半夜的空气凉,路灯把地上的影子拉得很长,马小飞的车停院子里。 上车,马小飞发动引擎,没急著走。 “饿不饿?附近有个餛飩摊——” “不了,回去吧。” “行。” 车开出去,路上几乎没什么车,马小飞没再说话,偶尔侧头看韩路一一眼,韩路一闭著眼睛。 到家楼下,韩路一解开安全带。 “谢了。” “有事隨时打电话。”马小飞说,顿了一下,又补了一句,“真的隨时,別跟我客气。” “客气就不叫你来了。” 韩路一下车,听到身后车窗降下来。 “老韩。” 他回头。 “那两个逼,关死他们。” 韩路一笑了一下:“这可不归我管。” 他摆摆手,上楼了。 进门,关门,韩路一站在玄关没动。 他没去开灯。 在黑暗里站了大概十几秒,然后脱鞋,走进卫生间,洗了把脸,躺到床上。 肾上腺素消退了,在派出所的时候什么感觉都没有,脑子清楚得很,回答问题还能开玩笑。现在安全了,门关上了,身体给了迟来的反馈。 回到家后怕才一下涌上来,这是第一次有人真的要伤害他,不是商业竞爭,不是律师函,是真刀真枪。 很快他就睡著了。 天亮了,阳光从窗帘缝里挤进来。 韩路一坐起来,看著自己的双手怔怔的出了一会神,然后揉揉脸,下了床。 昨天有一条陆明洲的信息还没处理,晚上8点多发的,当时他可能正在演动作戏呢。 “约上了!明天下午的飞机,去京城见弘远资本。票我订了,你收拾一下。” 韩路一拿起手机,先回陆明洲:“好,几点的航班?” 还有一条顾司玥的信息:“韩路一,最近什么时候有时间?有事需要当面聊。”这是今天早晨发的。 举报快闪是顾司玥出面的……他翻到顾司玥的通讯录,直接拨了过去。 两声就接了。 “韩路一?”顾司玥的声音有点意外。 “昨晚出了点事,在派出所待了半宿。” “什么事?” “路上被两个人堵了,已经抓住了,没事。” “需要法律服务吗?” 韩路一愣了一下:“不是,我怀疑那些人和之前快闪的事有关,你最近注意安全。” 电话那头安静了一会儿。 “我会注意的。” 韩路一说:“对了,你之前说有事想见面聊?我今天要去京城一趟。” “不急,等你回来再说。” “行,回来再约。” 掛了电话,他开始收拾行李。 京城,弘远资本,我来了! 第七十七章 弘远资本 从海城到京城的牛马航线,飞机上坐满了西装革履的打工人。陆明洲登机的时候在商务舱看见好几个熟人。 两人落座,韩路一调侃陆明洲:“陆总,坐经济舱是不是不太习惯?” 陆明洲苦笑一声:“我自己出行也都是经济舱啊。” 韩路一给他画饼:“等咱们有钱了,给你报销商务舱。” 陆明洲没接:“弘远的议程排得很满,正常约要几个星期。我有个同学正好在里面做研究员,明天有个本来要来路演的项目资金炼断裂倒闭了,所以给我们插了个队。” 等到飞机平飞,陆明洲拿出笔记本电脑,上面开著弘远资本的官网。 “咱们说说弘远,管理规模一百八十多亿,资金来源有国资和市场募集,算是半个国家队。决策链比纯国资短,但比美元基金谨慎。”陆明洲顿了顿,“创始合伙人贺云深,行业传奇,今年五十五岁,九十年代末入行,门户网站赚了四十倍,搜寻引擎赚了一百二十倍,百团大战赚了八十倍,电动车赚了十五倍。” “翻了这么多倍才一百八十亿?”韩路一问道。 “投资公司的钱不是自己的,赚到收益后要返还给投资者。贺云深不追规模,一直走精品路线,单期基金刻意控制在五十亿以內。” “听起来这眼光准的像是重生者。” “对,业內也有人这么说。每一轮泡沫破了之后他投的项目都还在。”陆明洲总结道,“弘远能给我们带来三样东西——国资背景带的政府关係和大企业客户,半导体產业的关係意味著后续晶片阶段的资源,以及贺云深本人的背书。他如果领投,后续融资等於盖了个免检章。” 韩路一点头:“难点呢?” “弘远还从没投过ai赛道。”陆明洲说,“他们的投委会看惯了有收入、有利润的项目。ai的高估值逻辑——没收入也能值几十亿——他们不一定认可。” 陆明洲看向韩路一:“韩总,明天你是主角,要让他们相信,我们不是在讲故事,追风口,而是真的在改变世界。” 韩路一嗯了一声。 下了飞机,两人打车去陆明洲订的商务连锁酒店住下。 第二天上午,韩路一和陆明洲来到弘远资本的办公室,在国贸cbd一幢写字楼的三十八层。 【记住全网最快小説站 看书就来 101 看书网,101??????.??????超方便 】 前台领他们走进会议室,投影仪,白板,一张巨大的椭圆会议桌。 陆明洲去调试设备,把电脑连上投影仪,韩路一拉了把椅子坐下打量著会议室。墙上掛著几家公司上市的时候敲钟的合影,韩路一一眼就认出几个熟悉的logo。 等了大概三五分钟,会议室的门开了,三个人走了进来。 领头的年龄大一些,一张国字脸,面上带著点微笑,头髮半灰半白,梳得很整齐,穿一身休閒商务。 【贺云深|55岁|弘远资本创始合伙人·投委会主席】 【情绪:观察】 【关注焦点:创始人愿景和能力】 【决策权重:一票否决权】 第二个人戴无框眼镜,脸上没什么表情,手里拿著一叠列印材料,上面密密麻麻標了批註。 【王秉谦|48岁|弘远资本合伙人·风控委员会主席】 【情绪:审视|核心诉求:风险管理】 【关注焦点:数据真实性、创始团队稳定性、盈利能力】 最后的的年轻一些,西装革履。 【谢亦琛|39岁|弘远资本合伙人·技术投资负责人】 【情绪:审视|核心诉求:判断技术壁垒真实性】 【关注焦点:模型层能力、数据飞轮可行性、差异化】 贺云深主动过来和韩路一握手,很热情:“小韩总,年轻有为啊。” 韩路一赶紧站起来回应:“贺总,久仰您大名了。” 贺云深给韩路一做了简短的介绍,几人入座。 “韩总,请。”贺云深抬手示意。 韩路一打开ppt投到会议室屏幕上,但没看屏幕,从昨天练了一晚上,他已经滚瓜烂熟了。 “各位好,源码科技做了两个產品,bugkiller和开物。但我今天不想从產品讲起,我想从一个词讲起——氛围编程。” “这个词两个月前还不存在,现在全球几十万人在搜索它、討论它、尝试它。我们不是在抢占一个现有市场,我们在探索人类未来的可能性。” 陆明洲手里的笔一顿,抬头看向韩路一。 ppt翻页。 显示的是开物和bugkiller上线以来的数据。 “数据都在材料里,我非常乐意回答各位的问题。” 王秉谦翻了一页资料,笔尖点在某一行上。 “好评率百分之九十七。”他抬头,“样本是四百个筛选过的內测用户?” “对。” “那就是选择偏差,扩到四万公测用户,好评率可能掉到多少?” 【心理预期:好评率扩量后降至70%左右】 韩路一没犹豫:“我不猜数字。” 他打开笔记本电脑,登进后台,递给王秉谦:“这是开物的实时数据面板,公测到现在不到两周,综合满意度百分之八十一。” 王秉谦凑近看,然后在列印资料上写写画画。 陆明洲偷偷鬆了口气——他之前不知道韩路一敢把后台直接亮出来。 谢亦琛开口了。 “模型层你们没自研,完全依赖第三方api。如果openai下周发布一样的功能,支持端到端部署,你们的技术壁垒在哪?” 韩路一没有直接回答模型的问题。 “我们现在的壁垒在检测层。別家的氛围编程只能生成代码,生完交给用户自己看。开物每次生成之后都会过一遍bugkiller的检测引擎,自动找bug、自动修。这个闭环,目前市面上没有第二家能做。” “检测引擎靠什么?bugkiller的检测率现在是市场第一,我们积攒了七个月,十三万条真实的bug修复数据对,全部经过脱敏处理,数据合规。这些黄金数据是我们检测能力的基石。” “开物现在是这个领域唯一能做到端到端的,只要我们跑的足够快,就可以一直保持领先。” 说到这,他看向贺云深。 “长远来看,我们一定会自研模型——就像造车的最后都要自己造电池。” 谢亦琛张了张嘴,又闭上了。 【评估调整:壁垒逻辑自洽,待验证执行力】 会议室安静了下来。 王秉谦和谢亦琛都看向贺云深。 第七十八章 贺云深(求追读) 会议室安静了好几秒。 贺云深没急著评价刚才的问答。他没翻材料,直接看著韩路一:“韩总,你今年多大了?” 陆明洲的笔尖悬在本子上方,停住了。 这种问题在路演里属於非標准问题,没法提前准备,也没有標准答案。而且他问的时机也微妙,数据质疑结束了,技术壁垒也问完了,但是估值还没开始聊。 “二十七。” “二十七岁。”贺云深重复了一遍,“你这个年纪,见过几个完整的周期?” 韩路一说:“我没见过,但我跑的足够快。” 他顿了一下,他接著说。 “周期这东西,身处其中看不出来,我很期待將来回头看的那一天。” 贺云深看了他几秒,点了点头。 “聊聊估值吧。” 这句话说完,会议室里换了一个模式。 王秉谦和谢亦琛交换了一个眼神。 王秉谦放下手里的列印材料,摘下无框眼镜擦了擦再戴回去,才开口说道。 “bp我看过了,你们现在的arr不到一千万。” 然后他翻开另一份材料。 “上个月投委会看了一个saas项目,arr三千万,创始团队已经做了四年,续费率86%。”他的语速不快,“投委会给的估值是六个亿,这已经是我们內部的天花板了。” 他合上材料,抬起头。 “实话实说,融资10%,一亿现金,十个亿的估值,这个我们不想给。” 不想给,不是给不了。 三千万arr的估值六亿,你几百万的arr,要十个亿? 陆明洲开口道:“我们的增长曲线不一样,开物现在刚上线两个星期,已经二十万的註册,增长斜率还在上升。” “开物还没有收费吧,转化和留存的数据都没有。”王秉谦说。 【主观判断:ai赛道最多支撑5亿估值|上投委会风险太大,需附加对赌】 王秉谦在用他熟悉的saas框架评估源码科技,只是这个框架里,没给ai额外的空间。 saas的估值逻辑和ai的估值逻辑是两套体系,在对方的框架里爭论哪套更合理,没有意义。 王秉谦也不打算绕了。 “韩总,陆总,以你们目前的数据,投委会能討论的区间——” 他看了一眼贺云深,贺云深没有阻止的意思。 “五个亿,投15%,而且要加对赌协议。” 对赌协议——半年內收入达不到標准,创始团队按比例退股。这种条款一旦签进去,后面每轮融资的投资人都会拿著这个先例压价。 陆明洲看向韩路一。 韩路一没有还价。 “太低了。”韩路一说。 会议室又安静了。 王秉谦等了几秒,以为他会展开——至少解释一下为什么十亿是合理的,拿出用户增长曲线,算一笔未来十二个月的帐。这是融资谈判的標准动作,每个创始人都会做。 韩路一没有。 “韩总,这已经是投委会的上限了。”王秉谦的语气没有施压的意思,甚至带著一丝真诚,他见过太多创始人在这个环节崩掉,不想把气氛搞得太僵。 谢亦琛补了一句:“模型层目前完全依赖第三方,这部分的估值折扣是合理的。” 这句话也是他上一轮质询的点,你自己没有模型,核心能力有一半捏在別人手里,估值打折天经地义。 王秉谦说的有道理,谢亦琛说的也对,五个亿的估值放在传统saas的框架里,甚至算是慷慨的了。 但韩路一要的不是传统saas的估值,七千五百万对他之后的计划来说,不够用,15%的股份也太多了。 窗外国贸cbd的天际线在落地窗里舖开,阳光从西侧照进来,在会议桌上切出一道明暗分界线。 贺云深始终没有开口。 安静持续了大概十来秒。 韩路一站了起来。 “贺总、王总、谢总,感谢你们的时间。” 他合上笔记本电脑,放进包里,拉好拉链。 “材料都留在这里了。” 陆明洲跟著站起来,动作比韩路一慢了半拍。 “很遗憾,今天没有达成共识。a轮我们可以先找別家,等b轮的时候数据跑出来了,期待我们能有合作的机会。” 王秉谦没说话,谢亦琛看了一眼贺云深。 贺云深站起来,绕过桌角,走到韩路一面前伸出手:“今天聊的不错,韩总路上注意安全。” 韩路一握上去,贺云深的手格外的有力:“谢谢贺总。” 韩路一点头致意,转身走向门口,陆明洲跟在后面,轻轻把会议室的门带上了。 走廊很长,铺著灰色地毯,两侧是弘远其他会议室的磨砂玻璃门,脚步声被地毯吞掉了大半。 “等我一下,我去一下卫生间。”韩路一说。 找了一下,卫生间在走廊尽头,韩路一在洗手的时候,卫生间的门开了。 “韩总。” 韩路一抬头,在镜子里看到贺云深站在他旁边。 “年轻人有衝劲好,你这个项目,让我想起我刚入行的时候。” 韩路一不知道贺云深是什么意思:“谢谢贺总。” 贺云深从口袋里拿出一张烫金名片,放在洗手台上,上面没有名字,只有一个电话號码。 “这是我的私人號码,韩总下次来京城,可以来找我聊聊。” “韩总,一路顺风。”说完,贺云深转身走向里面的隔间。 等电梯的时候,陆明洲说了一句:“贺云深全程没报价。” “嗯。” “王秉谦给到的五亿应该只是他的授权范围,贺云深要是想加价,刚才应该会开口的。” 韩路一摇了摇头:“他可能也给不到十亿吧。” 电梯到了。 陆明洲看著打开的电梯门,说:“没事,咱们的大本营在海城,回去的机会还多。” 韩路一嗯了一声。 京城十月的阳光很白,没什么温度,风从国贸桥方向灌过来,带著乾燥的味道。 手机响了,是苏念念。 “路一,博衡律所发了一封函过来,说终止跟我们的法律顾问代理关係。”苏念念的声音有点困惑,“刚收到的,盖了博衡的章。怎么回事?我打电话问问顾律师?” 韩路一停下脚步。 “我知道了,我来问吧。” “好。” 融资没谈下来,律师也没了。 第七十九章 过错在先 顾司玥在审一份股权代持协议,看到一半,条款还算规范,没什么太大问题。 办公室门响了两下。 “请进。” 助理小周推门进来,脸色有点奇怪。 “顾律,您看邮箱了嘛?行政刚发了一份函件的抄送存档。” 顾司玥打开电脑,刷新了一下邮箱客户端。 博衡律师事务所致源码科技有限公司《终止法律顾问代理关係告知函》。 落款:博衡律师事务所(盖章),签发人:管理合伙人·方正平。 她看了一眼函件上的日期,是今天。 又翻回邮件抄送列表:行政存档、財务备案,没有其他合伙人。 小周站在门口没走,犹豫了一会,开口问道:“顾律,这不是咱们的case吗?您之前知道吗?” “嗯,我知道,你先回去吧。” 小周神色古怪的把门关上。 顾司玥把代持协议合上,推到桌角,在电脑上登进律所內部oa系统,搜索“合伙人会议”。 最近一次会议是上周五,议程里只有四项:新入所律师薪酬评定、年度审计报告、公共区域装修预算、会议室预约系统升级。 她关掉oa。 上次在方正平办公室,她问了三个问题。合伙人会议开了吗?“我会安排”;利益衝突审查走了吗?“正在走”。 会没开,审查没走,终止函已经发出去了。 方正平太急了。 顾司玥打开加密文件夹,找到那份《博衡律师事务所执业违规备忘录》。 输入:以博衡名义发出终止代理函,未经合伙人会议表决,未完成利益衝突审查程序。附件:抄送邮件截图、oa系统会议记录截图。 保存,关闭。 现在,等著就好了。 下午两点十分,內线响了。 “顾律,方主任请您去他办公室,好像是关於源码科技的事。” 顾司玥站起来,从抽屉里拿出一个透明文件夹,里面只有一张纸。 方正平的办公室在走廊尽头拐角处,她推开门,里面飘出龙井的气味。 方正平坐在桌后,手里翻著一份文件,听见开门声,抬头看了顾司玥一眼。 “顾律,源码那边的交接清单你做一下,案卷归档、尾款结算、客户通知,流程你比我熟,做完了交给行政就行。” 他低头翻到下一页,像是在说一件不重要的事。 “另外,鼎盛那边第一批尽调文件下周要提交,你手上如果有空,可以帮忙看一下智慧財產权的部分。” 你的老客户我替你处理了,新客户的活可以分你一点,大家都体面。 顾司玥站在桌前,没坐。 “方主任,解约函什么时候发的?” 方正平头都没抬。 “上午,怎么了?” “合伙人会议的表决记录在哪?” 方的表情有点儿不耐烦。 “下周上会吧。” “函已经发了,会还没开。” “利益衝突审查报告也没出,方主任,以博衡名义终止一份正在履行中的法律顾问协议,未经合伙人会议表决,未完成利益衝突审查。这是程序倒置,违反了博衡合伙协议第四十七条。” 方正平放下手里的文件,看向顾司玥。 “源码科技目前正处於a轮融资关键期,法律顾问的突然终止可能对客户利益造成实际损害。主办律师事先未被徵询意见,也未签署交接確认。” 方正平压低声音:“顾司玥,你是什么意思?” “方主任,我退伙了。” 方正平盯著她。 “退伙?” 顾司玥从文件夹里抽出那张纸,放在方的桌上。 退伙申请书,落款签名,日期是今天。 “合伙人一方存在严重违反合伙协议的行为,另一方有权单方解除合伙关係。” 方正平看著那张纸,没有碰。 “你凭什么认为我违反了协议?” “第十四条第三款的適用条件是:未经法定程序做出损害其他合伙人权益的重大决策。解约函是以博衡的名义发出,影响了我名下的客户关係,但我事先不知情、事后也未被徵询。” 方正平把二郎腿放下,椅子转过来,面对著顾司玥。 “你找好下家了?离了博衡你能去哪儿?別忘了竞业协议!” “合伙协议第十四条附则:因合伙人一方过错在先导致另一方退伙的,竞业限制条款不予適用。” “这可不是司法解释,这是合伙协议的原文。” 房间安静了几秒。 “顾司玥,你想清楚了?你来博衡七年,就当上高级合伙人——” 顾司玥没等他说完。 “方主任,谢谢了。” 她转身出去了。 方正平坐著没动,鼎盛的框架协议还在桌子上,他没心情继续看了。 顾司玥从茶水间顺了一个列印纸的空箱子,回到自己办公室。 墙上掛著的《法律职业资格证书》,取下来,擦了一下框上的灰。 旁边是前年博衡年会的合影,她站在第二排右边第三个,一张扑克脸。取下来,叠在证书上面。 抽屉里的东西不多。一盒名片,几支笔,一个u盘,一本没写完的本子。名片不需要了,其它的都装进箱子。 书架上几本法律实务手册是所里统一採购的,不带了。 窗台上那盆绿萝,叶子绿油油的。她看了一眼,端起来放在箱子最上面。 抱著箱子出来的时候,小周从工位上站起来。 “顾律?” “小周,我离职了。” “啊……啊?” 小周看著那个箱子,欲言又止。 “帮我跟前台说一声,门禁卡我放前台了。” 顾司玥没停步,箱子抱在胸前,走过走廊。一路上看到她的人都赶紧低下头,假装没看见。 下楼,进停车场,箱子放在副驾驶座上,开车回家。 手机响了。 是韩路一。 她按了一下方向盘上的接听键。 “顾律师,博衡发了一封终止函——” “嗯,我知道。” 电话那头停了一下。 “……你还好吧?” 顾司玥看著正前方,车流在她眼前铺开。 “韩路一,代理协议重签一下吧。” “什么意思?” “我要自己开所了。” 电话那头安静了两秒。 “……顾律师,恭喜。” 顾司玥没说话。 “什么时候签?” 顾司玥抿著嘴笑了,没出声。 副驾上,绿萝的叶子在轻轻晃动。 第八十章 我有一个朋友(求追读) 韩路一到的时候顾司玥已经坐下了,靠窗的两人位。她穿著浅灰色的薄呢外套,头髮披在肩上,整个人鬆弛了一点。她今天没有喝咖啡,面前摆了一杯加奶的红茶。 韩路一坐下来,点了杯冰美式。 “人没事?”顾司玥问。 “没事。”韩路一猜她说的是前两天进派出所的事。 顾司玥的目光在他身上打量了一圈,然后收回去了。 “先把正事办了。”顾司玥从包里拿出一个文件夹,抽出两页纸放在桌上。 法律顾问代理协议。甲方海城源码科技有限公司,乙方那栏空著。 “我先以个人名义签,等律所註册完成后变更主体,条款和之前那份一样。” 韩路一把协议从头到尾看了一遍。看完拿起笔,在末页签了名字,日期。 “怎么费用还降了?”韩路一问。 “开业酬宾。”顾司玥说这话的时候面无表情,不好判断是不是个冷笑话。 顾司玥收好协议,拉上文件夹拉链。 韩路一端起刚上的美式喝了一口,组织了一下语言,“顾律师,我有一个朋友问了我一个问题,纯假设的啊;我也不知道答案,所以向你諮询一下。” “你说。” “假设有一家上市公司,”韩路一说,”某个vp级別的高管a,用他人名义在境外註册了一个壳公司,bvi架构,然后以这个壳公司投资创业公司的天使轮。” “这家创业公司的核心技术人员,恰好是a之前的下属。后来a利用在上市公司的职务权限,推动上市公司去收购这家创业公司,收购完成后,壳公司作为天使轮投资人溢价退出。“ 韩路一放下杯子。 “这种操作,是合法合规的吗?” “这家上市公司是a股,港股还是美股上市?”顾司玥问。 “a股。”韩路一说。 “如果情况如你所说,”顾司玥坐正了身体,“这不是简单的违规,这是一个完整的利益输送闭环。” “第一,未披露的关联交易和利益衝突。高管a通过代持和离岸架构隱匿持股,本质上是在做自我交易——一边以个人身份埋伏投资,一边以公司高管身份推动收购,已经违反了最基本的忠实义务和勤勉义务。” “第二,信息披露层面的重大违规。a股上市公司併购必须穿透披露標的的股权结构和实际控制人,如果刻意用bvi架构和代持规避披露,就是典型的虚假陈述和重大遗漏,这一条在监管层是红线。” “第三,也是最核心的,利用职务便利进行利益输送。提前用低成本进入,借上市公司併购高价退出,中间的价差,本质上是从上市公司转移到个人口袋。如果估值、评估、交易结构里再有人为操控,这就不只是公司治理问题了,这是刑事责任。” “那么,”顾司玥端起红茶,看著韩路一的眼睛,“你这个朋友是怎么知道这件事的呢?” “是假设,”韩路一说,“假设有这件事,他应该怎么揭发?向上市公司董事会举报?还是向证监会、公安机关举报?” “那要看“他”想要什么结果了。”顾司玥在“他”这个字上加了重音。 “如果只是想把这件事在公司內部止损,那最合理的路径是董事会或者审计委员会,尤其是独立董事和內控/合规线。上市公司正常都有反舞弊机制,內部调查可以最快冻结交易、叫停併购。” “但前提是,董事会是乾净的。” “但现实中,这种案件之所以能够发生,通常是因为高管a的影响力已经达到了董事会层面,这样內部举报大概率会被压下,甚至反噬举报人。” “证监会,解决的是信息披露、关联交易、併购合规问题,走的是行政监管,优点是专业、针对性强,缺点是节奏慢,而且更多是罚和市场禁入。” “经侦就不一样了。”说到这,顾司玥的语速放慢下来,“那意味著用刑事路径去定性,职务侵占、利益输送、利用未公开信息获利。一旦立案,节奏会很快,但门槛也很高,证据不够,连受理都难。” “所以问题不是向哪举报,而是你这个朋友,手里有多少证据。” 顾司玥喝了一口红茶,然后说:“韩路一,如果你这个朋友真的遇到了这种事,那在证据收集阶段,最好有律师全程介入,越早越好。” 面板浮现。 【顾司玥|28岁|执业律师(独立)】 【情绪:平静(隱藏:担忧)】 【核心焦虑:迷茫】 韩路一关掉视界。 两个人都知道对方知道。 “谢谢顾律师。”他放下杯子,“我问问我朋友,有需要的话介绍给你。” 顾司玥点了一下头:“小心,別急。” 韩路一回到办公室的时候,里面的画风已经跟他出去前完全不同了。 “韩总你回来啦!”姜亦心从工位探出头。 他看向会议室,林晚晴和苏念念並排坐著,ipad和笔记本电脑摆在她们面前,后面还铺了一桌子列印出来的界面截图。 “路一哥哥你回来啦!”朵朵的头从姜亦心旁边探了出来。 “你怎么来了?”韩路一惊讶道,“今天不用上学吗?” “今天开运动会!”朵朵从姜亦心的工位里跑出来,她穿著小学生运动服,胸前还掛了个白条,上面写著“12”,“我跑了第一名!” 姜亦心从后面跟过来,跟韩路一解释:“苏总让我,嗯,招待一下。” “路一哥哥!你认识好多漂亮姐姐!”朵朵大声说,办公室里的人都憋著笑。 韩路一假装没听见:“好,小姜,你接著接待。”然后赶紧走进了会议室。 “你回来的正好,”苏念念把面前几张截图推过来,“定价页面终版,你过一下。赵磊说支付系统联调过了,陈建业的压力测试也过了,就等明天上线了。” 韩路一拿起来翻了翻,该准备的都准备好了。 “明天几点?” “上午十点,官网加了倒计时。” 韩路一看了一眼手机,下午三点十二分。 距离开物正式版上线,还有不到十九个小时。 第八十一章 方远的远方 方远坐在电脑前,开物官网的倒计时数字在屏幕中央跳动。 09:57:43。 还有两分多钟。 方远冲泡了一杯速溶咖啡,坐在电脑前跟著屏幕上的时钟倒数,有一种正在跨年的仪式感。 瀏览器里开著两个標籤页,一个开物官网,一个暖邻后台管理系统。 这个系统他用了快一个月了。 说起来挺魔幻的,一个月前他还在为十万块的外包报价头疼,现在手里这套系统比当初那个外包方案写的功能还多。 他没花一分钱。 09:58:02。 方远拿起咖啡喝了一口。他想起第一次用开物的那天晚上。一个小时做出来的东西,功能很齐全,虽然配色丑得离谱。大红色的导航栏配大蓝色的按钮,再加上大绿色的背景卡片,整个界面像穿了小丑服。 当时发到志愿者群里,刘姐的原话是:“方远,你这是找了个色盲帮你做的吧。” 但你別说,它能用,不光能用,还挺好用。 一个月里暖邻系统叠代了好几轮,他隔几天就会提新需求:加一个活动报名入口、加一个志愿者排班日历、把老人档案的紧急联繫人栏位放到显眼位置……每次在对话框里说几句话,新功能就出来了。 张秀兰老人的信息还在系统里。这是他测试时填的第一条数据。现在资料库里已经有三百多条老人信息了,八个社区的负责人都有自己的登录帐號,各管各的片区。王姐管的翠苑小区数据最全,连老人每周的用药清单都录进去了。 活动报名连结发到业主群里,点一下就跳转到报名页面,不用在微信群里接龙了。刚发出的社区重阳节活动,报名两百多人,哪个志愿者对接哪个老人,通过服务安排的井井有条,基本没需要他手动干预。 上周,街道办的小李打电话过来,问他这个系统能不能接入街道的养老服务平台。 方远记得很清楚,去年他拿著厚厚一沓材料去街道办申请项目支持,小李根本懒得理他。 现在街道办主动找来了。 09:59:48。 方远放下杯子,盯著屏幕。 他觉得自己有点傻,一个三十四岁的前產品经理,盯著一个软体的上线倒计时紧张,像个等游戏开服的小学生。 10、9、8…… 方远不自觉握了一下滑鼠。 3。 2。 1。 页面解锁了。 开物首页变了,对话框还在,周围的布局和配色全部换过,一下变得高级起来。 方远第一时间点进充值界面冲了个299的会员,虽然暖邻大概率用不上高级会员,但他实在是太想花这个钱了。 这大概就是为信仰充值吧。 然后方远点进暖邻后台,弹出了一个提示框。 【选择你的风格模板】下面並排几个缩略图:商务简约、自然清新、儿童卡通……每套模板下有一行小字说明適用场景。 方远毫不犹豫选了“商务简约”。 页面刷了一下,很快,新的界面被渲染了出来。 他愣住了。 大红大蓝大绿没了,导航栏变成深灰色,按钮是克制的蓝,卡片背景乾乾净净的白底,边角带一点圆润弧度,表格线条均匀柔和,呈半透明的浅灰色。 整个界面都变成了专业冷静的气质,方远觉得自己就像回到以前做產品经理的时候,在用昂贵的saas软体后台展示產品数据。 方远截了三张图:首页、志愿者排班页面、老人档案管理页面,发到暖邻志愿者群。 刘姐:“哇这也太好看了吧” 小胡:“终於不辣眼睛了!” 王姐:“方远你是不是花钱请人改了?” 方远打字:“花了点,正式版出来了,我补个票。” 关上微信,他打开小黄书。 这是他上次发出爆款帖之后养成的习惯,那条帖子现在点讚不知道多少万了,评论区时不时还有人冒出来。但他刷的不是自己那条帖子,他关注了开物相关的標籤,每天都能看到新內容。 今天明显比平时多,正式版刚上线,很多人在发帖。 第一条:一个小区业委会的,做了快递代收系统。帖子標题写“不用在群里喊“谁的快递”了”。截图里的界面用了商务简约模板,乾乾净净。方远想了想,好像之前刷到过这人发的旧版截图,那时候的配色——跟暖邻一样,小丑风。 第二条:奶茶店老板,做了个会员积分小程序。评论区有人问“请问你是程式设计师吗”,奶茶店老板回“我连表格软体都不会用”。 第三条:一个独立设计师的作品集网站,看起来充满了高级感,方远不懂设计,但他觉得这个页面摆出去说是专业网站没人不信。 第四条…… 方远停下来多看了一会儿。 一个花店老板,坐標昆明,给自己的花店做了线上订花系统:选花、选花语、选祝福卡、写祝福语、在线付款,还可以根据订单生產进货单。帖子里写:“以前只能在门口等客人走进来,现在睡觉的时候都有人下单。” 评论区第一条:“姐妹这个网站是哪家公司做的?报价多少?” 花店老板回覆:“自己做的,99的订阅费。” 方远继续往下刷。 退休教师做了班级通讯录管理;大学生做了社团活动平台;健身教练做了课程预约系统。今天的帖子截图里界面画风明显比以前好看了,而且每个都有特色。 方远放下手机,看了看天花板。 他想起那天晚上发完帖子,评论区涌进来的那些人。 “我是开蛋糕店的,能不能做一个预约系统?” “我在做公益助学,一直想有一个信息管理的东西但是找不到开发……” “我就是个普通上班族,但我有一个主意……” 那些评论他每条都看了,各行各业,什么人都有。 他当时觉得,这些人大概说说而已。 现在他刷著小黄书上这些帖子——花店老板、奶茶店老板、退休教师、大学生。 他们真的做出来了。 方远把手机重新拿起来,继续往下翻。 翻了几条,一个標著火焰的帖子標题抓住了他的注意力。 《我中专毕业,现在靠给人做系统月入过万》 方远点了进去。 第八十二章 最好的时代(求追读) 大理古城边上,一栋白墙青瓦的小院。 院子里三角梅开得正盛,玫红色的花瓣偶尔飘下来几片,落在青石板上像彩色的碎纸。陶然收拾完最后一间退房的客房,把换下来的床单塞进洗衣机,按下启动键。 洗衣机嗡嗡响起来。 她在院子里的石凳上坐下,掏出手机。 早上刚过八点。昨天的客人走了,新客人下午才到。中间这几个小时是她自己的时间。以前这段时间她会追两集剧,或者刷短视频。 现在她打开了开物后台。 系统显示有更新推送,正式版上线。 陶然点进去看了一眼更新说明,有个新功能叫“风格模板”。她先没急著点,退出来看了看自己做的民宿预约管理系统。房態日历、客人信息、退房提醒,该有的都有。客人扫码就能看到房间状態和空余日期,不用微信来回问了。 陶然,二十九岁,中专毕业,酒店管理专业。十八岁出来实习,昆明酒店前台做了三年,嫁到大理后跟老公开了民宿。老公常年在外面跑工程,一年见不了几面。孩子三岁,婆婆帮忙带。 月收入四五千,旺季好一点,淡季三千都悬。 在她的认知里,“写代码”三个字跟她之间隔了一个银河系。她这辈子最大的技术突破,是学会了用电脑上的笔记本记帐,想再进阶表格软体,没学会。 半个多月前一天晚上,她躺床上刷小黄书,刷到一条帖子: 《我花了0块钱,做出了外包报价10万的东西》 她当时想法很简单:免费的?试试又不要钱。 註册了。第一次用开物是在这张石凳上,一边晒太阳一边跟对话框聊天。 “我想做一个民宿预约管理系统。” “你的民宿有几间房?需要管理哪些信息?” “四间房。我现在最头疼的是订单太散了,携程一份,美团一份,小黄书私信还有一份,每天光对帐就要半小时。还有回头客的喜好我全靠脑子记,上次有个熟客来我忘了她花粉过敏,房间里摆了一大捧乾花,尷尬死了。” 来来回回聊了十几分钟,然后她点了生成。 一个完整的客栈管理系统出来了。各平台的订单匯到同一个页面,一眼看清哪天哪间房被订了、从哪个渠道来的;每个客人有备註栏,住过的偏好直接標註:“喜欢二楼靠院子”“花粉过敏別放鲜花”;还生成了一个独立预约页面,发到朋友圈就能接直客,不用再给平台交佣金。 她当晚就把预约连结塞进了朋友圈和小黄书主页,第二天就有老客人绕过携程直接订了房间。 这件事已经够魔幻了,但更魔幻的事发生在一周后。 隔壁客栈的阿秀过来串门,看到她在后台操作,凑过来看了一眼。 “你这哪买的?挺方便的啊。发个连结给我唄。” “不是买的,我自己用一个工具做的。” 阿秀眼睛亮了:“那你能不能帮我也做一个?我给你钱。” 陶然犹豫了一下:“那我试试?” 花了半天做出来,预约管理加客房清洁排班,做完之后阿秀当场转了一千五。 陶然盯著到帐通知看了好久。 一千五。 她做了什么?她坐在院子里,跟一个对话框聊了半天。 然后第二家找来了,古城里的茶叶店老板,要做会员管理和线上下单,陶然用了一天做完,收了两千。 第三家是镇上的旅行社老板,需求复杂一点:预约、行程管理、客户回访、满意度调查。 陶然报价五千,对方秒答应。 结果交货的时候翻车了,老板觉得界面太丑,她调了好几轮,没什么改善,只好告吹了。 她之后接单都提前跟客户说好:“只保证功能,不保证美观。” 半个月她帮四五家做了各种系统,民宿预约、餐厅排队……收入加起来一万多。 比开民宿还多。 但是公测的免费额度很快就不够了。每月生成次数有限,做到第三个客户就用完了。陶然註册了第二个帐號,又用完了,又註册了第三个。最多的时候她手机里存了五个开物帐號,每天轮著登录。后来开物加了手机號验证,一个號只能绑一个手机,这条路堵死了。她又去閒鱼买了两个別人不用的帐號,结果用了三天被封了。 没辙了。客户催得急就凌晨卡著额度重置的时间点赶工,做不完的只能攒著等额度刷新。 手机屏幕上正式版推送还亮著。 她点进风格模板,屏幕上列了好几套。 她选了自然清新。 白色底,浅木色点缀,字体变圆润了,图標是手绘的小插画,整个界面清清爽爽的。 像大理早晨的空气。 陶然截了一张图发给阿秀。 阿秀十秒回覆:“这也太好看了吧!设计包在里面了吗?” 陶然一笑,不包,可以涨价了。 陶然把手机放下,抬头看了看院子里的三角梅。 半个月前她是个为淡季发愁的民宿老板娘,现在坐在同一把石凳上,她变成一个“开发者”。 她甚至不確定自己算不算程式设计师。 但钱確实到帐了。 陶然拿起手机,打开小黄书。 帖子標题她改了三次。 《我中专毕业,现在靠给人做系统月入过万》 这种標题她刷到过,知道什么人会点进来:想做副业的、正在迷茫的、或者真的有系统需求但不知道找谁的。 正文写得直白,最后留了一句:“有想做的系统可以问我”。 发完帖子,她去幼儿园接孩子。婆婆今天腿不舒服,她答应早点去。 接到孩子回来,哄著吃了午饭,陪著搭了一会儿积木。小傢伙终於午睡了。 陶然拿起手机。 点进帖子,评论区有人问:“姐妹怎么接单的?教教我!” 她回:私 又有人问:“想做会员系统,请问怎么联繫?” 她回:私 私信里躺著几十条新消息。 陶然一条一条回復。有人询价,有人讲需求,还有人说看到她在大理,想当面聊。 帖子下面有个高赞评论,点讚比她的帖子还多。 “这是最坏的年代,这是最好的年代。”