跳到主要内容
Deno 2.4 版本发布,带来 deno bundle、bytes/text 导入、稳定的 OTel 等功能
了解更多
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 说:“我们坚信,确保开发者在其之上构建的任何东西都达到高标准并且设计上安全,是我们的责任。”