Skip to content

Latest commit

 

History

History
167 lines (109 loc) · 7.95 KB

013.未来的前端工程师.md

File metadata and controls

167 lines (109 loc) · 7.95 KB

未来的前端工程师

作者简介:aoto 蚂蚁金服·数据体验技术团队

以下我说的都是个人观点,比较宏观粗浅,主要针对的是前端工程师本身,没有深入技术和业务细节,请谨慎参考。

职能概览

前端工程师首先是个程序员,其次也是个软件工程师,他们工作在离用户最近的地方,负责人机交互和用户体验,虽然叫“前端”,但其实他们的工作边界其实已经很宽了。展望未来,我想前端的工作会继续分化,也会继续融合,分工是工业革命以来社会高效协作的主要推动力,以后很长一段时间应该也会维持这种形态,融合的原始推动力也是提高效率。分化和融合是不断的演化和互吸收转化的,不过核心的东西我想还是不会有太大变化。

观点

  1. 继续分化(领域、行业、技术栈)
  2. 继续融合(端技术、Web 全栈技术、人工智能与端技术)
  3. 核心不变(计算机科学本质、软件工程思想与实践、程序员职业素养)

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. 核心不变

也就是计算机科学本质/软件工程思想与实践/程序员职业素养。这个就不是一段文字可以涵盖的了,这里不做详细论述。

历史回顾

回顾过前端的演化,主要参见最底下的相关资源,下图简要回顾一下 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(如果将来手机的底层能力都可以上浮到小程序,很有想象空间)
  • 产品信息展示类网站(炫酷应用):各种智能设备官网、大企业官网

未来在哪里

回顾观点

  1. 继续分化(领域细分、行业细分、技术栈细分)
  2. 继续融合(端技术融合、Web 全栈、人工智能与端技术的融合)
  3. 核心不变(计算机科学本质、软件工程思想与实践、程序员职业素养)

一些建议

  1. 关心人工智能的发展,思考 TA 在前端领域可能产生的应用场景
    • 视觉稿自动生成代码
    • 根据用户使用习惯自动排出最符合该用户习惯的界面
    • 收集用户数据在前端实时做学习和分析,如deeplearn.js
    • ...
  2. 相信前端的未来,Web 的力量
    • WebKit
    • V8
    • Flexbox:Yoga
    • ...
  3. 结合公司业务特点有重点的关注前端的某些方面,毕竟技术服务于业务

以上都是个人观点。

相关资源


后记:前端的发展超出了所有人的想象力,未来肯定是难以预测的,也没有做预测的必要,我们要做的还是踏实做好眼前的事情,“过往不恋、当下不杂、未来不迎”,与君共勉!