OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

JavaScript 开发人员更喜欢 Deno 的五大原因

  • 2020-06-11
  • 本文字数:1644 字

    阅读完需:约 5 分钟

JavaScript开发人员更喜欢Deno的五大原因

本文最初发布于 Medium 网站,经原作者授权由 InfoQ 中文站翻译并分享。


NodeJS 的创造人 Ryan Dahl 刚发布了一个新的运行时 Deno,旨在解决 Node 存在的许多缺陷。像大家一样,我一开始也以为这只是又一个 JS 框架。但是深入了解过 Deno 的各项优点之后,我意识到了 Deno 正是 2020 年的今天,后端 Javascript 开发人员所需要的东西。在这篇文章中,我们就来看一下 JavaScript 开发人员为什么在使用 Deno 时能比 Node 获得更流畅、更现代化的体验。

现代化的 Javascript——ES 模块


如果你也像我一样是一位 React 开发人员,你会注意到使用 NodeJS 导入软件包的语法是不一样的。这是因为 Node 面世于 2009 年,这些年来 Javascript 得到了大量更新和改进。


在 React(和 Deno)中,我们使用 import package from 'package’语法,而在 Node 中我们使用 const package = require(“package”)语法。


Deno 的 ES 模块 import 有两个优势:


  1. 通过 import,你可以有选择地从包中加载所需的部件,从而节约了内存空间。

  2. 加载与 require 是同步的,而 import 则会异步加载模块,从而提高了性能。


如上图所示,我们正在从一个 URL 导入 moment 包,这也是 Deno 的另一个优势。

去中心化包

使用 Deno 时,你不用再依赖 NPM 了。是的,不再需要 package.json。每个包都是从一个 URL 加载的。


在 NodeJS 中,要使用一个软件包,你必须先从 NPM 安装它:


npm i moment
复制代码


等它安装完毕后,再将其包含在你的应用中:


const moment = require("moment")
复制代码


另外,不管是谁要在本地运行你的 NodeJS 存储库,都必须从 NPM 安装所有依赖项。


在 Deno 中,这个包是从一个 URL 导入的。所以要使用 moment 时,只需导入https://deno.land/x/moment/moment.ts即可。



Deno 中软件包这块的另一大优势是,每个包安装完成后都缓存在硬盘驱动器上。也就是说软件包的安装过程只运行一次。要在任何地方再次导入依赖项时,并不需要重新下载。

TypeScript 原生支持,无需配置


在 NodeJS 中使用 TypeScript 需要很多准备工作。你必须安装 typescript,更新 package.json、tsconfig.json,并确保你的模块支持 @types。


在 Deno 中,你要做的就是将文件另存为.ts 而不是.js,TypeScript 编译器已经准备就绪了

顶级 await——在异步函数之外使用 await


在 Node 中,我们只能在一个异步函数中访问 await 关键字。


而在 Deno 中,你可以随时随地 await 任何事情,而无需将其包装在一个异步函数中。


几乎所有的 Javascript 应用都包含许多异步函数。这一改进让代码变得更加简洁明了。

访问 Browser API(Window,Fetch)

要使用 Javascript 发出 HTTP 请求,我们可以使用 Fetch API。


在 NodeJS 中我们没有访问 Browser API 的权限,因此我们不能直接调用一个 fetch 函数。我们必须先安装这个包:


npm i node-fetch
复制代码


然后导入它:


const fetch = require("node-fetch")
复制代码


这样我们才能调用一个 fetch。


Deno 原生支持访问 window 对象,于是你可以调用 fetch(“https://something.com”)以及 Browser API 中的其他任意内容,而无需安装任何库。


有了这个顶级 await 的优势,Deno 的代码就会比 Node 简单很多:


还不止这些

Deno 还有其他许多优点,例如默认情况下更安全、可以执行 Wasm 二进制文件、拥有许多内置库,等等。


本文提到的这些要点都是相互联系的,它们共同打造出了一个更现代化的 JavaScript 后端运行时。作为一名 React 开发人员,我站 Deno 这边。现在我可以使用 import 语法,在需要的任何位置编写 await,无需任何配置直接使用 TypeScript,甚至可以无需安装包就调用 fetch。一切都非常简单。


Deno 最终会取代 Node 吗?也许会吧。这可能需要几年时间。NodeJS 生态系统非常庞大,Deno 可能需要一些时间才能迎头赶上。很多 Javascript 开发人员最近都考虑在新项目中使用 Deno,因此如果你近期想要开始做一个新项目,Deno 绝对值得你研究一下。了解更多信息,请访问https://deno.land/


原文链接:


https://levelup.gitconnected.com/top-5-reasons-javascript-developers-prefer-deno-over-node-b1ff01734811


2020-06-11 14:342839

评论

发布
暂无评论
发现更多内容

StyleGAN 生成 AI 虚拟人脸,再也不怕侵犯肖像权

极客飞兔

人工智能 AI 图像处理 StyleGAN 人脸生成

2023金三银四最新Java面试题大全(整理版)1000+面试题附答案详解

架构师之道

程序员 java面试

EMQ&南洋万邦云边一体化方案:激活数据潜力,打造智慧工业园区

EMQ映云科技

物联网 IoT 工业互联网 智能制造 企业号 3 月 PK 榜

CorelDRAW Graphics Suite2023功能介绍

茶色酒

cdr2023

TechBits | TCP 使用 WireShark 进行抓包

Java你猿哥

Java 后端 ssm

阿里巴巴灵魂一问:说说触发HashMap死循环根因

Java你猿哥

Java jdk 后端 ssm

Java体系最强干货分享—挑战40天准备Java面试,最快拿到offer!

Java你猿哥

Java 后端 ssm 面经 春招

轻松搞定面试拿offer的Java面试宝典(全彩图文版)24个Java技术栈

Java你猿哥

Java 面试 ssm 面经 java技术栈

爱了!阿里P8纯手码出489页SQL优化手册,附笔记源码

做梦都在改BUG

Java 数据库 sql 面试

MQTT 5.0特性Inflight Window&Message Queue

EMQ映云科技

物联网 IoT mqtt emqx 企业号 3 月 PK 榜

代码实战带你了解深度学习中的混合精度训练

华为云开发者联盟

人工智能 深度学习 华为云 华为云开发者联盟 企业号 3 月 PK 榜

币安欧意交易所合约跟单平台软件开发详情(api对接)

开发微hkkf5566

3月27日“文心一言云服务”系列产品将发布 已有21家企业签约

Geek_2d6073

想稳中求进?字节大佬的硬核学习神器《图解Java并发编程》看了吗

Java你猿哥

Java 面试 Java并发 ssm 面经

Atlassian Server用户新选择 | 迁移到数据中心版前,您需要做这些准备(1)

龙智—DevSecOps解决方案

Atlassian Atlassian迁移 数据中心版 server版

京东三面:说说synchronized和volatile的区别

Java你猿哥

Java 面试 ssm 面经 Java多线程

见技术大佬,领惊喜好礼!快来领取数据库峰会邀请函!

InfoQ写作社区官方

数据库 云原生 阿里 热门活动 阿里云瑶池数据库峰会

GPT-4:不open的OpenAI,终于不再编造事实

鼎道智联

openai ChatGPT4

Go Slice 扩容的这些坑你踩过吗?

王中阳Go

Go golang 高效工作 学习方法 面试题

【IT小知识】扩容是什么意思?扩容的近义词有哪些?

行云管家

扩容 IT运维

美团二面特点:喜欢写一个 SQL 语句,然后问你加了哪些锁!

Java你猿哥

Java 数据库 sql ssm InnoDB存储引擎

Portraiture最新版插件新增哪些功能?

茶色酒

Portraiture4

给跪了!阿里P7技术专家进阶必备,架构进阶宝典

做梦都在改BUG

Java 进阶 架构师

如何利用ChatGPT搞科研?

Openlab_cosmoplat

人工智能 开源社区 ChatGPT

GO语言集成开发: GoLand 2022 中文激活版

真大的脸盆

Mac 代码开发 Mac 软件 代码编辑 代码编辑工具

硬核!腾讯大佬最新手打的Spring Boot笔记,从原理到实战再到源码

Java你猿哥

Java Spring Boot 后端 面经

中小企业运维安全审计用什么软件好?有推荐吗?

行云管家

信息安全 堡垒机 运维审计

分析 | NFTScan NFT API 在加密钱包开发中的应用

NFT Research

API NFT

GPT-4:我不是来抢你饭碗的,我是来抢你锅的

这我可不懂

低代码 ChatGPT JNPF GPT-4

Apache Doris 1.2.3 Release 版本正式发布

SelectDB

数据仓库 数据湖 Doris 数据湖Catalog catalog

如何基于 Apache Doris 与 Apache Flink 快速构建极速易用的实时数仓

SelectDB

flink 数据湖 实时数仓 Doris 数据库、

JavaScript开发人员更喜欢Deno的五大原因_大前端_Dan Halperin_InfoQ精选文章