JavaScript 开发人员更喜欢 Deno 的五大原因
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
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://yqh.aliyun.com/zhibo立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-06-11
本文作者:Dan Halperin
本文来自:“InfoQ ”,了解相关信息可以关注“InfoQ”

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
十种路径:让企业AI策略见效
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 人工智能技术在改善客户体验、稳定和增加收入以及削减成本方面做出了贡献,并因此从试水阶段进入了生产领域。绝大多数成功的人工智能案例在这三个方面都做出了贡献,并且贡献了可以测量的结果。在当今的企业世界中,已经成功实施了很多案例并已经证明了自身的价值。 这十类案例的共同点在于它们可以根据对客户交互、生产和服务流程的实时监控进行分析并提供操作建议,并且具有相当的准确性和效率。企业在初次使用人工智能的时候要构建基础数据结构和框架,以支持最具价值潜力的高级分析、机器学习和人工智能技术。市面上有各种各样的框架,而BMC的ADE(自动数字化企业,Autonomous Digital Enterprise)提供了企业客户从试水到生产环节应用所需的一切。BMC这种方式的独特之处在于,它致力于创建一个生态系统,覆盖客户之旅中的每一个接触点,跨越客户选择用于与企业互动的任何渠道,通过这种方式提供卓越的客户体验。 公认的十大人工智能技术能够提供价值的领域 世界上有很多全球领先的企业都在从试水向生产环节过渡,它们是...
- 下一篇
百度NeurIPS全球顶会冠军团队,带你7日从零实践强化学习
如今,强化学习不仅成了学术界的宠儿,相关研究论文在各大顶会中的比例飞速上升;也在不断挑战冠军,突破记录,成为了AI开发的热门领域,比如击败围棋世界冠军的Alpha Go,就引起了大家对AI的广泛关注。 强化学习在游戏中也有很好的表现,比如在《Dota 2》中血虐人类玩家的OpenAI Five,达到《星际争霸 2》人类对战天梯的顶级水平的AlphaStar,也刷新了人们对强化学习的认知。 强化学习能挑战众多世界冠军 人类亦能利用强化学习成为冠军! NeurIPS,神经信息处理系统大会,是一个关于机器学习和计算神经科学的国际会议,被认为是机器学习领域的顶级会议之一。 2018年,首次参加NeurIPS强化学习赛的百度大脑NLP技术团队一举击败众多强劲对手,以9980分的成绩夺得冠军,领先第二名由“RNN之父”Juergen Schmidhuber 创立的NNAISENSE团队30多分。 2019年,在NeurIPS强化学习赛上,百度再度夺得冠军,大幅领先第二名143分。 百度在人工智能的研究和应用领域不断建树,还致力于培养与选拔最具有核心竞争力的AI人才,帮助更多开发者进入强化学习这一领...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- 2048小游戏-低调大师作品
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)