天天看點

2020前端發展趨勢 -

迅速發展的前端開發,在每⼀年,都為開發者帶來了新的關鍵詞。2019 年已步⼊尾聲,2020 年前端發展的關鍵詞⼜将有哪些呢?發展的方向又會是什麼呢?參考2019年大前端的發展,不出意外,前端依舊會圍繞⼩程式、超級APP、跨端開發、前端⼯程化以及新技術運用等幾個方面進行展開(可以參考2019年大前端技術趨勢深度解讀)。

小程式

在⼩程式⽅⾯,今年仍然是⼩程式突⻜猛進的⼀年,各⼤主流的 App 都上線了⼩程式能⼒的⽀持,各前端團隊也都有了專⻔的⼩程式開發團隊,以适應更快的⼩程式開發需求。同時App 中很多關鍵的功能都被⼩程式所替代,甚⾄有些 App 已經變成 Native ⼩程式殼,上層的應⽤實作全部是⼩程式。

在微信小程式出現以前,大家在談 Hybird、ReactNative,但終歸隻是技術層面的狂歡,始終沒有業務屬性的注入。小程式的出現,一方面告訴業界在目前裝置上 Webview 也沒差到哪去,另外一方面告訴業界如何讓有能力的商家在超級 APP上進行私域營運。

另一方面,從技術角度說,在上層 DSL 的嚴格限制下,超級 APP 就可定義符合自己訴求的 Web 标準,彌補目前 Web 标準的不足,最後和用戶端配合,結合離線、預加載、定制Webview 能産出類似于 NSR 等各種酷炫的技術模型,讓 Web 在端内低成本達到 Native 版的體驗,端外也不會像 Weex 一樣有點小别扭。

不過由于需要依賴超級APP(微信、支付寶、百度、美團、頭條等),由于各家平台采用的具體方案的差異,造成目前小程式的落地方案也不一樣,有時候需要開發多套代碼。

跨端開發

跨端開發⽅⾯,RN ⽣态已經⾮常成熟,或者說看不到太多發展前景,因為目前還停留在0.61版本,似乎1.0版本仍然遙遙無期。是以,今年很多團隊轉戰⾕歌⽣态的 Flutter,特别是 Flutter for Web 的第⼀個 Release,⼜讓 Web 前端重燃希望、躍躍欲試。

同時,蘋果公司也釋出了全新的 UI 系統——SwiftUI,同時,開源社群中 SwiftUI for Web已經在路上了,SwiftUI for Android 還會遠嗎?

跨端開發⽅⾯,Flutter 仍會快速發展,并且會有更多的開發者,Flutter on JS、SwiftUIfor Web&Android 也将是開源⽣态值得期待的事情,畢竟跨端仍沒有⼀個完美的解決⽅案。

前端工程化

在前端⼯程化⽅⾯,開發者最重要的基本素養就是通過⼯具提升效率,⽽前端開發者在這⽅⾯會持續疊代和優化。

曾經我們談 Yoman,談 CLI 等系列建構工具,但在團隊大了之後始終覺得差點什麼。反觀 Java 同學,從沒聽說過 Spring Boot 配置工程師。今年很多團隊都在建設完整的前端 DevOps 流程⼯具集,⼀些團隊之間也開始協作共建,不管是 Web 還是⼩程式項⽬,從建立項⽬、開發、聯調(tiao)、部署、測試、釋出、運維到監控統計,都有完善的⼯具做保障和提效,今後前端⼯程也會越⾛越标準化。

展望2020年前端的發展,前端工程體系一定會更加閉環,不再是一個腳手架這麼簡單,而是會結合 IDE,打通業務屬性,從項目初始化、到編寫代碼、到 CI、到灰階、到釋出 形成一個完成的閉環。

Serverless

Serverless 的⽕爆⼏乎可以歸因于前端。因為 Serverless 能夠較完美的⽀持Node.js,使⽤ Serverless 幫助前端開發者解決了使⽤Node.js 過程中的諸多問題。

目前的前端工程師大多都是科班出身,雖不能和正宗的服務端開發同學比,但也可寫很多服務端層的業務邏輯。目前已經有很多公司在做 BFF 層,來滿足這部分訴求,但依舊擺脫不掉運維、機器配置設定 這條攔路虎。随着 Serverless 的逐漸落地,BFF 這層的代碼會擺脫運維、機器配置設定等複雜的問題,同時大機率會由前端同學寫這部分代碼,服務端同學專注中台系統的實作。從業務上說,業務的試錯成本也會大幅度降低。

随着 Node.js 成為前端開發者必備技能之後,雲計算的不斷普及會讓Serverless 觸⼿可及。當越來越多的開發者嘗到研發⾼效的甜頭之後,Serverless 必将對前端的研發模式産⽣變⾰。

同時,使用Serverless的同學一定會使用 TS。這也意味着,2020 不寫 TS 可能真的就 Out 了。

WebAssembly

WebAssembly 是一種新的位元組碼格式,目前主流浏覽器都已經支WebAssembly。 和 JS 需要解釋執行不同的是,WebAssembly 位元組碼和底層機器碼很相似,可以快速裝載運作,是以性能相對于 JS 解釋執行而言有了極大的提升。 也就是說WebAssembly 并不是一門程式設計語言,而是一份位元組碼标準,需要用進階程式設計語言編譯出位元組碼放到 WebAssembly 虛拟機中才能運作, 浏覽器廠商需要做的就是根據 WebAssembly 規範實作虛拟機。

有了 WebAssembly,在浏覽器上可以跑任何語言。從 Coffee 到 TypeScript,到 Babel,這些都是需要轉譯為 js 才能被執行的,而 WebAssembly 是在浏覽器裡嵌入 vm,直接執行,不需要轉譯,執行效率自然高得多。

舉個例子,AutoCAD 軟體是由美國歐特克有限公司(Autodesk)出品的一款自動計算機輔助設計軟體,可以用于繪制二維制圖和基本三維設計。使用它時,無需懂得程式設計,即可自動制圖,是以它在全球被廣泛應用于土木建築、裝飾裝潢、工業制圖、工程制圖、電子工業、服裝加工等諸多領域。

AutoCAD 是由大量 C++ 代碼編寫的軟體,經曆了非常多的技術變革,從桌面到移動端再到 web。之前,InfoQ 上有一個演講,題目是《AutoCAD & WebAssembly: Moving a 30 Year Code Base to the Web》,即通過 WebAssembly,讓很多年代久遠的 C++ 代碼在 Web 上可以運作,并且保證了執行效率。

WebAssembly 的核心 JavaScript 引擎 V8 目前已包含了 Liftoff 這一新款 WebAssembly baseline 編譯器。Liftoff 簡單快速的代碼生成器極大地提升了 WebAssembly 應用的啟動速度。2019年,很多的公司都開始投入人力進行WebAssembly的學習個改造,相信2020年WebAssembly會經曆爆發式期。

5G

2019年一個繞不開的話題就是5G。⾸先,5G 帶寬的⼤幅提升帶來傳統 Web ⻚⾯複雜度的進⼀步提升,如同 2G 到 4G 變⾰過程中⻚⾯從 WAP 的純⽂本超連結時代變⾰到 4G 全圖⽚視訊時代。5G 對于⻚⾯的變⾰必将是巨⼤的,但肯定不會⼀蹴⽽就。因為相應的配套設施也需要逐漸完善,如硬體性能和浏覽器的處理速度。⽽服務端渲染(SSR)肯定是其中⼀個捷徑,輕前端重背景,5G 是橋梁,把渲染放背景,不像同構那麼簡單,需要關注和優化渲染性能。WebAssembly 或許會在這個機遇下得到快速發展,因為它可以⽆縫對接背景多種語⾔,⽽背景渲染的優化也會帶來前端⻚⾯研發模式和技術架構的變⾰。

其次,5G 帶來的萬物互聯,⼜将帶來有别于智能⼿機和普通 PC 的多樣化的應⽤場景,VR、可穿戴裝置、⻋載系統、智能投影、智能互動等⼜會把 Web 帶⼊各種各樣的垂直領域,這也意味着前端将有更多⼴闊的空間。相信随着5G的大規模商業,會誕生一批新的網際網路巨頭。

————————————————

版權聲明:本文為CSDN部落客「xiangzhihong8」的原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結及本聲明。

原文連結:

https://blog.csdn.net/xiangzhihong8/article/details/103233487