自序:一个前端老兵的独白

一、深夜的键盘声

凌晨两点,书房里只剩下机械键盘清脆的敲击声。屏幕的光映在我脸上,代码一行行流淌。妻子和孩子早已熟睡,这座城市也安静下来。只有我,还在为一个诡异的线上bug苦苦追寻。

这场景太熟悉了。十年了,多少个这样的夜晚。

我泡了杯浓茶,茶香混着深夜的凉意。忽然想起2015年的那个夏天,我写出第一个HTML页面时的兴奋——那是个简陋的个人主页,用了当时觉得酷炫的<marquee>滚动标签。我把它发给所有朋友看,骄傲得像完成了什么伟大作品。

如今看来,那代码幼稚得可笑。但那份纯粹的热爱,却再也找不回来了。

二、江湖的入场券

我们这代人,赶上了前端最好的时代,也赶上了最混乱的时代。

2015年入行时,江湖还是jQuery的天下。那时我们自称“切图仔”,真的就是用PS一点一点切图,再用CSS拼起来。IE6是所有人的噩梦,为了一个圆角边框,我们要写十几行兼容代码。但奇怪的是,那时候反而快乐——问题虽然低级,但解决起来有实实在在的成就感。

我记得第一次遇到跨域问题,两天没睡好觉。最后用JSONP解决了,那种豁然开朗的感觉,至今难忘。那是技术给人的最原始的快乐:你面对一个黑箱,摸索、试探、失败、再尝试,最后“咔哒”一声,锁开了。

三、奔跑的时代

然后时代开始加速。

Vue来了,React来了,Webpack、TypeScript、Node.js……新技术像潮水一样涌来。我们拼命学习,生怕被落下。今天刚学会的技术,明天可能就过时了。焦虑成了这一代前端人的底色。

我经历过技术选型的痛苦——为项目该用Vue还是React,团队争论了整整一周。经历过重构的阵痛——几十万行代码推倒重来。经历过线上事故——凌晨三点被电话叫醒,手抖着登录服务器。

最难忘的是2019年那次大促,流量峰值时页面崩溃。我们团队连续熬了三个通宵,最后发现是一个递归函数的内存泄漏。问题解决时,天刚蒙蒙亮,大家瘫在椅子上,没人说话,只是看着监控图上平稳的曲线,觉得一切都值了。

四、身份的困惑

这些年,前端工程师的身份一直在变。

从切图仔,到JavaScript工程师,到全栈工程师,现在又有了“前端架构师”“体验工程师”这些新名词。边界在不断扩展,要学的东西越来越多。

有时候我会问自己:我到底是做什么的?

是写界面的?可我现在花更多时间在设计架构、优化性能、制定规范上。是程序员?可我们还要懂用户体验、交互设计、甚至业务逻辑。前端这个岗位,就像我们的代码一样——一直在迭代,永远在演进。

五、那些坑,那些人

这本书里写的每一个“坑”,背后都是真实的故事。

有技术上的坑——比如Hooks的闭包陷阱,微前端的样式隔离,WebSocket的断线重连。这些坑摔过了,就有经验了。

但更多的是“人”的坑——团队协作的摩擦,技术管理的两难,职业发展的迷茫。这些坑没有标准答案,只能自己摸索。

我想起带过的第一个实习生,现在已经是某大厂的技术骨干。想起合作过的后端伙伴,为了一个接口设计争得面红耳赤,最后成了好朋友。想起离职的同事,在送别宴上大家喝醉了,说“前端人不骗前端人”。

这些人和事,组成了我的十年。

六、为什么写这本书

朋友问我:技术文章那么多,为什么还要写书?

我说:那些文章教你怎么做,我想说说“为什么”这么做,以及这么做的时候,我们在想什么。

这十年,我见过太多年轻开发者重复我们当年的错误。不是他们不聪明,而是有些经验,非得自己摔一跤才能记住。但如果有一本书,能让他们少摔几跤呢?

这本书不是成功学——恰恰相反,它是一本“失败集”。里面记录了我踩过的每一个坑,犯过的每一个错。有些现在看很可笑,有些至今还在影响我。

我想告诉后来者:你看,这个看起来很厉害的老兵,当年也这么菜过。所以别怕犯错,别怕迷茫。前端这条路,我们都是摸着石头过河。

七、前端的温度

技术是冷的,代码是冷的,但做技术的人是有温度的。

我记得有一次开源项目收到第一个PR时,那种奇妙的连接感——一个素未谋面的人,因为你的代码,花费自己的时间帮你改进。我记得在技术大会上,听到一个分享解决了困扰我几个月的问题,散会后追着讲师问了半小时。

前端社区有一种特别的氛围:我们竞争,但也互助;我们追赶潮流,但也怀念经典;我们面向未来,但也尊重过去。

这十年,我从社区汲取了太多。现在,是时候回馈一些什么了。

八、下一个十年

写完这篇自序时,天快亮了。

我看了看书房的摆设:书架上从《JavaScript权威指南》到《React设计原理》,墙上是这些年参加技术大会的胸牌,抽屉里存着各个时期的U盘——里面是早已过时的项目代码。

它们像地层一样,记录着时间的沉积。

我不知道前端的下一个十年会怎样。AI会不会取代我们?Web3会不会颠覆一切?元宇宙是不是下一个风口?我不知道。

但我知道的是:只要还有人在屏幕上点击、滑动、输入,只要信息还需要被展示、被交互、被理解,前端这个职业就会存在。形式会变,技术栈会变,但核心的价值不会变——连接人与信息,让数字世界更友好。

九、致读者

如果你刚入行,这本书或许能帮你避开一些坑。

如果你在路上,这本书或许能让你知道,你并不孤独。

如果你已是老兵,这本书或许能唤起一些共同的记忆。

前端这条路,没有终点。我们都在路上。

谨以此书,献给所有在深夜里写过代码的人,所有为了一个bug茶饭不思的人,所有相信代码可以改变世界的人。

江湖路远,我们代码里相见。