逆流而上2000

第三十八章 :深夜密谈

  宿舍的灯在十一点准时熄灭。   黑暗瞬间吞没了整个房间,只剩下窗外路灯的昏黄光线透过窗帘缝隙,在地板上投下几道狭长的光带。空气中弥漫着夏末夜晚特有的微凉气息,混合着新书纸张的油墨味、被褥的棉布味,还有隐约的汗味。   安奕躺在床上,双手枕在脑后,盯着上铺床板的木纹。   木纹在黑暗中模糊不清,像某种神秘的密码。他能听到自己的呼吸声,平稳而绵长。还有李想轻微的鼾声,从对面床上传来,节奏均匀,显示主人已经沉入梦乡。   但右侧的床铺上,有窸窸窣窣的声音。   那是林浩在翻身。   安奕闭上眼睛,开始在心里规划明天的行程——先去中关村看看,那里是BJIT产业的中心,网吧应该比较集中。然后……   “安奕。”   声音很轻,像怕惊扰什么。   安奕睁开眼,侧过头。   黑暗中,林浩的床铺方向,有一双眼睛在发光。那是窗外路灯的反光,映在他镜片上,像两点微弱的星火。   “你睡了吗?”林浩又问,声音压得更低。   “没。”安奕说。   对面李想的鼾声停顿了一下,翻了个身,又继续响起。   林浩从床上坐起来,动作很轻。床板发出细微的吱呀声,在寂静的夜里格外清晰。他摸索着下了床,赤脚踩在地板上,发出轻微的啪嗒声。然后他走到安奕床边,蹲下身。   安奕能闻到林浩身上淡淡的香皂味,还有一股兴奋的气息——那种技术人看到好东西时特有的、难以抑制的躁动。   “我看了。”林浩的声音在颤抖,不是害怕,是激动,“我看了三个小时,从晚饭后一直看到熄灯前。”   安奕没说话,等着他继续。   “那个架构……”林浩深吸一口气,像是在平复情绪,“分层设计,数据访问层、业务逻辑层、表现层……还有那个消息队列机制,你是怎么想到用异步处理来解耦模块的?这思路太超前了!”   他的语速很快,像机关枪一样。   “还有网络通信那块,TCP长连接加心跳包,断线重连机制做得那么完善……我上学期在实验室做过类似的课题,光是处理网络异常就花了半个月,你这里几行代码就解决了!”   安奕坐起身,靠在床头。   黑暗中,他能看到林浩的轮廓——瘦削的肩膀,因为激动而微微前倾的身体。窗外的光勾勒出他侧脸的线条,鼻梁上的眼镜反射着微弱的光。   “你高中就开始写这个了?”林浩问,声音里满是不可思议。   “嗯。”安奕说。   “自学?”   “大部分是。”   林浩沉默了。   几秒钟后,他低声说:“我高中也在写代码,但都是些小工具——计算器、文本编辑器、贪吃蛇游戏……最多就是帮学校做个成绩管理系统。跟你这个完全不是一个量级。”   他顿了顿,又问:“你家里有人搞计算机?”   “没有。”安奕说,“我爸是工人,我妈是会计。”   “那你怎么……”   “看书。”安奕打断他,“图书馆,书店,能看的都看。然后自己动手写,写坏了就重写,一遍遍试。”   这话半真半假。   真的部分是,前世他确实是这样起步的——在网吧里蹭电脑,看盗版的技术书,一点一点摸索。假的部分是,那些架构设计、那些优化思路、那些对未来的预判,都来自二十年的经验积累。   但这话林浩信了。   或者说,他愿意信——因为除此之外,没有更合理的解释。   “你看了多少书?”林浩问。   “记不清了。”安奕说,“C++ Primer看了三遍,Effective C++看了五遍,Design Patterns那本翻烂了。还有TCP/IP详解、Windows核心编程、数据库系统概念……”   他每说一个书名,林浩就轻轻“嗯”一声,像在确认什么。   等安奕说完,林浩长长地吐出一口气。   “难怪。”他说,“难怪你下午能一眼看出我那个算法的瓶颈。你基础太扎实了,不是那种只会调API的码农,你是真的懂底层。”   安奕没接话。   窗外传来远处马路上汽车驶过的声音,轮胎摩擦地面的沙沙声,由远及近,又由近及远。还有隐约的虫鸣,藏在宿舍楼外的草丛里,断断续续,像某种密码。   “那个系统……”林浩又开口,声音里带着试探,“你打算怎么处理?就放在那儿?”   “不。”安奕说,“我要卖。”   “卖?”林浩的声音提高了一点,又赶紧压低,“卖给谁?”   “网吧。”   林浩愣住了。   几秒钟后,他恍然大悟:“对……对!网吧!那个计费管理功能,还有会员系统、库存管理……这简直就是为网吧量身定做的!”   他的声音又激动起来:“我下午看代码的时候就在想,这系统商业价值太大了!比市面上那些垃圾强太多了!那些系统动不动就几千上万,还难用得要死,你这个……”   “我这个便宜。”安奕说。   “多便宜?”   “还没定。”安奕说,“但肯定比市面上的便宜,功能还比他们强。”   林浩又沉默了。   这次沉默的时间更长。   安奕能听到他呼吸的声音,有些急促,像在思考什么重要的问题。黑暗中,林浩的眼镜片偶尔反射一下光,显示他正在转动眼珠。   “安奕。”林浩终于开口,声音很郑重,“我能参与吗?”   安奕没立刻回答。   他等着林浩说下去。   “我不是要分钱什么的。”林浩赶紧补充,“我就是……就是想参与开发。你这系统架构太好了,但有些地方我觉得还能优化。比如那个数据库查询,你用的是标准SQL,但如果加上索引优化,性能至少能提升30%。还有界面那块,现在用的是MFC,功能是强,但太丑了,用户体验不好。如果用DirectUI自己画……”   他说得越来越快,越来越兴奋。   “还有网络通信,你现在是单线程处理,如果改成IOCP模型,高并发下的性能会好很多。安全方面也可以加强,加个加密传输,防止数据被截获……”   安奕静静地听着。   林浩说的每一个点,他都知道。有些是故意留的——比如界面丑,是因为2000年的网吧老板不在乎这个,他们在乎的是稳定和便宜。有些是受限于当前硬件——比如IOCP,在现在的机器上提升有限,反而增加复杂度。   但林浩能一眼看出这些,说明他的技术眼光确实敏锐。   “你知道IOCP?”安奕突然问。   “知道。”林浩说,“我在实验室的服务器上试过,Windows下性能最好的I/O模型。但编程复杂度高,一般商业系统不敢用。”   “为什么不敢用?”   “因为容易写错。”林浩说,“内存泄漏、死锁、竞争条件……随便一个bug就能让系统崩溃。而且调试困难,需要很深的系统编程功底。”   “你会写吗?”   “会。”林浩毫不犹豫,“我写过一个小型的HTTP服务器,用的就是IOCP,支持同时处理上千个连接。”   安奕点点头。   黑暗中,这个动作林浩看不见,但安奕还是做了。   “数据库呢?”安奕又问,“你说索引优化,具体怎么做?”   “看查询模式。”林浩说,“如果是按会员ID查,就在会员表上建聚集索引。如果是按上机时间范围查,就在时间字段上建非聚集索引,加上包含列。还有,你的有些查询用了LIKE‘%xxx%’,这种用不到索引,要改成全文检索或者前缀匹配……”   他说得很细,很专业。   安奕继续问:“TCP长连接的心跳包,间隔设多少合适?”   “看网络环境。”林浩说,“局域网可以设长一点,30秒。公网要短,10到15秒。但太短会增加网络负担,太长会延迟发现断线。折中方案是动态调整——连续几次正常就延长间隔,发现异常就缩短。”   “如果心跳包丢了怎么办?”   “重传机制。”林浩说,“三次重传失败就判定断线,触发重连。重连要有退避策略,避免短时间内频繁重连把服务器冲垮。”   一问一答。   安奕问得刁钻,林浩答得流畅。   有些问题甚至超出了“磐石”系统的范畴,涉及到分布式系统、高可用架构、容灾备份等更前沿的领域。林浩有些能答上来,有些会思考一会儿,然后给出自己的推测。   但无论怎样,他的回答都显示出扎实的基础和敏锐的思维。   这不是死记硬背能得来的,这是真正的理解。   窗外的虫鸣声渐渐稀疏。   远处传来钟声,应该是学校主楼的大钟,在深夜十二点敲响。钟声悠长,穿透夜色,一声,两声……整整十二下。   钟声结束后,宿舍里陷入更深的寂静。   李想的鼾声不知何时停了,取而代之的是均匀的呼吸声。张伟的床铺还是空的,他今晚可能不回来了。   “安奕。”林浩又开口,声音里多了一丝疲惫,但兴奋不减,“你问这么多,是在考我吗?”   “是。”安奕坦然承认。   “那我及格了吗?”   “优秀。”   林浩笑了。   黑暗中,安奕能看到他嘴角扬起的弧度。   “那我能参与了吗?”林浩又问,这次带着期待。   安奕没有立刻回答。   他翻身下床,赤脚踩在地板上。地板是水泥的,刷了绿色的漆,在夜里有些凉。他走到自己的行李箱前,蹲下身。   行李箱是帆布的,深蓝色,边角有些磨损。拉链拉开时发出刺啦的响声,在寂静中格外刺耳。安奕把手伸进去,在衣服和书本之间摸索。   指尖触到一个硬质的盒子。   他把它拿出来。   是那个软盘盒。   塑料外壳在黑暗中泛着微弱的反光。他拿着盒子走回床边,递给林浩。   林浩接过盒子,手有些抖。   “这是完整的源代码。”安奕说,“还有设计文档和测试用例。你可以看,可以改,可以提意见。”   林浩紧紧握住盒子,像握住什么珍宝。   “但是。”安奕补充,声音很轻,但很清晰,“记住保密。”   林浩抬起头。   黑暗中,他的眼睛亮得惊人。   “我明白。”他说,每个字都咬得很重,“这是商业项目,代码是核心资产。我绝对不会泄露,不会复制给任何人,也不会在未经你允许的情况下用于其他用途。”   他停顿了一下,又说:“我可以写保密协议,如果你需要。”   “不用。”安奕说,“我相信你。”   这话让林浩愣住了。   几秒钟后,他低声说:“谢谢。”   声音里有感动,有郑重,还有一种被信任的沉重。   安奕重新躺回床上。   “早点睡吧。”他说,“明天还要上课。”   “嗯。”林浩应了一声,但没有动。   他还蹲在安奕床边,手里紧紧握着那个软盘盒。窗外的光映在他脸上,勾勒出专注的轮廓。他在看那个盒子,像在看一个全新的世界。   安奕闭上眼睛。   他能听到林浩起身的声音,很轻,像怕惊扰什么。然后是走回自己床铺的脚步声,床板吱呀的响声,还有软盘盒放在桌上的轻微碰撞声。   之后,是长久的安静。   但安奕知道,林浩没睡。   他能听到那边传来细微的呼吸声,不均匀,显示主人还在兴奋中。还有偶尔翻身的窸窣声,床板轻微的响动。   安奕自己也没睡。   他在想接下来的计划。   林浩通过了测试,技术能力没问题,职业操守现在看来也可靠。接下来就是正式邀请他加入团队,开始BJ市场的拓展。   但在这之前,还有一件事要做——实地考察。   他需要了解BJ网吧的实际情况,需要找到第一个试点客户,需要设计适合本地市场的销售策略。   还有,他需要钱。   虽然“磐石”在江城已经赚了一些,但要在BJ打开市场,需要更多的资金——租办公室、雇销售、做推广、备库存……   钱从哪里来?   银行贷款?他现在还是个学生,没有抵押,贷不到多少。   风险投资?2000年的风投主要看团队背景,他一个高中生创业,很难拿到钱。   只能靠自己。   用“磐石”在江城赚的钱,先在BJ小规模试点,滚雪球一样慢慢做大。   或者……   安奕突然想到一个人。   沈万三。   那个煤老板,前世曾经想投资他的项目,但被他拒绝了——因为条件太苛刻,要占70%的股份。后来沈万三投资了另一个项目,亏得血本无归。   这一世,也许可以换个方式合作。   不让他控股,只让他做天使投资人,占小股,但给高回报承诺。   沈万三贪财,但不算坏。只要让他看到实实在在的利润,他会动心的。   问题是,怎么联系上他?   安奕在记忆里搜索。   沈万三……煤矿在山西,但经常来BJ,住在王府饭店。喜欢去天上人间,喜欢收藏古董,喜欢……   有了。   安奕想起一个细节——前世2001年,沈万三在BJ买过一个明代的青花瓷瓶,花了三百万,后来发现是赝品,气得差点住院。   那个瓶子,是在潘家园一个叫“老陈”的摊主手里买的。   如果提前找到那个摊主,揭穿那个瓶子是假的……   不,不行。   这样太刻意,容易引起怀疑。   更好的办法是,等沈万三去买瓶子的时候,以“懂行的年轻人”身份出现,委婉提醒。这样既结了善缘,又显得自然。   但那是2001年的事。   现在才2000年8月,还有一年多。   太久了。   安奕皱起眉。   需要更快的办法。   正想着,对面床上传来声音。   “安奕。”林浩又开口了,声音里带着犹豫,“我……我能问你个问题吗?”   “问。”   “你为什么要做这个?”林浩说,“我的意思是,你技术这么好,完全可以去大公司,拿高薪。为什么非要自己创业,卖系统给网吧?这……这听起来有点……”   “有点low?”安奕替他说完。   “不是low。”林浩赶紧说,“就是……感觉大材小用。你这系统架构,做企业级应用都够了,拿去给网吧用,有点杀鸡用牛刀。”   安奕笑了。   黑暗中,这个笑容没人看见。   “林浩。”他说,“你知道中国现在有多少网吧吗?”   “不知道。”   “去年年底的数据,全国有八万家。”安奕说,“今年估计能到十万。每家网吧至少二十台机器,多的上百台。每台机器每天至少产生十块钱的上网费,多的二三十。”   他停顿了一下,让林浩消化这个数字。   “就算平均每家网吧三十台机器,每台机器每天十五块,一天就是四百五。一个月就是一万三千五。一年就是十六万。”   林浩没说话。   他在算。   “但这只是上网费。”安奕继续说,“还有饮料、零食、点卡、游戏充值……这些的利润更高。一家中等规模的网吧,年流水能做到三十万以上。”   “所以……”林浩的声音有些干涩。   “所以这不是小市场。”安奕说,“这是一个年产值几百亿,还在快速增长的大市场。而且,这个市场现在没有标准,没有巨头,一片混乱。”   他翻了个身,面向林浩的方向。   黑暗中,两个人的目光在空气中对视。   “混乱意味着机会。”安奕说,“谁能在混乱中建立标准,谁就能成为这个市场的统治者。我的‘磐石’系统,就是这个标准的第一步——先帮网吧管好账,管好机器,管好会员。等他们用习惯了,离不开了,我再推出增值服务——游戏推广、广告投放、点卡分销、甚至网吧联盟……”   他说得很慢,很清晰。   每一个字都像一颗钉子,钉进林浩的脑海里。   林浩听得屏住了呼吸。   “到那时候。”安奕最后说,“我们卖的不是一个软件,而是一整套解决方案。我们收的不是一次性的授权费,而是持续的服务费。我们控制的不是几家网吧,而是整个行业的入口。”   沉默。   长久的沉默。   只有窗外偶尔传来的汽车声,还有远处隐约的狗吠。   良久,林浩长长地吐出一口气。   “我明白了。”他说,声音里有一种豁然开朗的震撼,“你不是在做一个软件,你是在布一个局。”   安奕没否认。   “所以……”林浩又问,“你需要我做什么?”   “先把‘磐石’优化好。”安奕说,“把你刚才说的那些点都改进去——性能优化、界面美化、安全加强。做出一个真正碾压市面上所有竞品的版本。”   “然后呢?”   “然后。”安奕说,“跟我去跑市场。找网吧,谈客户,做试点。我们要在BJ,先拿下至少十家网吧。”   林浩又沉默了。   这次沉默的时间很短。   “好。”他说,声音很坚定,“我干。”   安奕点点头。   “睡吧。”他说,“明天开始,有的忙了。”   “嗯。”   林浩终于躺下了。   床板发出吱呀的响声,然后归于平静。   安奕也闭上眼睛。   这一次,他真的准备睡了。   但就在意识即将沉入黑暗的前一刻,他听到林浩又轻声说了一句:   “安奕。”   “嗯?”   “谢谢你。”   “谢什么?”   “谢谢你让我参与。”林浩说,“这比去大公司写代码,有意思多了。”   安奕笑了。   这次,他笑出了声。   很轻,但在寂静的夜里,清晰可闻。   “睡吧。”他又说了一遍。   “嗯。”   这次,两人都没再说话。   窗外的路灯不知何时熄灭了,宿舍陷入完全的黑暗。只有远处天际线泛着微弱的城市光污染,像一层薄薄的纱。   安奕的呼吸渐渐平稳。   脑海里最后的画面,是明天要去的第一个地方——中关村。   还有那个叫“蓝极速”的网吧。   他记得那家网吧。   前世2002年那年发生一起大事故,之后全国网吧整顿,行业洗牌。   但现在,那是BJ西区最大、最新的网吧。。   机器好、客流大、老板有钱。   而且、管理混乱。   完美的试点客户。。   安奕的嘴角微微上扬。   然后,他沉入了睡眠。