第44章 技术栈的挑战(2/2)
“@林晨提交信息写得太简单了,‘fixstyles’这种描述不够具体。请参考我们的提交规范:feat:、fix:、docs:等前缀,后面跟模块名和具体改动。另外,你这个分支是从a直接拉的吗?应该从develop拉。重新弄一下”。
林晨看着评论,脸有些发烫。他确实没仔细看提交规范文档,分支也拉错了。
“好的,马上改”。他在文档,提交信息写成:fix(asset-card):adjtbidbuttonstyleswithgradientandloadgstate。
再次提交,陈峰很快点了通过。“好了,下次注意”。陈峰私聊发来一句。
“明白,谢谢陈导”。林晨回复,手心有点出汗。
夜战与思维的火花
这只是个最简单的代码提交流程,就出了岔子。真正的编码挑战还在后面。
下午剩下的时间,林晨强迫自己进入高效学习状态。他不再试图一次性理解整个项目,而是采用“问题驱动”的方式——遇到什么不懂的,立刻查文档、搜StackOverflow、看项目里类似的代码是怎么写的。React的Hooks机制、TypeScript的类型推导、Vite的热更新原理……一个个概念像拼图一样慢慢拼凑起来。他发现自己多年后端开发积累的编程思维还是有用的——组件化对应模块化、状态管理对应数据流、生命周期对应初始化销毁。只是具体实现方式不同。
到下午六点,正常下班时间。办公室里大部分人还没走,Web3公司似乎没有准点下班的习惯。阿杰和几个同事在讨论一个技术方案,声音时高时低。林晨看了看任务列表,今天计划要完成的“理解项目架构和核心组件”只完成了一半。他犹豫了一下,关掉了准备下班的念头。
房贷月供一万二,试用期薪资三万,存款三十万在缓慢消耗。这份工作不能丢,至少试用期必须过。他点开外卖软件,叫了份隆江猪脚饭,然后继续回到代码世界。
晚上七点,外卖到了。林晨在茶水间快速吃完,回来时看到陈峰也还在工位,正对着三个显示器调试智能合约代码。
“陈导,还不走”?林晨随口问了句。
“嗯,合约有个gas优化问题要解决”。陈峰头也没抬,“你呢?第一天就加班”?
“技术栈不太熟,想多花点时间补补”。
陈峰这才转过头,看了林晨一眼:“正常。Web3技术迭代快,前端生态半年一变。保持学习就行。有问题随时问,但尽量先自己查文档”。
“明白”。林晨点头。
回到工位,他泡了杯茶,重新打开电脑。夜晚的办公室安静了许多,只有键盘敲击声和偶尔的讨论。窗外是南山区科技园的夜景,高楼灯火通明。
林晨深吸一口气,点开了Solidity的官方文档。既然前端暂时啃不动,他想先看看智能合约那边是什么逻辑。毕竟拍卖的核心业务在链上,理解了合约,前端只是展示层。
Solidity的语法让他稍微舒服了点——至少是类C的语言,有变量、函数、结构体、事件这些熟悉的概念。他找到项目用的拍卖合约代码,一行行读下去。这是一个简单的英式拍卖合约:卖家上架NFT,设置起拍价和拍卖时长;买家出价,必须高于当前最高价;拍卖结束后,最高出价者获得NFT,卖家收到款项。
逻辑清晰,但细节很多:出价时要锁定ETH、拍卖结束后的资金结算、流拍处理、手续费计算……林晨看着看着,忽然心里一动。这拍卖逻辑,和他之前研究的量化交易策略里的“趋势跟踪”有点相似——价格在特定规则下形成趋势,直到时间截止形成最终成交。
如果把每个NFT看作一只股票,拍卖过程就是一段短期的价格发现过程。那么,能不能用类似的数学模型来描述?这个念头一闪而过,他自嘲地笑了笑。现在连前端代码都写不利索,还想这些。但那个想法像颗种子,悄悄埋在了心里。
归途与自省
晚上九点半,林晨终于把拍卖合约的核心逻辑理清楚了。他合上电脑,颈椎已经僵硬得发疼。
林晨收拾东西,轻声离开。电梯下行时,他看着镜面里自己疲惫的脸,三十五岁的眼角已经有了细纹。回到家快十点了。苏婉还没睡,在客厅备课。
“这么晚”?她抬头,眼里有担忧。
“嗯,技术栈不太熟,加了会儿班”。林晨放下背包,瘫在沙发上。
苏婉起身给他倒了杯水:“别太拼了,身体要紧”。
林晨接过水杯,温热的感觉从掌心传来。他忽然想起白天那些年轻同事讨论游戏的样子,想起自己面对陌生代码时的无力感,想起陈峰那句“保持学习就行”。
“婉婉”,他轻声说,“我觉得自己像个刚入行的新人”。
苏婉坐到他身边,握住他的手:“你本来就是新入行啊。从跨境电商到Web3,跨度这么大,给自己点时间”。
“可是时间不等人”。林晨看着天花板,“周五就要交东西,我现在连门都没入”。
“那也得一步一步来”。苏婉语气温柔,“你忘了当年刚学编程的时候了?也是从‘HelloWorld’开始的。现在至少你已经有十年经验,学习能力比那时候强多了”。
林晨沉默了一会儿,点点头。是啊,十年前他刚毕业,连Git都不会用,现在不也成了资深工程师?技术栈再新,底层逻辑还是相通的。
晚上十一点,林晨躺在床上却睡不着。他干脆拿起手机,搜索“React快速上手”、“TypeScript实战技巧”。他看到一篇讲ReactHooks最佳实践的文章,正好解答了他白天的疑惑。
凌晨十二点半,林晨闭上眼睛。明天,要从哪里突破呢?他想好了:先不管那些花哨的库和工具,集中精力把核心用法搞熟。
代码可以骗人,但逻辑不会。而逻辑,是他最擅长的东西。