前端这些年我到底经历了什么(下)

上篇链接: 前端这些年我到底经历了什么(上)

正文

2015 年 7 月,大学刚刚毕业的我进入了一家游戏公司做前端开发,在各种资源匮乏,前端只有自己一人的情况下如何进行突围?

在之前没有前端的情况下,后台工程师也能使用 JS 编写出大多数脚本,当时他们写的 jQuery 其实并不比那些专业前端差。那为什么还要招我进去呢?其实当时前端在后端眼里的主要职责还是主要为了画页面,做出拥有更好用户体验和美观的页面。因为绝大多数后台工程师的 CSS 能力真的很弱鸡,并且对写样式一直保持头疼。

起初在前后端没有分离的情况下,我需要将后台代码(python写的)在本地启动才能在浏览器中跑前端项目,甚至有些前端代码直接写在后台模版中,这种前后端耦合的情况让开发和维护效率都变得异常低下。

刚开始我也按照这种模式参与完成了两三个项目的开发,慢慢的后台开始将 JS 逐渐交给前端,当时使用的技术栈主要是:jQuery + Bootstrap。

庆幸的是,2015 年 AngularJS 在国内逐渐火了起来,为了跟上步伐,我阅读了很多相关的资料和书籍,记得当时比较火的书还是大漠穷秋翻译的《用 AngularJS 开发下一代 Web 应用》,是国内第一本关于 AngularJS 的书籍,这里的下一代 Web 应用主要指的就是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入,等等。

在当时的国内市面上很少有人会把这一概念应用到前端框架中,而 AngularJS 就是第一个吃螃蟹的。使用其提供的 ngRoute 模块前端可以控制路由的跳转,进行单页应用的开发。看到了这些亮点后,我便在组内项目中逐渐使用 AngularJS 来替换 jQuery,技术栈慢慢变为 AngularJS(1.x 版本)技术栈,前后端逐渐走向分离。

而没过多久(2015年下半年),Facebook 打造的 React 在国内异军突起,相比 AngularJS 的重而全,React 显得轻巧灵活一些(国内开发者似乎更青睐这样的,我也是),同时 Angular 对于开发一些中小型项目来说实在有点不合适,太难上手也成为其诟病之一。

于是乎很多前端开发(包括我)在开发项目时又多了一种技术栈选择:React 技术栈,结合当时蚂蚁金服出品的 React UI 框架 Ant Design,使用 React 来开发中后台系统变得更加便捷。

2015 年国内前端的巨变使我们组的几个后端工程师也开始慢慢重视前端,他们已经完全看不懂我写的前端代码,jQuery 操作 DOM 的时代也逐渐开始落幕,而此时 Vue 还不为人所知。

那时,我们工作主要的沟通方式还主要是 QQ 或 企业 QQ,作为一名程序员自然少不了加入各种 QQ 技术群潜水、冒泡或斗图。我算是比较关注群里各种大佬言论的人,有一次,群里有位大佬(其实是群主)说他目前的项目在使用 Vue,并且放言 Vue 在 2016 年会发展起来,建议我们尝试去使用它。

出于好奇,我便打开了 Vue 的官网,简单看了它的使用文档,瞬间便被吸引住了。不管是 API 设计,还是语法示例都十分优雅。我大致过了一遍文档就基本上手了,可见作者的用心之处。于是我很快也投入到了 Vue 的忠实粉队伍之中。

由于相对于 AngularJS 和 React 出生,Vue 显得非常渺小和普通,第一次在项目中使用的时候还遭到了后台同事的质疑,但是到目前看来,AngularJS 在国内的没落,Vue 受到追捧,当时的选择也便有了答案。

可以说 2016 年是 Vue 的元年,针对 Vue 的文章和社区也越来越多,慢慢的前端领域形成了“三国时代”,也可以看作是以 Vue 为主导的农民革命军拉开了一场史诗级的反美帝国主义战争。

在 2016 年组内的技术栈逐渐稳定,基本以 Vue 为主,React 为辅进行开发,而 Angular 因为在 16 年又发布了第 2 个版本,与第 1 版完全割裂,考虑成本等因素被抛弃在外。

2017 年因为公司发展的不景气及工资收入一直保持稳定,我选择了跳槽。此时我的简历(2年前端经验)中的技能是这样的:

跳槽面试可以说是非常成功,因为当时我所在地区前端招聘的时候 React、Vue 及 webpack 这样的技能在能力要求里还不是很常见(现在可以说是近 100% 出现了)。

入职后同样加入的是公司刚成立不久的部门,不同的是前端团队规模有 10 人左右,之后便开启了我的团队开发模式。

由于当时组内刚开始采用 Vue 做项目,我一进来上手可以说比较容易(对他们来说我可以算是 Vue 老手了),因此他们遇到问题便会来向我请教。同时在组内我也开启了前端相关的培训工作,如 Vue、webpack(在前端构建工具上,2017 年 webpack 已经占据了主流地位)、编码规范等。

2017 年后,前端框架开始趋于稳定,都各自发布了几个版本的迭代,前端技术慢慢的开始往跨平台、服务端发展,React Native、Node 在国内开始广泛使用,大前端的概念开始显现。同时 2017 年初,微信团队发布了小程序的正式版本。

2018 年,为了迎合部门发展需要,我开始着手部门 APP 中 React Native 的建设,与 iOS、Android 工程师配合实现 RN 的混合编程。同年,小程序发展迎来了春天,发展事态势不可挡,凭借微信流量平台,越来越多的企业开始将小程序开发纳入前端开发的技能领域。我也开始着手架构部门小程序的项目,将前端自动化、组件化理念渗透其中。

同时前端基础设施建设变得越来越重要,没有基建的前端团队很难得到发展,前端架构也越来越被人重视。随着 ES6、ES7 以及 TypeScript 的普及,JavaScript 编写变得越来越严谨和系统化。

而 Node 在前端领域的应用大大增加了前端系统的能力,如前端中间层的搭建。慢慢的一些中高级前端工程师开始往 Node 服务端探索。我们组内前端应用也相继使用 Koa2 框架搭建 node 中间层,用于处理接口转发及实现服务端的中转。

2019 年前端仍在不断变化着,前端微服务开始被越来越多人的讨论和实践,“任何可以使用 JavaScript 来编写的应用,最终会由 JavaScript 编写”的这个玩笑也逐渐变为现实。

最后更新下我的前端技能(4年经验):

前端路慢慢,吾将上下而求索。

关于

推荐关注我的微信公众号【前端呼啦圈】,定期分享原创和精选好文,第一时间获取推送文章。