职能概览
前端工程师首先是个程序员,其次也是个软件工程师,他们工作在离用户最近的地方,负责人机交互和用户体验,虽然叫 "前端",但其实他们的工作边界其实已经很宽了.
展望未来,我想前端的工作会继续分化,也会继续融合,分工是工业革命以来社会高效协作的主要推动力,以后很长一段时间应该也会维持这种形态,融合的原始推动力也是提高效率.分化和融合是不断的演化和互吸收转化的,不过核心的东西我想还是不会有太大变化.
观点
继续分化(领域,行业,技术栈)
继续融合(端技术,web 全栈技术,人工智能与端技术)
核心不变(计算机科学本质,软件工程思想与实践,程序员职业素养)
1. 继续分化
领域
前端领域会继续分化,例如阿里内部的前端就已经有中后台,图形,端技术,泛 Node,开发者服务 5 个大方向了,每个大方向也会细分,举一些例子:
中后台:有云控制台,信息 & 资产管理平台,内部研发 & 项目管理平台,人工智能 & 机器学习平台,数据研发分析平台,企业内部信息平台等.具体产品如阿里云控制台,ERP,PAI,DeepInsight,阿里内外,Basecamp 等.
图形:有基础图形库,3D 图形,数据可视化,流程图等.具体产品如 G2,DataV,阿里云城市大脑,滴滴智能交通调度图,双十一大屏等.
端技术:有移动端(iOS,Android,MobileWeb,PWA,小程序),PC 端(客户端,Web 端),触屏电脑,各种监控大屏,智能手表手环,智能汽车 & 家居屏幕等.具体产品如淘宝支付宝的 App,PC 主站,移动 H5 站,阿里郎,VS Code,双十一大屏,UC 浏览器 UWP 版本,各种智能手表,手环,汽车,家居屏幕等.
泛 Node:有工具链,Web 框架,IoT,客户端(Electron,NW)等.具体产品如 DEF/Atool/F2E-Test(阿里前端开发者工具),Egg.js,阿里云的 IoT 应用,VS Code 等.
开发者服务:有应用开发运维平台,组件市场等.具体产品如阿里云的应用搭建平台 Boat,Fusion-Design 组件市场,支付宝小程序开发者工具等.
行业
2B
信息管理,财务,建筑,航天,水利,金融,制造等传统行业软件以及阿里提出的五新:新零售,新制造,新金融,新技术和新能源,新技术赋能传统行业
SAAS 软件及服务:如 Teambition,Trello,钉钉企业版,Basecamp,Growing.io
2C
移动 App:如微信,微博
PC 工具应用:如 Google Doc
产品展示类网站:如阿里云,支付宝官网
技术栈
React(Native)
Angular(NativeScript)
vue(Weex)
2. 继续融合
端技术
前端,客户端技术思想的融合
组件化(组件化搭建页面)
组件生命周期钩子函数(如 iOS ViewController)
MV*(如 MVVM 设计就来源于微软客户端开发框架)
大前端的统一
虚拟 DOM 技术:React/ReactNative/ReactCanvas
各种移动设备内核和引擎的统一:WebKit/V8
Web 技术文档的统一:Mozilla Web Docs
Web 全栈技术
前端,后端技术思想的融合
MV*(如前端的第一个 MVC 框架 Backbone.js 就来自于 Ruby on Rails 开发者)
AOP,依赖注入(Angular)
GraphQL(SQL)
IndexedDB(Database)
人工智能与端技术
人工智能,前端技术的融合
端是最终触达用户的节点
端数据采集 -> 后端机器学习,数据分析 -> 智能推荐呈现
物联网,前端技术的融合
智能家居 / 汽车 / 工业设备可能是有屏幕的,同时可以基于如 JerryScript 这样的 JS 执行引擎使用 Node.js 开发联网应用
3. 核心不变
计算机科学本质 / 软件工程思想与实践 / 程序员职业素养.
计算机科学基础:如基本的操作系统概念和计算机组成原理,算法和数据结构基础等等.
软件工程思想与实践:如软件开发模式,设计模式,架构思维,自动化思维,单元测试集成测试,UML 等等.
程序员职业素养:如对代码整洁和可读性的追求,对软件开发的热情,对编程技艺的自我提升等等.
历史回顾
回顾过前端的演化,主要参见最底下的相关资源,下图简要回顾一下 95 年以来软件开发和前端历史:
前端的未来
那些生存空间越来越小的产业
小规模移动 App:移动 App 市场被一些巨头把持,小规模 App 生存空间越来越小
PC 信息导航类网站(网址,购物,论坛,生活):现在移动优先,而且有智能推荐,并且是强社交
无界面交互
Web 前端能做一些事,主要是大前端的范畴
会话式界面(视频语音会话,语音搜索:WebRTC,开源语音库:Common Voice)
感官式界面(视觉:WebAR/WebVR)
无界面,未来会有大量 IoT 设备(IoT 有自己的通信协议和规范,前端的工作是在用户看不见的后台)
富界面交互
大量工作需要前端来做:
日常办公软件(复杂应用,并且慢慢从桌面程序演化为 Web):Office,Email,文档管理,产品设计,项目管理,代码编辑器
大数据 / AI 配套软件(复杂应用,并且慢慢从桌面程序演化为 Web):需要大量的后台系统来做数据分析 / 机器学习
播放器 / 游戏:H5 代替 Flash,如 Web Audio,Web Video,Canvas
容器 / DSL / 内核 / 小程序:支付宝 / 微信 / 钉钉容器,内核(也就是 UC,QQ 浏览器内核),及其自定义 DSL(如果将来手机的底层能力都可以上浮到小程序,很有想象空间)
产品信息展示类网站(炫酷应用):各种智能设备官网,大企业官网
未来在哪里?
回顾观点
继续分化(领域细分,行业细分,技术栈细分)
继续融合(端技术融合,Web 全栈,人工智能与端技术的融合)
核心不变(计算机科学本质,软件工程思想与实践,程序员职业素养)
一些建议
1 关心人工智能的发展,思考 TA 在前端领域可能产生的应用场景
视觉稿自动生成代码
根据用户使用习惯自动排出最符合该用户习惯的界面
收集用户数据在前端实时做学习和分析,如 deeplearn.js
2 相信前端的未来,Web 的力量
WebKit
V8
Flexbox:Yoga
3 结合公司业务特点有重点的关注前端的某些方面,毕竟技术服务于业务
来源: https://yq.aliyun.com/articles/394277