如前所述,Deno与其前身最大的区别之一是安全性。对于Deno,默认情况下不会授予任何权限-所有内容都需要由代码显式请求才能访问。作为一个经常处理安全漏洞的成都软件开发工程师(咳咳……感谢SQL注入),仅此功能就让我倾向于立即授予Deno奖杯。
但话虽如此,我们还是来谈谈功能吧!以下是一些亮点:
Node.js提供了一个非常活跃且庞大的包管理器,称为NodePackageManager(NPM),您可以使用它来下载其他人甚至您自己创建的包或模块;它还拥有超过50万个可供全球开发人员使用的软件包,这简直令人印象深刻!
但事情还有另一面,NPM之所以庞大,是因为处理JavaScript的开发者社区非常庞大,但这并不总是一件好事。对于每一个出色的包或模块,都有十几个过时、已弃用、漏洞百出的解决方案,它们会比猫在键盘上行走更快地破坏您的项目。
如果您以前听过这个,请阻止我:您看到一个可以节省您一些时间的模块并决定尝试一下。您编写npminstallx,几秒钟后NPM下载并安装了十几个不同的软件包,这些软件包是您的解决方案的依赖项。听说过厨房里厨师太多的说法吗?这就是NPM有时的感受。
Deno提供对TypeScript的原生支持,无需任何额外的配置,这使得像我这样的开发人员可以在快速开发我们的应用程序时利用类型安全,既可以在本地进行,也可以转移到DenoDeploy等云托管提供商。
根据您在动态与静态辩论中的立场,Typescript要么是天赐之物,要么是专业折磨者的产物。我个人喜欢它,但我知道它有多么令人讨厌。很难忘记它是JavaScript的超集,尤其是当您正在为要在项目中使用的晦涩模块寻找类型时。
回到主题……虽然它们在执行环境设计原则上确实有相似之处(例如,事件驱动架构和非阻塞I/O操作),所以承诺的API签名在两个生态系统中看起来都很熟悉,但每个运行时都呈现出独特的优势,具体取决于他们的用例领域和开发人员偏好都是如此。
那么这一切意味着什么呢?有时我们面临艰难的选择,需要我们在选择技术堆栈和工具时根据各自项目的主要目标进行权衡。我们只是针对上市时间进行优化吗?表现?快速扩展的能力还是长期的可维护性?
幸运的是,作为成都软件开发人员,我们拥有大量可供使用的工具,并且可以自由地在这些前沿的运行时进行实验。最终,哪个运行时最能满足我们项目的独特需求,取决于我们各个开发团队。
我喜欢将Node.js视为一位可靠的老朋友,他一直陪伴在我身边——但有时你只需要用一些新的东西来给事情增添一点趣味!因此,如果您正在寻找具有现代语言功能的更安全的Javascript运行时,请尝试Deno。
文章均为京上云专业成都软件开发公司,专注于成都软件开发服务原创,转载请注明来自https://www.j1feel.com/news/3572.html