2016年對於每個web開發人員來說,javascript都是工作生活中非常大的一部分。
JavaScript的流行持續激增。不是每個人都喜歡這種語言,但是你很少聽到十年前的嘲笑意見。就我個人而言,我一直喜歡JavaScript,即使在早期,那些令人沮喪的年代。只要從C++、Java或PHP方向接近它的人首先都會感到困惑:JavaScript看起來很熟悉,但又不是。克服你的假設,你會喜歡它簡單的優雅,實用性和靈活性。 (例如:日期處理仍然是噩夢!)
JavaScript在5月份慶祝了它21歲的生日,讓我們回顧下它成熟發展的這第一年...
ECMAScript發展
viaES6/ 2015是語言自誕生以來最重要的更新。規範花了七年才完成,但瀏覽器和運行時終於開始支援箭頭函數,let、const,這帶來了更多的樂趣。 ES6相容性表正在變成一個光輝的綠色。
如果你需要支援舊的瀏覽器,全面切換到ES6也許會有一點早。對於舊的瀏覽器,一年多前發布的項目。您可以用ES6到ES5編譯器(如Babel),但是開發非常複雜,需要引入額外的建置步驟。
ES7/2016是更多的革命。一個令人興奮的新功能是async,它允許非同步程式碼以同步方式寫入,而沒有回呼或Promises(繼續困惑我)的語法複雜性。
漸進式Web應用程式
via我最喜歡的基於JavaScript的2016年技術授予Progressive Web Apps。 PWA在Google的2015年Chrome開發者高峰會上宣布,但穩定的技術和工具終於在7月到達Chrome 52。 PWA允許離線優先功能,並取代片狀AppCache方法。 Web應用程式終於可以和native應用程式競爭,並提供以下優勢:
1.主螢幕圖示
2.快速啟動和自訂閃屏
3.快速執行
4.離線功能,無需網路連線
5.網址,連結和書籤
6.全螢幕或主題介面
7.沙盒執行
8.本地或基於雲端的儲存
9.更少的設備空間和處理資源
10.更好的安全性(HTTPS是先決條件)
11.從任何搜尋引擎輕鬆發現
12.請在安裝前嘗試
13.更簡單的部署:它只是一個Web應用程式
14.沒有13.更簡單的部署:它只是一個Web應用程式
14.沒有AppStore廢話:你的應用程式可以包含任何裸體畫並且你絕對會渴望沒有人能拿走你30%的利潤!
最重要的是:任何網站或應用程式可以在幾小時內轉換為PWA。步驟:
1.在伺服器上啟用HTTPS。
2.建立一個應用程式清單 - 應用程式根目錄中的JSON文件,用於定義名稱,顏色,圖示和顯示選項。
3.建立一個Service Worker - 根目錄中的JavaScript檔案用於攔截網路呼叫,並且可以根據需要返回快取或即時資料。
初期例子很少,但是PWA提供了一個不錯的機會「動員」您的網路應用程式。雖然不能保證蘋果將實施這項技術,但這並不重要,你的應用程式仍然可以在Safari中工作,只是它不會從離線執行中受益。我有一種感覺一旦Android上web體驗有明顯提升,蘋果將鼓勵支持PWA。
框架固定via很難做出一個公正的判斷,但是React似乎在今年受到最多的關注。你也許不同意;因為這取決於你使用的是什麼,你曾經瀏覽過的地方和你說過的話!
Vue.js已普及,2.0版本於9月發布。
AngularJS可能已經失去了它在2015年獲得的一些勢頭,但這可能會隨著9月發布Angular 2而改變。新版本是一個完全重寫;它不是向後相容v1.0。
雖然新的框架和函式庫是令人興奮的,但是十年前的jQuery仍然很強大。版本3.0於6月9日發布,v3.1隨後於7月7日出現。該庫現在以嚴格模式運行,支援Promise,並實現了各種修復。 (請參閱完整修改清單的升級指南。)
在使用JavaScript的96.4%的網站上使用了jQuery。與之相比,Angular是最常用的現代框架 - 佔0.5%。 jQuery 1.x是最受歡迎的版本,佔93.5%的使用率。版本2.x佔6.0%、版本3.x佔0.5%。
我一直批評開發人員上來就直接使用jQuery。當有一個其他更合適的選擇或只要一小段JavaScript就能實現需求的時候,它就會被過度使用了。然而,它提供了更淺的學習曲線,比大多數框架更靈活。其他框架或函式庫要取代它需要很多年的時間。
API濫用🎜例如電池狀態API。在我2013年寫JavaScript的時候,它似乎很有用;當你的應用程式偵測到用戶的手機即將關機的時候,到底怎樣才能更好的最小化網路請求和處理呢?🎜不幸的是,Mozilla預估大約有6%的網站用了這個API,但大多數是廣告客戶用來檢測電池狀態,並追蹤用戶瀏覽了哪些網站的網域。也有可能是某些服務商知道一個用戶手機快關機絕望的時候,以此來提高某些服務的價格,
雖然這不是JavaScript或API的問題,出於隱私方面的原因,Mozilla採取了空前的手段把電池狀態API從Firefox 53中刪除。這不太可能出現在ios裝置中,其他具有類似原因的API也包括感測器和藍牙。這是一個不太光彩的事情:這些API都有實際的好處,我希望隱私問題可以在未來的版本中解決。
Node新版本
每年Node.JS會為我們帶來兩次發布進度,4月的6.0版本和10月的7.0版本。
目前該平台呈上升趨勢,儘管W3Techs報告Node.js伺服器使用率僅為0.2%,而PHP為82.3%。這些數字可能有點誤導,因為Node.js即使安裝了,也不一定能辨識。
因為php已經開始很久了,現在依然是服務端最可靠的選擇。然而,Node.js正在書寫自己的歷史,並被所有語言信仰的開發者廣泛使用。
Yarn
我非常喜歡npm,並且認為它是Node.js工具火爆的主要原因之一。在npm上我從來沒有遇到過太多的問題,但我不是在Facebook這樣大的專案上工作。
Facebook的工程師在10月份發布了Yarn。它是一個新的Node.js套件管理器,設計比npm更快更穩定。它依賴npm註冊表,因此可以和npm保持完全相容。
Tim Severien的Yarn vs npm:你需要知道的一切。我同意他的結論:
雖然Yarn不是複製品,但它改善了npm幾個缺陷的地方。如果npm從Yarn身上學習,並要求Facebook、Google和其他Yarn貢獻者一起來改進npm,這樣是不是很爽呢?
厭倦疲勞
2016年的有篇文章叫I-can't-take-this-any-more入選了Jose Aguinaga的2016年學習JavaScript的感覺。
這可能是種幽默的方式以表明當前JavaScript的狀態,但有一點要說明的就是,就是現在要跟上最新的趨勢,框架和建議變得越來越難。當面對大量的技術方案評估時,開發人員會互相爭執。
我的建議:不要試著跟上。因為這根本做不到。你今天重點關注的任何系統,明天都將被更好的東西取代。為您的專案選擇一個好的方案,並堅持使用它,除非它讓工作變得很糟糕。
有一個是可以確定的就是JavaScript本身。先學習語言,並繼續擴展你的知識。您的經驗將幫助您了解每個框架的運作方式,以便您做出明智的選擇,即便這種選擇可能是完全放棄所有的框架。
祝大家2017工作,生活都一切順利。