近年來,Web 應用在整個軟件與互聯網行業承載的責任越來越重,軟件復雜度和維護成本越來越高,Web 技術,尤其是 Web 客戶端技術,迎來了爆發式的發展。
1.用Node做中間層的前端工程化方案
2.webpack、Rollup 這樣的打包工具;Babel、Postcss 這樣的轉譯工具
3.前端三架馬車react、Angular、vue 這樣面向現代 web 應用需求的前端框架及其生態
4.與APP結合的混合開發模式,內嵌單頁webview,Hybrid App
當然了,所謂的趨勢,不是一天兩天就到來的,它是未來的一個技術方向,我們之所以關注趨勢,是要關注變化,技術的發展與普及不是一日之功,一定是慢慢過渡的,但是你能夠比其他人提前看到方向,真正的市場到來的時候,你就可以提前做好准備,提前發掘機會。
從 Facebook 的 reactive Native,再到 Google 的 Flutter,足以看出,起碼對這些科技巨頭們來說,他們是認定這個方向,並且在投入的,只是當下技術還不夠成熟,所以這類前端跨平台開發框架都還不夠普及,但是你們得相信,這些巨頭的判斷與實力。
再說到國內各種平台的小程序,微信小程序、支付寶小程序等等,其實都是屬於真正意義的大前端,所以前端開發人員,以后的要求會越來越全面,你別覺得不信,等着未來的發展就知道了,以后很可能一個前端開發必須是全棧前端。
TypeScript 使用率激增
2019 年是 TypeScript 之年。TypeScript 不僅成為了在 js 代碼中添加數據類型的事實選擇,而且許多開發人員會經常在個人項目和工作中,用它來代替普通的 JavaScript。
在 2019 年初發布的 StackOverflow 調查中,TypeScript 與 Python 並列最受歡迎語言次席,僅次於 Rust。如果我們看到 TypeScript 的排名再進一步,應該也不會有什么奇怪。
TypeScript 已經席卷了整個 Web 開發世界——前端和后端皆是如此。一些開發人員認為 TS 只是跟風炒作的產物,覺得它會步 CoffeeScript 后塵;但 TypeScript 已被證明可以解決 js 開發人員面臨的一大核心問題,而且它的使用率看來只增不減。TypeScript 與所有主流文本編輯器的集成,為 Web 開發人員提供了更好的開發體驗。JavaScript 開發人員將 TypeScript 視為一種工具,它可以減少錯誤,還可以通過(提供自帶描述的)類型和對象接口更輕松地讀取代碼。
值得注意的是,TypeScript 在 2019 年的 npm 下載量超越了 React,其流行程度可見一斑。此外,它的下載量也比 Flow 和 Reason 等競爭對手高得多。
下一代Web應用:PWA
老生常談,我們先對比一下生活中WebAPP 和 原生APP的優劣
web APP 對比 原生APP 的優勢,開發成本低,適配多種移動設備,不用IOS 安卓多套代碼,迭代更新容易,省去了審核、發包、各種渠道發布帶來的時間損耗,無需安裝成本,拿來即用
當然原生APP也有它獨到的優勢,這些web app所沒有的優勢我們也不知道以后會不會有突破!
PWA解決的問題
能夠顯著提高應用加載速度
甚至讓 web 應用可以在離線環境使用 (Service Worker)
web 應用能夠像原生應用一樣被添加到主屏、全屏執行 (Web App Manifest)
進一步提高 web 應用與操作系統集成能力,讓 web 應用能在未被激活時發起推送通知 (Push API 與 Notification API) 等等。
推送Push Notification
Push API 的出現則讓推送服務具備了向 web 應用推送消息的能力,它定義了 web 應用如何向推送服務發起訂閱、如何響應推送消息,以及 web 應用、應用服務器與推送服務之間的鑒權與加密機制;由於 Push API 並不依賴 web 應用與瀏覽器 UI 存活,所以即使是在 web 應用與瀏覽器未被用戶打開的時候,也可以通過后台進程接受推送消息並調用 Notification API 向用戶發出通知
WebAssembly
什么是WebAssembly
WebAssembly 是由主流瀏覽器廠商組成的 W3C 社區團體 制定的一個新的規范。
它的縮寫是".wasm",.wasm 為文件名后綴,是一種新的底層安全的二進制語法。
可以接近原生的性能運行,並為諸如C / C ++等語言提供一個編譯目標,以便它們可以在Web上運行。它也被設計為可以與JavaScript共存,允許兩者一起工作。
能突破前端3D game 、 VR/AR 、 機器視覺、圖像處理等運行速度瓶頸
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 上可以運行,並且保證了執行效率。
hrome 的核心 JavaScript 引擎 V8 目前已包含了 Liftoff 這一新款 WebAssembly baseline 編譯器。Liftoff 簡單快速的代碼生成器極大地提升了 WebAssembly 應用的啟動速度。2019年,很多的公司都開始投入人力進行WebAssembly的學習個改造,相信WebAssembly會經歷爆發式期。
電腦刺綉綉花廠 http://www.szhdn.com 廣州品牌設計公司https://www.houdianzi.com
Serverless
Serverless 的火爆是乎可以歸因於前端。因為 Serverless 能夠較完美的⽀持Node.js,使⽤ Serverless 幫助前端開發者解決了使用Node.js 過程中的諸多問題。當前的前端工程師大多都是科班出身,雖不能和正宗的服務端開發同學比,但也可寫很多服務端層的業務邏輯。當前已經有很多公司在做 BFF 層,來滿足這部分訴求,但依舊擺脫不掉運維、機器分配 這條攔路虎。隨着 Serverless 的逐步落地,BFF 這層的代碼會擺脫運維、機器分配等復雜的問題,同時大概率會由前端同學寫這部分代碼,服務端同學專注中台系統的實現。從業務上說,業務的試錯成本也會大幅度降低。
隨着 Node.js 成為前端開發者必備技能之后,雲計算的不斷普及會讓Serverless 觸不可及。當越來越多的開發者嘗到研發⾼效的甜頭之后,Serverless 必將對前端的研發模式產生變化
同時,使用Serverless的同學一定會使用 TS。這也意味着,不寫 TS 可能真的就 Out 了。
展望
① TS 一定會在火的,現在用 TS 的感覺,讓我感覺跟 vim 很像,剛開始用的時候很難受,一旦習慣了就離不開了。未來項目會越來越復雜,用了 TS 項目的風險會可控很多。
② 多注重框架原理,夯實深度,現在對於前端工程化,注重原理才能很好的應對未來的發展。
③ 眼界放寬、拓寬自己知識的廣度,多做一些產品以及方向上的探索。