2022 年,Slack 推出了一个使用 Deno 运行时的新开发平台,旨在为开发者提供更模块化、可组合且安全的方式来构建 Slack 应用。了解 Deno 如何凭借其简洁、现代、一体化的 JavaScript 运行时,帮助 Slack 的平台工程团队节省了数月的开发时间。
挑战
Slack 于 2015 年推出了首个开发者平台,并取得了巨大成功,将“聊天机器人”带入了主流。(甚至催生了一个新的、热门的,尽管是临时的风险投资类别。)到 2020 年,该平台每周拥有数百万活跃开发者。
然而,开发者们表达了在每次构建 Slack 应用时都必须从头开始的痛点,这需要筛选大量的配置和样板代码。开发者们还表达了对交付具有企业级安全性的应用的需求的担忧,这是大多数 Web 开发者之前不必满足的要求。
为了解决这个问题,Slack 的平台团队考虑构建一个自研运行时,以提供现代、易用且安全的 JavaScript 开发体验,但这将耗时数月。幸运的是,他们发现了 Deno,一个默认安全、高性能的 JavaScript 和 TypeScript 运行时,它将成为在其新开发平台中运行客户代码的基础。
解决方案
Slack 选择在其下一代平台中使用 Deno 运行时,原因如下:
易于上手:Deno 在可移植的自执行二进制文件中提供了 原生 TypeScript 支持 和 Web 标准 API
安全性:Deno 默认安全,使开发者能够从一开始就创建企业级安全性
高性能:Deno 基于 V8 和 Rust 构建,针对运行复杂的 JavaScript 和 TypeScript 应用程序进行了优化
Slack 认识到开发者的人体工程学对于其下一代平台的成功至关重要。TypeScript 正在成为改进 JavaScript 开发的行业标准,并且内置于 Deno 中,为 Slack 的开发者提供了一条熟悉的道路,用于构建更易于扩展和管理的应用。此外,Deno 作为一个可移植的自执行二进制文件,意味着 Slack 可以将其包含在其安装脚本中,以进一步简化本地开发。
“与 Deno 合作是一个自然的选择,因为我们已经能够正面解决[开发者生产力]问题,”Jim Ray 说。模块化架构还促成了 新资源 的创建,供开发者快速入门并提高生产力。
Slack 的企业重点意味着应用还必须具有企业级安全性,但不能牺牲生产力。Deno 的 默认安全权限模型 让 Slack 对在其基础设施上运行第三方不受信任的代码充满信心。它还让 Slack 管理员可以通过 出站域名权限 了解其应用正在进行的 API 调用。“首先让我们团队印象深刻的是他们对安全性的高度关注,”Jim Ray 说。“我们知道这绝对会让 Slack 管理员感到高兴——他们可以让开发者尽其所能,同时依靠内置的保护措施来保护他们的数据。”
将 Deno 运行时集成到 Slack 的新开发平台中非常简单。使用 Deno 构建为 Slack 的平台工程团队节省了数月的内部构建时间,并使他们能够更快地让开发者上手。“我们坚信,确保开发者在其之上构建的任何东西都设定在很高的标准,并且在设计上是安全的,是我们的责任,”Jim Ray 说。