天天看點

前端工程師的未來在哪裡?

職能概覽

前端工程師首先是個程式員,其次也是個軟體工程師,他們工作在離使用者最近的地方,負責人機互動和使用者體驗,雖然叫“前端”,但其實他們的工作邊界其實已經很寬了。

展望未來,我想前端的工作會繼續分化,也會繼續融合,分工是工業革命以來社會高效協作的主要推動力,以後很長一段時間應該也會維持這種形态,融合的原始推動力也是提高效率。分化和融合是不斷的演化和互吸收轉化的,不過核心的東西我想還是不會有太大變化。

觀點

  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
  1. 資訊管理、财務、建築、航天、水利、金融、制造等傳統行業軟體以及阿裡提出的五新:新零售,新制造,新金融,新技術和新能源,新技術賦能傳統行業
  2. SAAS軟體及服務:如Teambition、Trello、釘釘企業版、Basecamp、Growing.io
  • 2C
  1. 移動App:如微信、微網誌
  2. PC工具應用:如Google Doc
  3. 産品展示類網站:如阿裡雲、支付寶官網

技術棧

  • 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(如果将來手機的底層能力都可以上浮到小程式,很有想象空間)
  • 産品資訊展示類網站(炫酷應用):各種智能裝置官網、大企業官網

未來在哪裡?

回顧觀點

  1. 繼續分化(領域細分、行業細分、技術棧細分)
  2. 繼續融合(端技術融合、Web全棧、人工智能與端技術的融合)

一些建議

1 關心人工智能的發展,思考TA在前端領域可能産生的應用場景

  • 視覺稿自動生成代碼
  • 根據使用者使用習慣自動排出最符合該使用者習慣的界面
  • 收集使用者資料在前端實時做學習和分析,如deeplearn.js

2 相信前端的未來,Web的力量

  • WebKit
  • V8

繼續閱讀