午夜的城中村,空气里弥漫着潮湿的霉味和廉价泡面的香气。陈默盯着屏幕上那行红色的报错代码,感觉自己的视网膜快要烧穿了。隔壁房间传来震耳欲聋的游戏音效,那是阿豪正在《英雄联盟》里疯狂输出,而陈默的世界,此刻安静得只能听见主机风扇濒临极限的嘶鸣。
“默哥,这真的能成吗?”阿豪推门进来,手里还攥着半瓶没喝完的可乐,眼圈黑得像刚挖完煤,“咱们这‘极客青年’社区,注册才三个用户,其中两个还是我自己小号。”
陈默没回头,手指在机械键盘上敲出一串清脆的声响,像是在给这死寂的夜伴奏。“数据是冷启动的阵痛。你看,只要服务器不崩,逻辑通了,剩下的就是时间的问题。”他的声音有些沙哑,带着连续熬夜后的疲惫,但眼神里却透着一股近乎偏执的光亮。
他们没钱。这是最残酷的现实。
为了节省开支,他们租下了这间位于地下室二层的隔断房,墙面渗水留下的黄渍像是一幅抽象的地图。服务器是阿豪从二手市场淘来的旧笔记本改的,散热风扇响得像拖拉机,但好歹能跑起一个基于WordPress修改版的PHP站点。域名是阿豪用捡来的钱买的,后缀还是被人遗忘的.xyz,看起来廉价又充满希望。
“我想加个功能。”阿豪突然说,把可乐瓶放在桌上,发出轻微的磕碰声,“用户注册后,能显示一个动态的个人签名,像微博那样,而且支持Markdown语法。”
陈默终于转过头,推了推鼻梁上那副用胶带缠着镜腿的眼镜。“阿豪,我们的服务器连图片压缩都跑得很吃力。加这个功能,数据库查询会增加三倍,万一并发量稍微上来点,页面直接白屏。我们承受不起这个风险。”
“可是用户体验很重要啊!”阿豪争辩道,年轻的脸庞因为激动而泛起红晕,“如果用户觉得这里简陋,他们就不会留下来。我们需要一点‘高级感’,哪怕只是伪装的。”
陈默沉默了片刻,目光重新落回屏幕。代码的世界里,简洁即是美,冗余即是罪。但在现实世界里,吸引力法则往往比逻辑更先起作用。他叹了口气,从抽屉里摸出一包皱巴巴的香烟,想了想又放了回去,改为拿起桌上的保温杯喝了一口凉透的茶。
“好吧。”陈默说,“但我有个条件。所有的后端逻辑必须优化,不能有多余的一次数据库读取。你要写一个缓存层,把签名信息存到Redis里,哪怕我们用那个破内存条硬撑。”
阿豪眼睛一亮,刚才的沮丧瞬间烟消云散。“真的?默哥你肯放手让我搞?”
“我不是放手,是放权。”陈默淡淡地说,“但代码审查权在我。每一行新增的代码,都要经过我的Review。如果我发现有任何性能隐患,我会毫不犹豫地删掉它,哪怕你熬了三个通宵。”
阿豪用力点了点头,转身跑回自己的工位。键盘声再次响起,这次节奏更快,更急促,像是一场无声的冲锋。陈默看着他的背影,嘴角微微上扬。这就是阿豪,热血、冲动,但拥有惊人的执行力和创造力。而自己,则是那个负责踩刹车的人。
两个男孩子,一个负责仰望星空,一个负责脚踏实地。
时间一点点流逝,窗外的天色从漆黑变成了深蓝,再逐渐泛起鱼肚白。城市开始苏醒,远处的马路上传来了环卫车清扫街道的声音,沙沙作响,像是给这座城市奏响的晨曲。
“搞定了!”阿豪突然大喊一声,声音里带着颤抖,“签名功能上线了!我测试了,响应时间控制在50毫秒以内!”
陈默站起身,揉了揉僵硬的后颈,走到阿豪身后。屏幕上,一个简陋却清晰的输入框出现在用户个人中心。阿豪小心翼翼地输入了一行字:“致那些在深夜里发光的人。”
点击发布。
页面刷新,那行字优雅地呈现出来,没有任何报错,流畅得像丝绸划过指尖。
“看,”阿豪指着屏幕,眼里闪着泪光,“这就是我们的作品。虽然只有两个人在维护,虽然服务器很烂,域名很土,但它活着。它是一个完整的、有逻辑的、能被人访问的网站。”
陈默看着那行字,心中涌起一股难以言喻的感动。他们做的不仅仅是一个网站,而是在这片冰冷的数字荒原上,搭建了一座属于他们的避难所。在这里,没有资本的博弈,没有大厂的倾轧,只有两个男孩对技术最纯粹的热爱,和对分享最朴素的渴望。
“走吧,”陈默说,“去买早餐。我想吃肠粉。”
“好嘞!我请客!”阿豪兴奋地跳起来,差点撞到桌上的路由器。
两人推开房门,走进了清晨微凉的风中。身后,那台老旧的服务器依然在低声轰鸣,仿佛在诉说着一个关于梦想、坚持与成长的开始。在这个巨大的互联网世界里,也许他们的声音很小,小得像是一粒尘埃。但正如那行签名所说,哪怕微弱,也要发光。
因为他们知道,每一个伟大的帝国,都始于一个简陋的站点,和两个不肯低头的年轻人。