清晨八点半,林晨已经坐在了科技园写字楼的工位上。昨晚优化投资系统到凌晨一点,但此刻他精神还不错。窗外的南山科技园在晨光中逐渐苏醒,远处腾讯滨海大厦的玻璃幕墙反射着金色的阳光。他抿了一口保温杯里的黑咖啡,打开了昨天没来得及细看的项目代码库。
入职这家 Web3 公司已经两周,他主要负责一个 DeFi 借贷平台的后端智能合约开发。前两周主要在熟悉业务逻辑和团队协作流程,今天终于要开始深入核心代码了。项目名叫“鲸鱼金融”——一个面向大户的加密资产借贷协议。林晨点开主合约文件,Solidity 代码在编辑器里铺展开来。
只看了一分钟,他的眉头就皱了起来。五百行的合约文件里,竟然有四处完全相同的抵押品清算逻辑,只是变量名稍有不同。继续往下翻,一个处理利率计算的函数里嵌套了七层 if-else 判断,像一团纠缠的毛线球。注释?寥寥无几,仅有的几行还写着:“这里好像有问题,但先这样吧”。
林晨深吸一口气,点开了测试目录。空的。只有几个自动生成的骨架文件,没有任何实际测试用例。他又查看了文档目录,只有一个 README.md,里面写着“鲸鱼金融——下一代 DeFi 借贷协议”,下面就没有实质性内容了。“这……”林晨感觉太阳穴在跳。他从业十年,经历过各种项目,但像这样基础质量的项目,在稍微正规点的公司都活不过立项评审。
上午九点,团队站会。Tech Lead 陈峰——一个三十出头、穿着印有“HODL”字样 T 恤的瘦高男人——站在白板前,语速飞快:“这周重点是上线流动性挖矿功能,吸引第一批用户。合约开发部分,林晨你负责挖矿奖励的发放逻辑,三天内完成开发,周五部署测试网”。
林晨举手:“陈哥,我看了现有的合约代码,有些问题想讨论一下”。 陈峰看了眼手表:“简单说,五分钟”。
“第一,代码重复严重,同样逻辑写了四遍,维护起来是灾难。第二,核心函数嵌套太深,可读性和可测试性都很差。第三,完全没有单元测试,部署风险极高。第四,缺乏技术文档,新人上手成本太高”。林晨尽量用平实的语言陈述,“我建议先花一周时间做基础重构,建立测试框架,然后再开发新功能。否则技术债务会越积越多,后期迭代成本会呈指数级增长”。
会议室里安静了几秒。几个年轻程序员交换着眼神。坐在角落的王明——那个上周连续熬了三个通宵的 95 后——小声嘀咕:“又要拖进度……”
陈峰笑了,那是一种混合着无奈和不以为然的笑容:“林哥,我知道你以前在大公司待过,讲究那些规范。但咱们这是创业公司,赛道窗口期就几个月,慢一步就死了”。他走到白板前,用马克笔写下四个大字:“能跑就行”。
“咱们的优先级很明确:第一,功能快速上线;第二,用户体验;第三,营销推广”。陈峰敲着白板,“代码质量?排第十吧。只要合约能编译、能部署、用户能操作,就够了。测试?手动点一点就行。文档?等咱们活下来再补”。
林晨试图争辩:“但智能合约涉及真金白银,一个整数溢出漏洞就可能让所有资金归零。去年那个……” “去年是去年,咱们的合约简单”。陈峰打断他,“林哥,我知道你是好心,但现实是:投资方在看数据,用户在看收益,没人看你的代码写得好不好看。咱们这个月必须上线流动性挖矿,下个月交易量要翻倍,否则下一轮融资就悬了”。他拍了拍林晨的肩膀,语气缓和了些:“这样,你先按现有架构把挖矿功能做出来。等上线后稳定了,咱们再抽时间优化,行吧”?
站会结束,团队成员鱼贯而出。林晨坐在椅子上没动。窗外的阳光刺眼,他却觉得有些冷。那种熟悉的无力感又涌了上来——不是面对裁员时的恐慌,而是一种更深的失望:对技术被工具化的失望,对行业浮躁氛围的失望。
他想起十年前刚入行时,带他的导师说过:“代码是程序员的手艺,手艺不能糙”。那时的互联网行业虽然也快,但至少还有对技术本身的敬畏。现在呢?区块链、Web3,概念一个比一个炫,但扒开光鲜的外衣,里面可能是草台班子和屎山代码。
“林哥,还不走”?王明探头进来。 “马上”。林晨关掉编辑器。
中午吃饭时,林晨在科技园附近的“湘满楼”遇到了张伟。两人点了两个菜,张伟听林晨说完早上的事,苦笑着摇头:“正常,太正常了。现在 Web3 圈子里,十个项目有九个是这样。快速发币、快速上线、快速拉盘,然后要么跑路,要么归零。真正想做事的团队,凤毛麟角”。
“那你还推荐我来”?林晨夹了块剁椒鱼头。 “当时不是看你急着找工作嘛”。张伟压低声音,“而且这家至少是真在做产品,虽然糙了点。不过说实话,兄弟,你要是图长远发展,这里确实不是久留之地”。
林晨沉默地吃着饭。张伟继续说:“你知道为什么他们不重视代码质量吗?因为整
>>>点击查看《AI时代:码农的涅盘重生》最新章节