杨坚的目光落在了利普那张布满青涩胡茬的脸上。
他没有说话,只是静静地看着他,似乎在等待下文。
被这种毫无波澜的目光注视着,利普感到一阵莫名的心虚,但他很快稳住了阵脚,抛出了他准备好的“受害者”剧本。
“听着,杨,这几天我简直活在地狱里。”
利普烦躁地抓着自己乱糟糟的头发,“你也知道我家是个什么情况。昨天弗兰克那个老混蛋又喝大了,在街角砸了人家两辆福特皮卡的挡风玻璃。我大半夜被警察局的电话叫醒,跑去交保释金,跟那帮满嘴脏话的警察扯皮了一整晚!今天早上刚回来,黛比的历史作业又出了问题,她在学校被老师骂哭了,我不得不花三个小时帮她查资料写论文。然后是卡尔……”
利普滔滔不绝地讲述着加拉格家族的那些破事。
如果是对付学校里的那些圣母心发作的老师,或者是南区街道办的社工,这套说辞绝对能换来无数的同情和宽容。
说完生活上的困难,他又无缝衔接到了技术上的借口。
“除了这些狗屁倒灶的破事,苹果的核心动画框架也快把我逼疯了!”
利普咽了口唾沫,显得有些义愤填膺,“在处理方块滑动和合并的动画时,主线程的 UI渲染和后台的状态机根本没法对齐!只要手指滑动得稍微快一点,动画图层的队列就会直接锁死崩溃!为了解决并发手势带来的逻辑冲突,我不得不把底层全部扒开,重新写了一套异步队列!我发誓,我这几天每天只睡不到三个小时,全都在帮你擦这些苹果底层框架的屁股!”
利普一口气说完了所有的台词,然后喘着粗气看着杨坚。他觉得自己这番表演堪称完美,既有底层人民的挣扎,又有不可抗力的技术难关。
杨坚听完,轻轻转动了一下手里的马克杯,吹了一下热乎的黑咖啡。
“也就是说,iOS版本今天无法上线。”杨坚语气淡漠地得出了结论。
“是的,没法上线。但我确实已经完成了75%的业务逻辑,最核心的滑动算法和状态机我都写完了,剩下的只是一些体力活。”
利普强调着自己的贡献,随后图穷匕见,“今天是周五,也是我们之前约定好的结款日。既然我完成了四分之三,那你是不是应该先把这部分的工钱给我结了?”
房间里的空气突然安静了下来。
只能听到电脑机箱里散热风扇发出的细微嗡嗡声。
杨坚看着利普,那眼神就像是在看一个在玻璃罐子里拼命蹬腿的仓鼠。
“利普,你是个聪明人,但你似乎对软件工程的商业契约有亿点点误解。”
杨坚缓缓开口,声音不大,却透着一股不容置疑的冷冽,“在正经的规矩里,哪怕你完成了99.9%的代码,只要它不能打包、不能通过编译、不能被用户下载使用,它在商业上的价值就是零。你没有完成交付,怎么会有结款呢。”
利普的脸色微微变了变,但他立刻反驳道:“但你不能否认我的劳动时间!我敲进去的每一行代码都是耗费了脑力的!在工地上,哪怕你只搬了半天的砖,包工头也得给你结半天的钱!”
“这里不是建筑工地。”杨坚无情地打断了他,“我们当初谈好的是项目交付制,不是计时计件制。不过,看在你确实提交了部分核心逻辑的份上……”
杨坚顿了顿,伸出两根手指:“我只能按基础外包费的百分之五十给你结款。剩余的钱,因为你违约了,一分都没有。也就是说,今天你只能拿走八百美金。”
“八百美金?!”
这个数字像是一根烧红的钢针,狠狠刺中了利普本就因为被骗走100美金而极度敏感的神经。
他猛地从折叠椅上站了起来,椅子腿在木地板上划出一道刺耳的摩擦声。
“你他妈在耍我吗?!”
利普的音量陡然拔高,脖子上的青筋因为愤怒而暴起,“我他妈没日没夜地干了两个星期!你那套狗屁算法的内存问题全是我解决的!没有我,你连iOS的门都摸不到!我完成了四分之三的工作,你现在却告诉我只能拿一半?!”
在这个瞬间,利普之前所有的伪装都被撕碎了。
他骨子里那种街头混混的戾气彻底爆发了出来。
他觉得杨坚在赤裸裸地剥削他,在压榨他这个天才的劳动力。
“这是合同,也是规矩。”
杨坚依然坐在椅子上,连姿势都没有换一下,“商业社会不相信‘没有功劳也有苦劳’这种废话。你交付不了完整的产品,就要承担违约的代价。”
“去你妈的规矩!”
利普双手重重地拍在杨坚的办公桌上,像一头发怒的小狮子一样死死盯着杨坚,“我知道你这破游戏每天在安卓上能赚多少钱!几万美金!你动动手指就能进账几万美金!而我呢?我只要我应得的那一部分!我完成了75%,你就必须付我75%的钱!一分都不能少!”
极度的愤怒中,利普甚至搬出了他自认为最站得住脚的道德制高点。
“你根本不缺这几百块钱!但我们家需要!菲奥娜需要交电费,我们还需要买冬天的食物、暖气和热水!你明明知道我的处境,你却为了你那该死的资本家规矩,在这里克扣我这几百块钱!”
利普咆哮着,唾沫星子几乎要飞到杨坚的显示器上。
他试图用声高和道德绑架来压倒对方,这在过去面对南区的债主或是学校老师时,往往都能起到奇效。
然而,杨坚并没有被激怒,也没有因为听到加拉格家的惨状而流露出哪怕一丝一毫的同情。
他甚至连眼皮都没有抬一下。
“如果在菜市场买菜,你这种撒泼打滚的讨价还价或许有用。”杨坚轻轻将手里的咖啡杯放在桌子上,发出一声清脆的“当”的声响。
他抬起头,那双深邃的黑色眼眸中,没有任何情绪的波动,只有绝对的理性和冷酷。
“既然你觉得50%不公平,非要用这种街头流氓的方式来跟我讲道理……”
杨坚的声音依然平稳,但吐出的每一个字都像冰块一样砸在利普的脸上,“那我现在改主意了。百分之二十五。四百美金。要,或者滚。”
房间里的空气仿佛在这一刻被瞬间抽干了。
利普愣住了。他瞪大了眼睛,仿佛不相信自己的耳朵。
他试图用愤怒来争取更多的利益,结果对方竟然直接腰斩了报价?
“你他妈说什么?!”
利普彻底失去了理智。他觉得自己的尊严被这个亚裔小子踩在脚底下来回摩擦。
他甚至有一种强烈的冲动,想狠狠地给杨坚那张平静的脸上来一记右勾拳。
“How dare you!你怎么敢越给越少?!”
利普像一头困兽一样在狭窄的空间里嘶吼着,“这连我上次外包的钱都不如!你真以为我可以随便被你这种道貌岸然的混蛋压榨的吗?!”
就在利普的咆哮声几乎要掀翻屋顶的时候,杨坚动了。
他从那张宽大的转椅上缓缓站了起来。
随着他的起身,一种利普从未在这个周边人身上感受过的、极其恐怖的压迫感,如同实质般在两人之间蔓延开来。
这不是南区黑帮老大那种靠着暴力和纹身堆砌出来的凶狠,而是一种属于成熟商业社会里资深架构师的冷酷理智。
那是在真正的技术壁垒和严苛的行业规则中打磨出来的绝对自信,是洞悉了底层逻辑后,面对耍小聪明时流露出的蔑视。
杨坚的身高原本就占优,此刻他俯视着歇斯底里的利普,深邃的黑眸里没有任何怒意,却让周围的空气都仿佛凝固了。
利普的声音不由自主地低了下去,他感觉自己像是一个在大人面前无理取闹却突然被看穿了所有把戏的幼童。
那种来自灵魂深处的战栗,让他想要后退,但他的腿却像灌了铅一样死死钉在地板上。
杨坚就这么静静地俯视着他,足足看了他十秒钟。
直到利普的胸膛因为剧烈的呼吸而上下起伏,直到他眼中的愤怒逐渐被一丝难以名状的恐慌所取代。
杨坚终于开口了。
他的声音不大,甚至称得上温和,但在这死寂的房间里,却不亚于一颗引爆的核弹。
“你不是能从《4096》里赚到更多钱吗?”
杨坚微微歪了歪头,看着如遭雷击的利普,嘴角勾起一抹极具讽刺意味的弧度。
“你那个连图标都画得像是一坨屎的换皮游戏,如果真的能通过苹果的审核,每天至少能给你带来几千美金的收入。既然你都觉得自己要成为身价百万的科技新贵了,又何必在我这里,为了区区几百块钱的烂外包费,像个被踩了尾巴的野狗一样狂吠呢?”
“轰——”
利普的大脑中仿佛有一万当量的炸药同时爆炸。
他整个人猛地僵住了。
上一秒还在疯狂嘶吼的喉咙,此刻就像是被一只无形的钢铁巨手死死掐住,再也发不出一丝声音。
他瞪大了那双布满红血丝的眼睛,瞳孔在剧烈地地震。
《4096》……
他怎么会知道《4096》?!
这不可能!这绝对不可能!
利普感觉自己全身的血液在这一瞬间被彻底抽干了,手脚冰冷得像是一具尸体。
这是他埋藏在心底最深处的秘密,是他自以为天衣无缝的翻盘底牌。
代码全都在他自己的本地硬盘里,他使用的是自己注册的苹果开发者账号,他用的甚至是不记名的借记卡!
他每次上传给杨坚的代码,都经过了极其小心的筛选和伪装。
在这间屋子里,在这个世界上,除了他自己,甚至连怂恿他的弗兰克都不知道这款游戏叫《4096》!
可是现在,这个名字却从杨坚的嘴里,如此轻描淡写地吐了出来。
“你……你……”利普的嘴唇不受控制地哆嗦着,他想问“你怎么知道的”,但那巨大的恐惧和认知崩塌,让他连一句完整的话都说不出来。
杨坚看着利普那副活见鬼的表情,没有急着解释,而是转身走到那台运行着复杂监控脚本的屏幕前,修长的手指在键盘上随意地敲击了几下。
屏幕上瞬间弹出了一个黑色的终端窗口。里面密密麻麻地滚动着绿色的代码行。
“你是个天才,利普。我从未否认过你在代码层面的天赋。”
杨坚双手撑在桌沿上,语气像是在给一个不及格的学生进行讲解,“你的学习能力很强,在Objective-C的内存处理上,你甚至比我预想的还要快两天完成。”
杨坚的话锋突然一转,犹如锋利的手术刀切开了利普最后的遮羞布。
“但是,你的聪明,仅仅停留在‘写本地代码’这种最底层的思维上。”
杨坚指着屏幕上那些疯狂跳动的数据流:“你真的以为,你敲敲键盘复制一下,换个皮,就能把我的商业逻辑据为己有?别逗哥们笑了。”
“你这几天在本地疯狂测试你那款《4096》的时候,根本没有仔细看我发给你的核心算法包吧?里面关于积分结算、历史最高分记录的逻辑,早就被我强绑定了后端的API接口。”
“我的云端服务器这几天接收到了成百上千次异常的API调用请求。请求头部里的应用标识写得清清楚楚:4096。而这些请求的IP源地址,全都指向你家的路由器。”
杨坚的眼神里透着架构师对整个技术生态的绝对掌控:“最可笑的是,你每天推送到我远程仓库的代码,所谓的四分之三的进度里,根本连网络请求的模块都还没有加进去。既然你提交给我的代码连网都连不上,那你告诉我,这几天在我服务器后台疯狂裸奔的《4096》,是个什么鬼东西?”
利普双腿一软,不受控制地跌坐在那把折叠椅上。
API接口……请求头标识……云端日志监控……
这些他在敲代码时不屑一顾,以为只是辅助功能的后端词汇,此刻化作了实质性的铁锤,将他那自诩天才的技术自尊砸得粉碎。
“你以为你骗了我?”
杨坚冷笑着,“不,我只是看猴戏,看你像个连监控摄像头都没发现的蠢贼一样,自以为是地把配色改成令人作呕的荧光蓝,看着你把名字改成《4096》,然后一遍遍地在我的服务器上留下你犯罪的铁证。”
杨坚每说一句,利普的脸色就惨白一分。
所有的伪装、所有的借口、所有的道德制高点,在冰冷的数据日志面前,变成了一个极其可笑的笑话。
利普猛地闭上了眼睛,痛苦地用双手捂住了脸。后背的冷汗瞬间浸透了他那件破旧的夹克。
他以为自己是个运筹帷幄的猎手,却不知道自己从一开始,就只是一只被关在透明玻璃箱里、被杨坚三百六十度无死角戏耍的小白鼠。
房间里死一般的寂静。
只有服务器风扇的嗡嗡声在无情地运转。
杨坚敲了敲桌面,将利普从绝望的深渊中强行拉回现实。
他居高临下地看着这个面如死灰的天才,声音里没有任何愤怒,只有让人窒息的平静:
“直视我的眼睛!告诉我,你他妈配拿一美分钱吗?!回答我!”