- Published on
前端工程师的定义与未来
- Authors
- Name
- hpoenixf
引言
大家都知道程序员是少见的低门槛高工资的职业,而前端工程师又比其他岗位入门更快。因此,很多人都想成为一个前端工程师。但是,在决定成为一个前端工程师之前,你了解前端是什么吗?
一千个人眼里有一千个哈姆莱特,由于每个人的经历和工作经验不同,我敢说一千个前端程序员,对前端也有至少一百种定义。我也只是一个小菜鸟,不敢对前端下什么权威定义,只是闲来无事,又觉得这个话题比较有趣而重要,希望可以跟大家一起共同探讨一下。
狭义上的前端开发
历史背景
前端工程师是一个较为新颖的概念,历史不会超过十五年。以前的前端开发工作大多是由后端顺手完成的,复杂度不高。前端的诞生可以追溯到 Ajax 和其他技术的推出,随着网页复杂度的提升,前端从后端工作中分离出来,逐渐形成独立岗位。
技术基础
对于一个完全不懂前端的新人来说,前端开发的基础是 JavaScript、HTML 和 CSS。
- HTML:网页的骨骼。
- CSS:网页的皮肤。
- JavaScript:让网页“运动起来”。
在掌握这三者之后,可以进一步学习 JQuery 和 Bootstrap。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:实现模块化打包和资源优化。
- 工具链:支持图片压缩、自动化部署等任务。
总结
在我看来,前端开发的两个核心点是 数据 和 展示。前端工程师需要解决的问题是:
- 如何更高效地处理数据。
- 如何更丰富地展示数据。
- 如何将这些展示扩展到更多终端。
前端的优势在于用户无需耗费时间和流量下载客户端,而是可以通过浏览器直接访问内容并分享。然而,前端的缺点是不适用于高性能要求的场景。不过,随着硬件性能的提升,适用于前端技术的领域会越来越多,前端的未来也会更加光明。