自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JavaScript 2018: 你需要和不需要深入的

開發(fā) 前端
在2018里,對于聰明的開發(fā)者們可以去熟悉的東西, Brown 給出了他對 JavaScript 生態(tài)系統(tǒng)中各個方面最前沿,至少也是很有用的預(yù)測。有兩點需要說明的是: 首先,他基于所有 JavaScript于 標準的這些變化中,指出了一些好的可以去了解的,盡管里面所羅列的一些東西可能不是你所關(guān)注的。

[[218647]]

JavaScript 現(xiàn)今已發(fā)展成熟 -- 我們也不再是在頁面上做一些小小的互動元素了,而是使用 JavaScript 構(gòu)建整個大型應(yīng)用。 當(dāng)然,這也使得其比過去更為復(fù)雜, 在這個變化萬千的 JavaScript 生態(tài)系統(tǒng)中,我們也已難以知道整個系統(tǒng)到底有多大。

Ethan Brown,以軟件工程師為職業(yè)的同時,還是 兩本 JavaScript 書籍 的作者,均由 O'Reilly 出版。 Ethan Brown 花了大量的時間剖析 JavaScript,嘗試著弄清楚這里面都有什么,以及一個現(xiàn)代 JavaScript 開發(fā)者該如何去開始迎合這些東西。

在2018里,對于聰明的開發(fā)者們可以去熟悉的東西, Brown 給出了他對 JavaScript 生態(tài)系統(tǒng)中各個方面最前沿,至少也是很有用的預(yù)測。有兩點需要說明的是: 首先,他基于所有 JavaScript于 標準的這些變化中,指出了一些好的可以去了解的,盡管里面所羅列的一些東西可能不是你所關(guān)注的。對這些有一些大體上的了解能夠讓你在遇到困難難以抉擇時,產(chǎn)生聯(lián)系,知道去找誰,知道該去了解什么樣的技術(shù)。

他還強調(diào)到,他所做的這些選擇完全根據(jù)他個人的想法以及經(jīng)驗,這當(dāng)然可能和你的完全不一樣。Brown 說到: “這些只是我的個人想法,我們都各有各的想法,而且這其中我也會有疏漏。”

先從需要關(guān)注的點開始

WebAssembly: WebAssembly 屬于 JavaScript 的一個子集, 它提供了一個針對其他語言的編譯器。 如果你想將你的 C++ 代碼編譯成 JavaScript, WebAssembly 就是你需要了解的 — 它允許幾乎任何語言運行于瀏覽器或者 Node 之中,而且也有了一些比較有意思的應(yīng)用了。 Brown 說到:“我感覺這個技術(shù)會火,會變得非常重要。我也肯定會細心留意,并且在 2018 花些時間去更好的學(xué)習(xí)它。 ”

函數(shù)式編程: “并不是什么新的東西,也已經(jīng)被 JavaScript 社區(qū)的大多數(shù)所應(yīng)用, 但我覺的 2018 才是函數(shù)式編程真正達到具有質(zhì)量和規(guī)模的一年”,Brown 說到。對其常見的批評都是更難去學(xué)習(xí),更難去理解,Brown 繼續(xù)說到,但這也是看待問題的角度不同:讓所有人都開始使用函數(shù)式編程,在這種強制性的編程風(fēng)格下所顯現(xiàn)出的迷惑、副作用以及混亂,我們看來也是非常奇怪的。

Brown 的建議:“如果你想嘗試真正嚴格的函數(shù)式編程,你可以看看 Elm 或者 ClojureScript, 不過,你也可以一句話從今天開始 ‘好的,我所有的代碼都要變成純函數(shù)式的了’。”

不可變性 (Immutability): 可以和函數(shù)式編程搭配在一起。 Brown 說到,“然而大部分人,第一次嘗試不可變數(shù)據(jù)結(jié)構(gòu)時,都會想:‘Wow, 這不太高效啊,你對所有的東西都創(chuàng)建了副本,所占用的內(nèi)存不是很必要啊’”。但需要記住的是,Brown 繼續(xù)到,你只是復(fù)制了變化的那一部分 -- 其他的結(jié)構(gòu)依然保持不變。 同時,在 JavaScript 中進行嚴格比較速度快而且開銷低,大部分切換到不可變數(shù)據(jù)結(jié)構(gòu)的人都表示性能提升了。

更好的是,不可變性為一些試驗行為提供了天然的保護網(wǎng) -- 你在知道你無法修改任何已有東西,僅是創(chuàng)建了修改部分的副本的情況下,你會更愿意去試驗?zāi)切┎皇煜さ臇|西。這對入門開發(fā)者來說也非常好。

單向數(shù)據(jù)綁定: 這是前端同學(xué)關(guān)心的東西,由 Elm 提出,被 Facebook 應(yīng)用于 Flux, 進而還有 Redux, 以及現(xiàn)在的 Angular 和 Vue”, Brown 說到。大家都越來越發(fā)覺這是個好東西, 在 2018 年也是時候去了解它了。

單向數(shù)據(jù)綁定讓你更方便地管理應(yīng)用中的狀態(tài) 。 當(dāng)你第一次嘗試的時候你會想,天啊,又要寫那么多代碼,有點大材小用的樣子了。對于一些小型應(yīng)用來說,確實是大材小用了,但一旦你的應(yīng)用達到了一定的規(guī)模,將會影響你對整個應(yīng)用的控制而不僅僅是你所負責(zé)的部分。因為當(dāng)你在使用單向數(shù)據(jù)綁定時,你需要考慮到應(yīng)用的每一層數(shù)據(jù)的流轉(zhuǎn)。

計算屬性名/字面屬性值簡寫: “可以說這是 ECMAScript 6 (ES6) 的黑馬級特性。但我目前并沒有看到大家經(jīng)常用到,我覺得會有很多地方可以用到。 他其實是一個小小的語法糖,能夠讓你動態(tài)的構(gòu)建屬性名稱,對象初始化或簡寫對象屬性值。”,Brown 說到。 “我感覺像是每周都用這個特性玩出了新花樣。同時和函數(shù)式編程搭配在一起也是挺不錯的, 如果你之前沒見過一定要去了解一下 -- 我更希望看到社區(qū)中越來越多人去使用這個特性。”

不需要擔(dān)心的東西:

如 Brown 所說,至少現(xiàn)在,某些領(lǐng)域的知識可以選擇跳過。

面向?qū)ο缶幊? “我本人并不太喜歡在 JavaScript 中使用經(jīng)典的面向?qū)ο缶幊?。我認為會有更好的模型,更好的方式去實現(xiàn)代碼復(fù)用。所以在 JavaScript 領(lǐng)域中,你也會涉及到面向?qū)ο缶幊痰闹R但不必為此而感到煩惱。 ”

Generators: “這是 JavaScript 中一個比較酷的特性, 一些地方肯定會有它的使用案例,但我認為其主要的特性已經(jīng)被 async/await 所替代。 我們很興奮的在 Koa.js 中使用 Generator ,這樣我們就可以用著同步的語義進行異步編程, 但現(xiàn)在有了 async 和 await 而且更好用。 所以除非你覺得在一些奇怪的使用案例中使用生成器比較合理的話也不用在意太多”, Brown 說到。

 

Symbol: “另外一個好的特性,對 JavaScript 語言的一個補充,但首先:我并沒有看到大家再用他;其次,每次我嘗試去使用 Symbol,除了在框架使用和序列化上出現(xiàn)問題外無其他收獲。”,Brown 說到??偟恼f來,對于 JavaScript 這門語言,他并不認為 Symbol 是個合適的設(shè)計。 他的建議:保持觀望的態(tài)度。 

責(zé)任編輯:龐桂玉 來源: 前端大全
相關(guān)推薦

2012-08-23 09:50:07

測試測試人員軟件測試

2010-11-23 10:55:47

跳槽

2020-07-28 08:28:07

JavaScriptswitch開發(fā)

2009-11-05 11:13:25

李嚴冰VMware

2021-05-26 10:19:01

jreJava應(yīng)用程序

2017-03-13 13:54:40

戴爾

2019-07-15 08:00:00

AI人工智能

2021-05-07 15:18:26

比特幣禁令監(jiān)管

2024-02-22 09:00:00

LogitMat數(shù)據(jù)集算法

2022-04-21 08:01:34

React框架action

2013-07-18 09:21:32

代碼文檔

2009-11-23 12:45:22

2015-09-30 09:57:53

天分熱情工程師

2018-01-17 15:33:14

2022-06-07 17:01:31

UI框架前端

2016-10-26 13:35:43

云自動資源負載

2016-10-26 20:21:34

自動縮放可擴展性

2013-12-02 09:43:29

字符串編程

2015-08-20 10:56:19

算法界面開發(fā)

2014-09-30 16:03:35

iStick容量iPhone
點贊
收藏

51CTO技術(shù)棧公眾號