商业、技术在发展,前端工程师的职责也在调整,但是他们的定位始终没有变:是离用户最近的工程师!
早期的 Web 领域,由于浏览器能力弱,标准化程度低,并没有明确的前端概念,它主要由后端主导配合一些简单的页面开发。随着谷歌 V8 引擎的问世以及 ECMAScript 5 标准的发布,前端的装备得到了整体提高,再加上用户体验越发被重视,前端迎来了一次井喷式的发展,在这个阶段前端负责所有浏览器端开发,提交高保真页面给后端,再由后端组装成一个完整的系统。但这种合作模式很快遇到了问题,前后端的边界被划在「模板」这个模糊的地带,这让两边都感到不舒服,「前后端分离」的诉求被广泛的提及,也出现了很多分离的方案。差不多在同一时期 Node.js 诞生了,它意味着 JavaScript 走出了浏览器的藩篱,在服务端语言中有了一席之地,它也给前后端分离提供一种重要的选择:前端可以通过 Node.js 完成服务端模板甚至整个 MVC 层的开发,而后端职责下沉,负责提供数据接口。再往后,伴随移动互联网的崛起,多端需求增多,每种端对于用户体验和接口的述求是不一样的,但底层接口又要求保证相对稳定,这中间产生了 Gap,于是微服务、BFF(Backend For Frontend)等概念被提出来,通过领域模型将服务的粒度拆小,再通过每个端独有的 BFF 层对接口数据进行聚合和裁剪,以达到适配各自端用户体验的需求。