Published on

前端工程师的定义与未来

Authors
  • avatar
    Name
    hpoenixf
    Twitter

引言

大家都知道程序员是少见的低门槛高工资的职业,而前端工程师又比其他岗位入门更快。因此,很多人都想成为一个前端工程师。但是,在决定成为一个前端工程师之前,你了解前端是什么吗?

一千个人眼里有一千个哈姆莱特,由于每个人的经历和工作经验不同,我敢说一千个前端程序员,对前端也有至少一百种定义。我也只是一个小菜鸟,不敢对前端下什么权威定义,只是闲来无事,又觉得这个话题比较有趣而重要,希望可以跟大家一起共同探讨一下。


狭义上的前端开发

历史背景

前端工程师是一个较为新颖的概念,历史不会超过十五年。以前的前端开发工作大多是由后端顺手完成的,复杂度不高。前端的诞生可以追溯到 Ajax 和其他技术的推出,随着网页复杂度的提升,前端从后端工作中分离出来,逐渐形成独立岗位。

技术基础

对于一个完全不懂前端的新人来说,前端开发的基础是 JavaScriptHTMLCSS

  • HTML:网页的骨骼。
  • CSS:网页的皮肤。
  • JavaScript:让网页“运动起来”。

在掌握这三者之后,可以进一步学习 JQueryBootstrap。JQuery 是对 JS 的封装,降低了使用门槛;Bootstrap 是一个 UI 库,可以快速搭建样式统一且美观的网页。

工作领域

过去,狭义上的前端开发局限于浏览器开发,主要关注兼容性问题,例如适配 IE、Chrome、Safari 等浏览器。

关注点

狭义上的前端更注重网页展示,例如:

  • 做官网
  • 开发管理后台
  • 实现瀑布流和轮播图

广义上的前端开发

特点

狭义上的前端开发局限性较大,容易入门,但上升空间有限。因此,越来越多的前端工程师将目光投向更广义的前端开发领域。以下是广义前端的几个特点:

1. 向 Web 应用发展

  • 复杂度提升:Web 从简单的网页向 Web 应用转变,逐步加入操作系统的能力,例如传感器、文件存储、网络连接、生命周期等。
  • 小程序和快应用:前端页面通过微信和浏览器逐渐获取原生应用的能力,在不注重性能的领域,前端技术正在取代原生开发。

2. 工作领域更加广泛

  • 从 PC 到移动端:前端技术不再局限于 PC 页面,也开始涉足 iOS 和 Android 开发,例如通过 React Native、Weex 等技术。
  • 桌面应用开发:利用 Electron 技术,前端可以开发桌面应用,例如 VSCode 和 Atom。
  • 后端技术:Node.js 的推出让前端工程师可以涉足后端开发,渲染工作逐渐由前端负责,后端只提供 API。

3. 更关注业务和数据

过去前端开发只关注展示,离数据和业务较远,这导致前端容易被替代,薪资也难以提升。随着现代开发模式(如 MVVM)的引入,越来越多的数据逻辑处理被放到前端,前端的重要性逐步提升。

4. 更多的展示场景

前端展示不仅限于传统的官网,而是逐步扩展到办公软件、直播、游戏开发、VR、AR 等场景。

5. 工程化的前端

前端开发需要应对复杂需求,因此需要借助工具提升效率,例如:

  • Babel 和 PostCSS:处理兼容性问题。
  • Webpack:实现模块化打包和资源优化。
  • 工具链:支持图片压缩、自动化部署等任务。

总结

在我看来,前端开发的两个核心点是 数据展示。前端工程师需要解决的问题是:

  1. 如何更高效地处理数据
  2. 如何更丰富地展示数据
  3. 如何将这些展示扩展到更多终端

前端的优势在于用户无需耗费时间和流量下载客户端,而是可以通过浏览器直接访问内容并分享。然而,前端的缺点是不适用于高性能要求的场景。不过,随着硬件性能的提升,适用于前端技术的领域会越来越多,前端的未来也会更加光明。