2019 已過去一半,前端社區關於前端將來發展的文章最近也多了起來。最近看到了阿里大佬談將來前端的文章便也有了一些本身的思考,建議沒有看過文章的小夥伴能夠去看看。前端
雖然說正式從事前端時間不算很長,不過最先接觸前端是在 2012 年左右,也就是上文的第二階段末期。但從我我的的感覺來看,那時的前端仍是連帶着切圖的第一階段。開局一個 div
,配合 Sublime 項目直接開搞。瀏覽器兼容全靠手、js 引入順序全靠腦。當時找工做的話,PS + jQuery + div 佈局足以(若是切圖好的話可能仍是加分項),會用 ExtJs
的話,當時算是王者了。npm
而以後的兩年由於工做內容和前端關係不大,也就關心的較少了。等再次迴歸的時候,已是 Angular
、React
和 Vue
的「三國」時代了。要搞項目也是 Webpack
起手的工程化流程。瀏覽器的兼容也有了預處理器來搞定,切圖也移給 UI 去作了,前端更多的是負責 JavaScript 的數據和交互處理以及基於 Node.js 的 BFF(Backend For FrontEnd)部分。後端
勉強地來講,我也算是經歷過了前端發展早期階段了。回過來看最大的一個感覺就是前端開發正變得和後端開發愈來愈像。現在的 Webpack
起手就和當年在 eclipse 中新建一個 Java 工程,而 npm
就和 Maven、Gandle 同樣。flux
式的數據管理模式中也能看到 MVC 的影子。瀏覽器
爲何前端會發展成如今這樣呢?回顧一下歷史,能夠發現 Ajax
的成熟應用爲先後端的分離埋下了伏筆。後端能夠更關注於數據層面,把渲染和交互還給前端。SPA 或者說富應用的概念也就在這個時候出現了,而隨着硬件和網絡條件的發展,SPA 和富應用也逐漸變得可能。網絡
先後端分離,也讓軟件的架構從 C/S 變爲了 B/S。但軟件的本質其實並無變化。前端拿回的數據處理的部分正是後端所擅長的。因而 Backbone 這樣的 MVC 框架就出現了。數據層的問題解決以後,還有另外一個沒法避免的問題,那就是 UI 的更新。傳統的 DOM 操做在面對複雜項目時編寫和維護就是開發者的噩夢,同時大量的 DOM 操做也會帶來性能上的問題。因而 Virtual DOM 和 MVVM 的框架也就順勢出現了。只不過 MVVM 也不是前端發明的,最先是在微軟的 WPF 上出現。架構
另外一個推手就是 Node.js。Node.js 的出現讓前端程序員沒有門檻地編寫前端須要的各類工具。模塊化、預處理器、打包工具也隨之出現。固然,一部分後端程序員把他們在後端的經驗搬來也是有必定影響的。框架
再結合到業務上來講,如今前端的工程基本都是基於各類 cli
腳手架起步。除了注重交互的 C 端外,大部分的中臺管理系統因爲邏輯以 CRUD 爲主,腳手架外加 UI 庫就能很快搭建起來。那麼這一部分也就很容易用工程化代替。中臺系統的構建以及 CRUD 爲主的系統將被簡化。(小夥伴們有據說過阿里的飛冰嗎?)前後端分離
因此從這個角度來看的話,將來前端向「前」的會更向前,往「後」的會更日後。向「前」更注重交互,會模糊與 UI 之間的界限(或者乾脆合併),這部分可能會須要 CSS 結合 UI 的藝術細胞(重 C 端);而向「後」則更靠近近後端,Node.js 爲主的 BFF 層會是另外一個方向(好比前端基礎組建的搭建、工程化工具的開發和維護),這部分可能就須要紮實的基本功了。還有一個方向是圖形學相關的技術(WebGL、Canvas),由於圖形學受制於目前的硬件,在前端方面還相對較少,固然這一部分應該是須要紮實的數學功底了。雖然如今的一部分工做可能會被工具簡化,但 IOT 和 AR/VR 技術的成熟也會進一步擴大前端的範圍,只是用的語言是否是仍是 JavaScript 就不知道了。eclipse
以上即是我我的對前端將來方向的一些思考,大部分仍是從我的的角度出發,若有不足之處還歡迎交流指正。