跳至主要内容
Slack used Deno to launch their new development platform in weeks and not months.

Slack 如何使用 Deno 节省数月工程工作,成功发布全新平台

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 说。