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