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

Deno VS Node:Javascript開發(fā)人員更喜歡前者的五大原因

開發(fā) 前端
相較Node而言,一起看看JavaScript開發(fā)人員使用Deno體驗更流暢和更現(xiàn)代的五大原因。

本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)

為了解決Node的許多缺點,NodeJS的開發(fā)者 Ryan Dahl,發(fā)布了一個新的運行時刻。

人們最初的反應(yīng)可能是:“太棒了,另一個Javascript框架?正是我需要的。”筆者也有過同樣的反應(yīng)。在了解其優(yōu)點之后,筆者更清晰地明白了為什么說Deno正是年后端Javascript開發(fā)人員所需要的。

相較Node而言,一起看看JavaScript開發(fā)人員使用Deno體驗更流暢和更現(xiàn)代的五大原因。

[[331286]]

1.Modern Javascript —ES 模塊

Deno VS Node:Javascript開發(fā)人員更喜歡前者的五大原因

如果你也是個React開發(fā)人員,那么應(yīng)該已經(jīng)注意到了,在使用NodeJS時導(dǎo)入包的語法是不同的。這是因為Node是在2009年開發(fā)的,從那時起,針對Javascript進(jìn)行了很多更新和改進(jìn)。

在React(和Deno)中,使用現(xiàn)代的import package from 'package'語句,而在Node中,使用const package = require("package")語句。

ES模塊導(dǎo)入的優(yōu)越性源于兩個方面:

  • 通過import,可以有選擇地僅從包中加載所需的片段,這樣可以節(jié)省內(nèi)存。
  • 加載與require同步,而import異步加載模塊,這提高了性能。

2. 頂級await —在異步函數(shù)之外使用 await

Deno VS Node:Javascript開發(fā)人員更喜歡前者的五大原因

在Node中,await關(guān)鍵字只能在異步函數(shù)中訪問。但是在Deno中,不論在何地,面對什么對象,都可以使用await,而無需將其打包為異步函數(shù)。

幾乎所有的Javascript應(yīng)用程序都包含許多異步函數(shù)。這次升級使代碼更加干凈和簡單。

3. 分散式包

[[331287]]

圖源:unsplash

有了Deno,就不必依賴于NPM。我們不再需要package.json了,每個包都是從URL上加載的。

在NodeJS中,要使用包,就必須先從NPM安裝:

  1. npm i moment 

等待安裝,然后將其包含在應(yīng)用程序中:

  1. const moment = require("moment") 

此外,不論何時,如果有人想在本地運行NodeJS 庫,就必須得從NPM安裝所有依賴項。在Deno中,包是從URL中導(dǎo)入的,所以如果想要使用moment,只需導(dǎo)入網(wǎng)址:

https://deno.land/x/moment/moment.ts.

Deno VS Node:Javascript開發(fā)人員更喜歡前者的五大原因

在包的方面,Deno另一個巨大的優(yōu)勢,在于每個包在安裝后都緩存在硬盤上,這意味著一個包的安裝只發(fā)生一次。如果要在任何位置再次導(dǎo)入依賴項,則無需再次下載。

4. TypeScript在本機工作,無需配置。

Deno VS Node:Javascript開發(fā)人員更喜歡前者的五大原因

讓TypeScript與NodeJS一起工作需要多個步驟。讀者必須安裝typescript,升級package.json和tsconfig.json,并確保模塊支持@types。

在Deno中,所有需要做的就是將文件后綴保存為.ts而不是.js,TypeScript編譯器已經(jīng)內(nèi)置。

5. 訪問瀏覽器API (Window, Fetch)

要在Javascript中發(fā)出HTTP請求,可以使用Fetch API。在NodeJS中,沒有訪問瀏覽器API的權(quán)限,因此不能本地調(diào)用fetch函數(shù)。必須首先安裝包:

  1. npm i node-fetch 

然后導(dǎo)入包:

  1. const fetch =require("node-fetch") 

只有這樣才能調(diào)用fetch函數(shù)。

而本地Deno就有權(quán)訪問對象,這意味著讀者可以無需安裝任何庫,直接調(diào)用fetch("https://something.com"),以及瀏覽器API中的任何內(nèi)容。當(dāng)與頂層await優(yōu)勢結(jié)合,你可以看出,Deno代碼比Node代碼簡潔了多少:

Deno VS Node:Javascript開發(fā)人員更喜歡前者的五大原因

2020年編寫Javascript代碼的方式

不止于此,Deno還有很多其他的優(yōu)點,比如在默認(rèn)情況下更安全,可以執(zhí)行Wasm二進(jìn)制文件,有許多內(nèi)置庫,等等。

[[331289]]

圖源:unsplash

文中所提到的要點都是互相關(guān)聯(lián)的,共同組成了一個更為現(xiàn)代的2020后端JavaScript運行時刻。作為一個React開發(fā)人員,筆者更偏愛Deno。

現(xiàn)在,筆者可以使用import語句,不論何處都可以使用 await,無需任何配置就可以使用TypeScript,甚至無需安裝包就可以調(diào)用fetch。一切都很簡單。

另一個問題是,Deno最終會取代Node嗎?或許吧,但可能需要幾年時間。NodeJS生態(tài)系統(tǒng)很龐大,Deno需要時間來趕上。但趨勢就是Deno正變得更受歡迎,如果你正要開始一個新項目,不妨試試它。

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2020-06-15 08:29:14

JavaScript開發(fā)技術(shù)

2021-04-18 18:12:07

Linux開發(fā)操作系統(tǒng)

2022-09-12 15:51:38

JavaScrip開發(fā)編程語言

2022-04-30 08:58:00

SpringJava開發(fā)

2015-03-11 09:55:12

2023-04-20 15:01:01

光纖銅纜

2023-01-11 12:14:50

NeoVimVim開發(fā)

2010-10-27 09:33:18

MVC開發(fā)

2021-03-16 06:40:43

開源工具開源Node.js

2012-12-14 08:55:45

開發(fā)人員產(chǎn)品經(jīng)理

2012-06-13 01:37:40

JSPJava

2013-01-10 10:30:36

云開發(fā)

2022-03-03 23:30:27

TypeScrip開發(fā)前端

2020-12-25 12:27:56

WebBrackets文本編輯器

2019-07-19 11:27:42

Java程序員技術(shù)

2024-11-08 15:22:08

2013-07-03 09:54:54

Android蘋果市場份額

2024-05-14 15:04:04

ChatGPT人工智能大型語言模型

2021-02-16 16:44:40

RustJavaScript開發(fā)

2013-01-04 15:36:06

Linux操作系統(tǒng)
點贊
收藏

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