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 说:“我们坚信,确保开发者在其之上构建的任何东西都达到高标准并且设计上安全,是我们的责任。”