# 第十五章 尘埃落定
终审判决那天,广州下了一场不大不小的雨。
判决书是下午两点送达的。方律师亲自开车送过来,车停在沙河涌巷口的时候,雨刷还在玻璃上来回地刮。他下车的时候没打伞,直接抱着一个牛皮纸档案袋冲进了厂房门口,西装肩膀湿了一片。
厂房里所有人都站了起来。
方律师站在门口,雨水顺着他的额角往下淌。他没有擦,而是径直走到沈澈面前,把档案袋放在桌上,说了一句:“判了。”
厂房里安静得能听见雨水打在铁皮屋顶上的声音。
“全部驳回。”方律师说,“NanoSkin的三项诉讼请求——知识产权侵权、扰乱市场秩序、不正当竞争——法院全部驳回。驳回理由是‘原告指控无实质证据支持’。”
沉默。
然后是程未的声音,带着一种不太敢相信的颤抖:“……赢了?”
“赢了。”
厂房里爆发出的欢呼声震得铁皮屋顶嗡嗡作响。阿星第一个跳了起来,把手里抱着的服务器硬盘盒往桌上一丢,落地发出一声闷响;程未笑着骂了一声操;林瑜靠在墙上,摘下眼镜揉了揉眼睛,嘴角弯成一道弧线;何知夏坐在椅子上,低着头,左手捂住嘴,右手在桌子底下攥成拳头。
沈澈站在人群中间,看着桌上那份判决书,一动不动。过了很久,他才伸出手,翻开档案袋的封口,把那份薄薄的判决书抽出来。
他一个字一个字地从头看到尾。
然后他抬起头,环顾了一圈这间到处堆着服务器、网线、外卖盒子的旧厂房,笑了一下:“今晚珠江新城,我请客。谁说大排档我跟谁急。”
终审胜诉之后的日子,过得比想象中快得多。
没有了官司的阴影,澈光科技像是被解开了最后一根绳索的船,开始以一种自己都没想到的速度驶入开阔的水域。
皮肤商城接入皮肤管理器,是第一件大事。方律师在终审结束后顺带帮他们整理了一份合规审查建议,沈澈和程未花了两周时间把商城的数据接口重新梳理了一遍,做成了一套标准化的API——任何设备端只要运行皮肤管理器,就可以自动连接到澈光的服务器,获取皮肤数据,完成下载和应用。用户不再需要在网站和软件之间来回切换,一切都变成了无缝的、实时的。
第二件事来得有些措手不及——各地的小型BCI皮肤订阅服务商开始主动找上门来。
第一个打电话来的是武汉的一家小工作室,老板是个退伍军人,在光谷租了个四十平的办公室,靠着给本地客户做BCI涂层的日常维护和调色勉强维持。他在电话里说得很直接:“我在网上看到你们的皮肤商城了,买断制,价格是NanoSkin的十分之一,质量不差。我想接入你们的系统,给我的客户也提供这个选择,行不行?”
沈澈当时看了一眼坐在对面的何知夏,何知夏点了点头。他对着电话说:“行。”
于是澈光科技的技术团队花了一个月时间,做了一套服务商管理系统。各地的订阅服务商只要注册、签约、接入皮肤管理服务器的数据接口,就可以在自己的门店里直接从澈光的皮肤商城中调取所有皮肤数据,为客户提供订阅服务——月租制、买断制,两种模式任选。收入方面,平台和服务商按比例分成,比例公开透明。
一个月之内,签约的服务商从武汉那一家增加到了十七家,遍布广州、深圳、东莞、长沙、成都、杭州。三个月之后,这个数字变成了五十三家。
澈光科技的旧厂房越来越不够用了。服务器越堆越多,空调24小时不间断运转,夏天最热的时候,机箱散热风扇的噪音比门口的马路还响。沈澈已经开始看新的办公场地了。
何知夏在一次团队会议上开玩笑说:“我们是不是该招点人了?”
沈澈想了想,说了一句让所有人都安静下来的话:“再等等。等我们跑顺了,再招。现在的每一分钱,都要花在刀刃上。”
所有人都没反驳。他们知道,澈光科技的每一分钱,都是从NanoSkin的围剿里咬着牙挣出来的。
当整个系统跑顺了之后,澈光科技的日常反而变得比之前安静了许多。
不是说事情少了——事情依然很多,五十多家服务商的数据对接、皮肤商城每日新增数万用户的并发请求、服务器的日常维护和扩容……但这些事情不再是那种“火烧眉毛”的紧急状态了。它们变成了一种有节奏的、每天按部就班运转的工作。像是一台精密调试过的机器,每一个齿轮都在自己的位置上安静地转动着。
午后两点的旧厂房里,是这个节奏最清晰的时刻。
程未坐在他那台堆了三块显示器的工位前,右手握着鼠标,左手端着一杯已经凉透的咖啡,正在读一段某服务商反馈的接口日志。他找出了一条极其隐蔽的bug——某个服务商上报的订阅数据中,有约千分之三的记录存在着时间戳偏移,导致月租自动续费时偶尔会多扣用户一天的费用。
“老周,”他头也不回地喊了一声,“过来看一眼这个。服务商那边的同步接口,时间戳处理是不是有问题?”
老周的工位在厂房的另一头。自从官司打赢之后,他工位上的变化是最明显的——那个一直摆在显示器旁边的铜香炉还在,但已经很久没有点过香了。取而代之的是两本翻开了的书,一本是《Go语言高性能编程》,一本是《MySQL内核优化实战》。他的显示器上不再是满屏的道教论坛页面,而是数据流日志、API响应时间监控面板、以及一个他自己写的自动巡检脚本的终端窗口。
听到程未喊他,老周推了推鼻梁上那副黑框老花镜,端着保温杯走过来,弯腰凑到程未的屏幕前看了看。他没急着说话,先安静地看了将近一分钟的日志片段,然后说:
“不是接口的问题。是服务商那边的服务器时间没有做NTP同步,系统时间偏差了大概两百毫秒。时间戳用的是服务器的本地时间,传到我们这边的时候就会出现偏移。我们收到数据后做了标准化处理,但没有对时间戳的合法性做校验——你把标准时间反推回去的时候,偏差就卡在系统边界上了。”
他说这番话的时候没有停顿,没有犹豫,声音平静得像在念一份已经写在纸上的答案。程未听完愣了一下,回头看了老周一眼——老周穿着一件洗得发白的格子衬衫,袖口卷到小臂,手指粗短有力,指甲干干净净。跟半年前那个整天守着香炉、嘴里念叨着“道法自然”的老周相比,就像是换了一个人。
“你什么时候变得这么懂了?”程未问。
老周喝了口保温杯里的枸杞水,慢悠悠地说:“你教过我不少。剩下的,是我自己看书学的。那两本你推荐给我的书,我都看完了。后来又找了几本讲分布式系统和数据一致性的,翻了一遍。”
“翻了一遍就懂了?”
“看了两遍。”老周诚实地补充,“第二遍的时候做了笔记。”
程未沉默了几秒钟,然后转回头,在键盘上敲了一行注释:
`// 时间戳偏移修复 by 老周——NTP同步校验已加入巡检脚本`
他敲完之后,补了一句:“笔记给我看看。”
林瑜的工位在厂房靠窗的位置。窗外是一棵歪脖子的榕树,树冠遮住了大半扇窗,阳光透过树叶洒进来的时候,在他的工位上印出一片晃动的碎影。
十五分钟前,他刚刚处理完今天第三位用户的咨询。每天固定时间连线沟通已经成了他的工作习惯——他会在下午两点打开澈光科技的官方Discord服务器,进入#皮肤咨询频道,以“澈光客服-Lin”的身份开始回复用户发来的消息。
没有预设脚本,没有标准回复模板,他会看完用户的完整描述再回复。遇到他回答不了的技术问题,就@程未或者阿星来解答。他不把自己当成“客服”——他把自己当成澈光科技的窗口,用户看到的那个门面。
今天下午的第三位咨询用户,是一位来自成都的二十八岁女性,在某国企做行政工作。她私聊林瑜的时候,描述很详细:
“你好,我三个月前在本地服务商那里接入了你们的皮肤订阅。我选的是NanoSkin时期标准款的平价替代版,肤色微调。我想咨询一下,我现在用的这个皮肤是‘阳光自然’,我想换成‘奶油暖调2.0’,能不能跨款切换?还是说必须退掉重新订阅?”
林瑜看完之后,键盘敲得飞快:
*“不需要退订重来。登录你的账号,进入皮肤管理器客户端,在‘我的皮肤’页面点击‘切换方案’,选择‘奶油暖调2.0’应用就可以了。系统会自动从订阅时间中扣除掉你之前用的‘阳光自然’剩余时间,不会重复计费。切换过程中如果有任何显示与预期不符的地方,可以截图发我帮你看看。”*
对方回复了一条语音消息。林瑜转成文字,看到的内容是:
“好的好的,我已经换好了,效果很好!谢谢你!顺便问一个小事——你们公司有没有线下体验店?我同事看到我的皮肤效果之后也很感兴趣,但她皮肤比较敏感,想先试一下再决定。”
林瑜想了想,敲道:
“目前公司没有线下体验店,但我们合作的五十多家服务商大部分都提供免费试戴服务。你告诉我你同事在哪个区,我帮你推荐一家离她最近的服务商。”
对方报了个地名。林瑜在服务商数据库里查了一下,找到成都青羊区一家评分4.8的服务商,把地址和联系方式发了过去。他顺手又补了一句:
“这家店的服务叫王姐,人很耐心。你同事去了之后如果有什么问题,可以直接让她在店里找我远程连线。”
“好的好的,太谢谢你了!”
“不客气。澈光科技,随时为您服务。”
这句话打完,林瑜敲了一下回车,然后从屏幕前抬起头,伸了个懒腰。阳光透过榕树叶子的间隙,正好落在他侧脸上。他眯了一下眼睛,嘴角带着一丝还没来得及收起的笑意。
何知夏路过的时候停下来看了一眼:“你在笑什么?”
林瑜指了指屏幕:“帮一个用户解决了一个切换方案的问题。顺便把她同事介绍给了成都的一家服务商。”
“这有什么好笑的?”
“没笑什么。就是觉得……还挺好的。”
他说得很轻,轻得像是在说给自己听的。
何知夏看了他一眼,没再追问,转身走开了。走出两步之后,她背对着他说了一句:“你接客服这个活儿干得不错。要不要正式转岗?”
林瑜在窗边笑出了声:“不用。我本来就只想当个窗口。”
何知夏没回答,但脚步顿了一下,然后继续走了。
#五
下午四点,阿星从她那堆贴纸、手账本、太阳能自动翻盖垃圾桶中间抬起头来,伸了一个能把整张椅子推后二十厘米的懒腰。她看了看时间,又看了看服务器的监控面板——一切平稳,CPU负载32%,内存占用41%,高峰期即将到来但还有余量。
她决定利用这段时间再做一批新的周边。
“程总,”她敲了敲程未的显示器边框,“你觉得如果咱们出一批‘澈光皮肤’主题的亚克力钥匙扣,会有人买吗?”
程未头也不抬:“有人会买。但我们的业务是卖数字皮肤,不是卖钥匙扣。”
“品牌宣传嘛。你看那些大厂,谁没有周边?”
“我们没有预算做周边。”
“我可以自己出钱做,然后挂到商城上卖,利润归公司。”
程未终于抬起头看了她一眼,沉默了两秒钟,然后用一种“我确实无法反驳你”的语气说:“你看着办吧。”
“好嘞。”
阿星从抽屉里掏出她最新画的设计草图——几个用Q版画风设计的皮肤形象:一只眯着眼的猫娘、一个竖着兔耳朵的少女、一个头发像火焰一样炸开的男孩——都是皮肤商城上线以来销量最高的几个款式。她准备把这些形象做成亚克力钥匙扣、冰箱贴、手机气囊支架,一套三件,售价九块九包邮。
关键是,每一套周边里都会附一张小卡片,上面印着一行字:
*“你的皮肤,你说了算。——澈光科技”*
她把草图举起来,对着光看了看,满意地点了点头。
傍晚六点半,旧厂房的铁皮门被推开了一条缝。沈澈从外面走进来,手里拎着几个外卖袋子——今晚加班的人多,他路过楼下那家烧腊店的时候顺手带了四份叉烧饭和一打冻柠茶。
“吃饭了。”他把袋子往桌上一放,然后脱下外套挂在椅背上。他今天出去见了一家新签约的服务商——从珠海来的,老板是个四十多岁的阿姨,原来是开美容院的,看到BCI皮肤订阅的市场之后果断转了行。沈澈跟她聊了一下午,敲定了接入协议的所有条款。
“珠海那家签了?”何知夏从自己的工位上站起来,走过来拿起一份叉烧饭。
“签了。下周一接入调试。”
“现在多少家了?”
“加上珠海那家——”沈澈掏出手机看了一眼表格,“五十七家。”
“五十七家。”何知夏咀嚼着这个数字,也一并咀嚼着嘴里的叉烧饭,“三个月前我们还是只有一条服务器的野鸡团队。”
“现在也是野鸡团队。”沈澈也拆开一份叉烧饭,坐在一台断电待修的服务器机箱上,“只不过野鸡稍微壮了一点。”
何知夏笑了。她用筷子夹起一块叉烧,对着灯光照了照:“NanoSkin现在什么动静?”
“安静得很。”沈澈嚼着饭含含糊糊地答,“官司输了之后,他们在国内市场的动作明显收缩了不少。有几个之前跟他们签了独家预约服务商的服务商,最近开始偷偷联系我们的渠道了。”
“墙倒众人推?”
“谈不上。就是市场开始有选择了。”
何知夏安静地吃了几口饭,然后说:“你说,如果我们当初没有做皮肤商城,现在会在干什么?”
沈澈想了想:“可能在找工作。”
“认真的。”
“认真的。”沈澈放下筷子,看着厂房天花板上那盏一直在闪的日光灯,“如果当初没有做商城,我们最多就是个小众的开源工具开发者——帮几个发烧友做做皮肤管理器,收点打赏,勉强糊口。然后有一天,NanoSkin更新一个协议,我们的工具就用不了了。然后就没有然后了。”
他顿了一下:“所以我从来没后悔过。”
何知夏没有接话,但嘴角弯了一下,低头继续吃饭。
晚上九点,厂房里的灯还亮着。
程未还在调那个时间戳的bug——虽然老周已经指出了原因,但修复起来需要改好几个模块的代码,还要做回归测试。阿星在电脑上画她的钥匙扣设计图,林瑜在写明天要发给所有服务商的一封系统升级通知。
老周坐在工位上,面前摊着一本翻到一半的《分布式系统概念与设计》。他右手边放着一杯凉透了的枸杞水,左手的食指正轻轻点在一段关于CAP理论的段落上,嘴唇无声地翕动——他在默读。
他的手机忽然震了一下。他拿起来看了一眼——是某个道教学术论坛的推送通知:“【推荐】《黄帝阴符经》新解——作者:青城山散人”。
老周盯着那条通知看了三秒钟,然后手指在屏幕上划了一下——不是点进去,而是把通知划走了。他把手机翻了个面,屏幕朝下扣在桌上,然后继续低头看书。
坐在对面工位的程未,正好看到了这一幕。
他没有说话。但他的鼠标停顿了一秒,嘴角几乎不可察觉地弯了一下。
然后他转回头,继续敲自己的代码。
厂房里,只有键盘声、空调的低鸣声、还有那盏日光灯偶尔发出的滋滋声。
澈光科技的夜晚,安静而踏实。