

























截至2024年1月9日,如果将大四那一年的实习经验也算在内,我的前端开发之旅已经持续了长达7年之久。在此,我想回顾一下自己的成长历程。
我在大学主修软件工程。如同国内的许多其他大学一样,起初我们学习的内容都是一些较为传统的技术,比如Java和C#;甚至还学习了如今已经被淘汰的Apache Struts 2。我加入了学校内一家类似“创业”的公司,在Eclipse中开始编写JSP。这大概算是我第一次接触HTML和CSS,当时我还没有形成对前端的清晰概念,仅仅是觉得制作页面和样式比编写逻辑更有趣。后来,我甚至创建了一个名为Hover的CSS动画库,使用了Jade和Sass。那个时候,像Jade、Pug、EJS这类模板引擎似乎颇为流行。随后,我又接触到了Hexo这样的静态博客,并为其编写了一个主题。这些都是我在大四之前的故事。
2017年,我找到了第一份工作,算是比较幸运的。尽管公司不是完美的,但他们接受了我大四的身份,并在我的建议下采用了Umi这个框架。当时的前端技术还在飞速发展中,React、Vue和Angular构成了所谓的前端三大框架。个人而言,我认为React当时的势头是最猛的,得益于阿里的Ant Design等UI库的支持,选择React成为了很多Web端项目的自然选择。在App开发方面,我们也使用了React Native。尽管这家公司可能是我职业生涯中最差的一家,但我还是非常感激那份工作,因为它让我积累了丰富的业务经验,也让我对前后端分离和前端工程化有了初步的理解。
2018年,我转到了第二份工作,并以为自己会找到一家使用React的公司。然而,我最终加入了一家初创公司,其技术栈非常多样化,这也是我成长最快的一段时间。在那里,我接触到了Node.js、Vue、Electron、Nginx以及服务器相关的技术。我的第一个项目是一个需要对搜索引擎友好的C端项目,起初我使用Vue进行开发,但很快发现SPA并不利于SEO。在同事的帮助下,我将其改为了Node.js的模板渲染方式,这有点像换了一种语言的JSP。如果是在2024年做这个项目,那么技术选型可能就会是Nuxt.js。后续的项目让我接触到了更复杂的前端计算问题,以及Electron这样的跨平台开发方案。除了技术的多样性,我还涉猎了项目部署,甚至处理了服务器的挖矿病毒问题。那段时间,我打下了大部分前端以外技能的基础。
在2020年的第三份工作中,每次面试都显得令人困惑。公司起初承诺我将从事前端开发工作,但后来却让我使用COCOS进行游戏开发。尽管我喜欢玩游戏,但我对游戏开发几乎没有兴趣。长期处于这样的工作环境,被迫编写我不喜欢的代码,将会让我非常不快乐。这实际上触及了一个鲜为人谈及的问题——对开发体验的忽视。带着不满去编码,面对更优方案的束手无策,这些都会让人痛苦。而且,这样的情绪也难免会影响到代码的质量。但有时候,我们似乎别无选择,比如尽管我不喜欢UniApp,但对于目前的团队可能它确实是最佳选项。我个人并没有足够的影响力去推动替换这个方案。
2020年年中的第四份工作,虽然业界对外包的评价不甚好,但回顾2024年的这段外包经历,我认为它还算可接受。这家外包公司位于机场内。大部分工作涉及使用Vue2来开发B端的管理后台,完成CRUD操作以及EChart图表的集成。工作十分稳定,但也无比单调,我甚至开始将编程看作一种单纯的体力劳动。在2020至2022年的三年时间里,我几乎没有机会接触到前端技术的最新发展(比如Vue3、React17+、Tailwind CSS),渡过了一段迷茫的时光。现在回顾,除了对Vue2的熟练掌握和对业务的深入理解之外,似乎并没有更多值得总结的收获。不过,其中一个项目,直到今天,它的DAU数依然是一个难以超越的高点。
2021年得益于甲方赏识,我加入了甲方,在这里,我享受着朝九晚五的生活节奏,不久后提升为前端小组副组长,开始处理更复杂的业务问题。至2023年,我推动团队大规模采用Vue3和TypeScript,这不仅提升了团队成员的技术水平,也重新点燃了我参与开源项目的热忱。这一变革起始于我自己组装的NAS服务器。尽管UnRaid系统已逐渐成熟,但作为一个程序员,我决定手动重塑很多功能。在这个过程中,我补充了网络技术的知识,也拓宽了我对技术的视野。我不再满足于前端技术,还自学了Swift和Rust,并尝试用Rust实现Redis,尽管这个项目暂时被我搁置了。 我认为2023年可以被视为AIGC的元年。我利用了GPT-4和GitHub Copilot来辅助编程,从一个习惯于复制粘贴的程序员转变为了依赖自动完成代码的程序员。前端技术在经历了几年的快速发展后,也进入了一个相对稳定的阶段,开始深入发展。
在2023年的团队总结会上,我向组员提出了一个问题:Vue仅仅是一个npm包吗?答案是:不仅仅是。理论上,Vue可以直接在HTML中实现,就像使用jQuery那样,这也是可行的。但在大多数情况下,我们讨论Vue时,实际上是在谈论Vue的生态系统,包括Vue本身、Vuex/pinia、Vue-Router等。而这些技术的使用场景也遍及各个终端平台。
正如时间的车轮滚滚向前,我的前端旅程也映照了技术的迅猛进展和个人成长的宝贵经历。过去七年,我由一位对前端充满好奇的大学生,成长为一个对技术充满热情、经验丰富的工程师。每一段经历都是我技艺成熟的里程碑,让我从制作简单的网页到构建复杂的用户界面,从理解基本的编程逻辑到深入掌握前端架构,我感受到了技术带来的不断变革。
前端的旅程尚未结束,而我对它的热爱依旧炽烈如初,准备好迎接新的挑战和探索更广阔的天地。

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。