突破瓶颈的第三年
在离开美团点评前,我确实可以 hold 住一些基础框架的开发了。但富文本编辑器的性质决定了它在基本稳定后的迭代方式,更多地只是修修补补而非开疆拓土。这让我感到焦虑,感觉自己处在一个为了四处救火而疲于奔命,技术进步开始放缓的瓶颈状态。在这个时候,新的机会出现了。
2017 年底的某一天,我在掘金上灌水时发现了一篇名为《我们在海边写代码》的软文,署名糖饼,看起来出自个颇有底气的前端团队。巧的是它的 base 也在厦门,并且实际地址刚好在我的上班路上。本着聊一聊反正不亏的心态,我骑着单车拜访了这家当时名叫欢乐逛的公司。
接待我的两名面试官,一位说自己花名就是糖饼(真人和头像画风不符),另一位说自己花名叫小米。他们两个人看起来蛮朴素的,但对我的长篇大论却出奇的有耐心,中途还有一名穿着黄拖鞋的男子参与了旁听。那是我经历过的最久的一轮面试,总共和我扯了应该有两三个小时。我本来以为这就是一次初面,寻思着这公司的一线同学还蛮经得住忽悠的。但其实我已经把技术面该遇到的全部 Boss 都过了一遍,没想到说好的青铜局里来了一群王者啊。
我们前端同学们所擅长编写的 JavaScript,只是在 CPU 里执行的单线程代码而已。别忘了我们还有 WebGL 这个虽然非常繁冗,但能让我们释放 GPU 潜力的武器。这个领域常常被认为是游戏开发者所专属的。而大家对于应用 Web 上的 3D 能力,首先想到的可能也都是套用 Three 等充分封装后的成熟开源渲染引擎。因此,在这个领域就没有必要重新发明轮子了吗?恰恰相反,我发现这是一片巨大的蓝海,它在 Web 设计领域的应用几乎还是白纸一张,存在着非常大的定制、优化可能性和应用前景。限于篇幅和本文的主题,这里不再详细展开,只展示一下我们自研的渲染引擎在投入开发一个月之内所得到的一些渲染效果就足够了:
在我前一段时间选择深入 WebGL 的时候,幻神提醒过我这基本相当于删号重练了。确实,在学习曲线的初期,图形学晦涩 API 的门槛让我感到非常艰难,但在坚持不使用现成引擎来实现 Demo 的一段时间后,某个时间点上我感觉自己终于可以把那些零散的点连接起来了。而这时再加上前端框架的设计经验,我确实找到了非常适合我们应用场景的一个自研方向,具体的内容暂时没有办法在这里详述,只能说我和小伙伴们正在紧张的开发中,非常希望能让我们的新特性早日和大家见面 :)
在 25 岁的今天,我感觉终于走出了之前几年在 CPU 上编写逻辑的瓶颈。从最早的玩具编程语言和游戏模拟器,再到现在的渲染引擎,所谓「编程语言、操作系统和计算机图形学」的程序员三大浪漫,我也能吹牛说自己都略有涉猎了。对我来说,从事一份工作三年之后仍然保持高涨的热情和找到值得继续钻研的技术领域,可能不是件很容易的事,因此现在的状态对我来说已经很好了。当然,要想在未来在技术上还能够继续深入,所需要的应该就不仅仅是传统的 Web 前端的领域知识,还需要更多跨领域和学科的知识了。感谢稿定这里钻研游戏引擎和图形学的大佬们,和他们的交流让我获益匪浅。现在我实在有太多需要做的事情了,因此我的博客和专栏也可能不能再维持月更的节奏,希望日后能用更多的干货来弥补 :D