[轉] 大前端年終總結與展望:大前端時代即未來臨?

回顧 2016html

iOS 和 Android 系統不約而同窗習了對方的優勢,長得愈來愈象:3D touch、權限控制、夜間模式、電話防騷擾... 本來屬於橋的兩側的開放與封閉,愈來愈往一箇中心靠;由此看來,真正在 OS 裏的應用 App 纔是系統的靈魂。前端

像「微信」,不論你用 iOS 仍是 Android,不少人日常耗電量最多的 App 就是它。而微信藉助大量的用戶與使用時長,也在 2016 年底期,推出了「小程序」的內測,繼續百度「輕應用」未完成的使命,在微信應用裏再打造一個「小程序」生態市場。android

而在微信發佈「小程序」以前,Google 也在本身今年的 IO 大會中提出 PWA(Progressive Web Application),推進 Web 應用向前一步,在 Chrome 裏完成用戶按需使用,無需安裝(還可將資源離線),還有着相似客戶端的高性能體驗,還有桌面添加快捷方式等功能。在離線技術上用 Service Worker 來作離線化,相比以前的 App cache 更靈活高效。PWA 這項技術實際是與 Android 的 App 理念是有相應衝突的,它的將來如何還要看將來 Android 與 Chrome 如何整合吧。數據庫

Android Stdio 2 出現了 Instant Run 特性,美團以此爲基礎推出了「Robust」的熱修復技術(http://tech.meituan.com/android_robust.html), 解決了原來熱修復上方案的兼容性問題。小程序

Google 除以上外,還聯合了 Microsoft,Mozilla ,Apple 幾個主要瀏覽器廠商發起了一個面向 Web 的通用二進制和文本格式項目,它是 Web 上 JavaScript 有效補充,在本地解碼速度比現行 JS 解析要快得多。若是這一標準能普遍實施將影響全部 Web 開發者。後端

Apple 也沒閒着,在 WWDC 2016 上宣佈,Apple 在 iOS 上 的 ATS (App Transport Security)策略,將在 2017 年 3-4 月左右(原計劃是 1 月 1 號),非 HTTPS 的網絡請求將被禁止。瀏覽器

客戶端咱們能夠不用 HTTP 協議,走自建長鏈或自定義應用層協議,在 WebView 裏 HTTPS 則是繞不過的檻,也就是說,大多數 Web 站點將必須由 HTTP 遷移到 HTTPS。安全

在網絡基礎設施上還不及歐美的國內, 因爲 DNS 劫持與代碼注入,遷至 HTTPS 將遇到證書錯誤,形成原來只是注入代碼變成頁面不可訪問,最終致使 HTTP 請求成功率下降。除此以外,HTTPS 因增長了安全證書驗證與加密,相比 HTTP 請求時延增加,影響加載頁面性能和用戶體驗。前端框架

HTTPS 的推動一方面對安全是好事,也對 Web 上普及 HTTP2 推動起到很大做用;另外一方面對廣大的中小站點來講換 HTTPS 真是耗不起。而如今,各大互聯網公司都在忙着切協議了。微信

iOS 相比 Android 的環境,讓人頭疼的是沒有出現相似 Class Loader 的動態插件化技術。就在年末的前幾天,滴滴來了個大新聞,出了一個 DynamicCocoa 技術,它是流行的熱修復方案 JSpatch 的「升級版」,實現 oc 與 JavaScript 廣義互調,實現插件化。再也不上架 Appstore 就實現功能更新,至關讓人期待。若是坑真的已被踩完,頗有可能 Apple 將中止動態利用 JavaScript Core 來運行代碼的這個機制。

Web 框架上,從 Google 查詢關鍵字的大勢看,jQuery 時代已慢慢離咱們而去。Web 前端框架已基本三足鼎立,分別是 React / AngularJS / Vue。讓人想不到的是 AngularJS 查詢指數最多的地區不在歐美,也不是中國,而是在「印度」。

如圖:

不論是 Web,仍是客戶端,都不一樣程度遇到業務愈來愈複雜,代碼量愈來愈大,編譯性能愈來愈慢的問題。國外大廠們用以前服務端的分佈式編譯思路拓展到客戶端實現了並行編譯。Google 的 Bazel,Facebook 的 Buck,在很大程度上提高編譯效率;Web 咱們也作過相似嘗試,能提高約 40% 左右的性能。並行編譯這都是針對大廠複雜業務的方案,對於我的開發者與創業公司來講,這些都不是工程化中的最大痛點。

Web 開發中,Node.js已在驅動先後端的再分工,這已經是事實。而 Node.js最火的地方在哪?中國。也得益於知乎與一些技術論壇的熱炒,如今不論在哪一種場合,都在說「先後端分離」這事。事實上這誰都都有本身的理解方式,真正應用 Node.js 在前端與後端的從新分層,有輕如用它只作數據 IO 的 API,也有重如創業公司從業務到數據庫鏈接全是 Node.js 的。前端向後端滲透,後端再後移,具體怎麼分,沒有定論。

最後總結一下「跨端」,它在今年是「百花齊放」。

跨端技術今年已再也不去談論 Hybrid 技術了。離線化、差量更新、Web 與端互調等能力已不是什麼新鮮事,說明混合開發已基本成熟,在各大廠均有較爲普遍的使用,若是還沒作的,也在補齊當中。

新的技術是:React Native、Weex,還有 PWA、小程序,甚至還有 Electron。我向培訓行業的人瞭解過,今年 Android、iOS 的培訓人數在減小,而以 Web 技術棧的培訓中心的前端生源一直沒減,這充分說明市場對這塊技術人材的渴求。

展望 2017

經過簡單梳理完 2016 的前端技術以後,能夠總結出 2017 的一些趨勢。我也簡單列舉本身關注的幾點:

  1. iOS 動態插件化技術。特別是 iOS 上的插件化技術期待可以獲得更大的發展,來解決目前發版效率與包大小問題。

  2. Google 一邊是 Chrome 的 Web,另外一邊是 Android 的 App,我很期待的是 Chrome 與 Android 融合以後對開發的影響。

  3. Web 框架層面明年難有創新,中期還還是 React/AngularJS/Vue 三駕馬車的技術棧體系,但我仍期待是否有超越 React 的模板/框架思路。

  4. HTTP 到 HTTPS 的更替將會推進 HTTP 2 的使用。讓 Web 頁面性能十年以來以請求數爲首要基準成爲過去式。爲應對 HTTPS,部分雲計算廠商能夠提供整套移動端商業解決方案,如:長鏈透傳收費服務和 HTTPS 套裝。

  5. 跨端上 React Native 與 Weex 着重於解決跨端技術問題,並不能給開發者帶來實實在在的收益。PWA 還談之過早,因此我更看好小程序將來的發展,並非技術上如今有多牛,而是在微信它是能給我的開發者和 Web 從業者帶來就業機會與收益的最佳方式。腦洞大一點的看,支付寶、Facebook、小米是否也會會推出本身的「小程序」場景呢?是件使人期待的事。

前端的春天

不論是 Web 前端、iOS,仍是 Android,對大前端工程師來講,這是最好的時代。放在幾年前 1/3 是大前端,2/3 是後端。而如今則是一半以上是大前端的人,這充分說明大前端的重要性。

Web 前端的工程師在問將來在哪裏,Android 和 iOS 的工程師也在說 Web 前端搶了他們的飯碗。出口在哪?除了向 NodeJS 向後端的滲透以外,跨端的學習,專一一端技術,關注其餘端的技術也是一種出路。如今業務中遇到的問題常常是三端參與,你能夠想象當開一個業務會議,後端一個工程師參與,前端一去就三人的感人畫面嗎?

跨端技術,只是大前端開始。端與端技術之間相互學習和借鑑,這將成爲將來前端技術最重要的創新來源。

相關文章
相關標籤/搜索