Shopify 开发团队放弃 Ruby,改用 Node 重写 CLI 工具


Shopify 开发团队去年将原本用 Ruby 编写的 CLI 工具改用 Node 进行了重写,并在近日介绍了这项决定背后的原因和权衡。

Shopify CLI 是 Shopify 平台开发者的重要工具,能够用于构建主题、应用程序和 Hydrogen 开发,让开发者以最佳实践创建新项目并与平台整合,或是发布生产构件供店家使用。不过 Shopify CLI 开发团队发现,对构建 Shopify 应用程序的开发者来说,他们在使用 CLI 上一直存在部分体验问题,因此决定重新审视 CLI 的开发语言选择,希望做出一些改变。

考虑到 Shopify 越来越依赖 JavaScript 和 Node Runtime 的资源、工具,因此团队希望采用新语言后能减少 Runtime 的安装需求,提升开发者体验,并且内部团队也可以进行贡献。最后他们决定用 TypeScript 重写 CLI,并支持在 Node Runtime 上运行。

Shopify 内部正在使用的编程语言除了最熟悉的 Ruby 之外,其次是 Node、Go 和 Rust。从技术层面来说,Go 和 Rust 也是理想的选择,Go 和 Rust 程序能够方便地编译成二进制文件,因此用户不需要安装 Runtime,但 Shopify 之所以最后选择 Node,是因为团队更熟悉 Node,他们不希望语言成为内部团队贡献 CLI 的障碍

另外,使用 Node 来构建 CLI,还有一个有别于 Ruby 的特性,Node 具有灵活的模块系统和可扩展性,Node 的模块系统允许同一个可传递包的多个版本相互不冲突。


相關推薦

2023-10-21

(的前两天),相约开源PHP办公室,我们一起聊 AI!>>> Shopify最近开源了一个名为Ruvy的项目。Ruvy是一个工具链,它接受Ruby代码作为输入,并创建一个将执行该Ruby代码的WebAssembly模块。 目前已有从Ruby代码创建Wasm模块的项目,

2022-12-17

Shopify 介绍了他们采用 Rust 进行系统编程的原因,以及未来参与 Rust 的计划。 自成立以来,Shopify 的主要服务器端应用程序编程语言一直是 Ruby。 Ruby 的灵活性和表现力让 Shopify 开发了一个强大的商务系统,可以满足数百万商

2022-11-02

大竞争对手。 近日 Remix 在官网发布公告,表示已经与 Shopify 达成协议,已被后者收购,但公告中并没有透露此次收购的金额。 Michael Jackson 和 Ryan Florence 在 2020 年共同创立了 Remix,在推出 Remix 框架之前,两人一起围绕 React

2022-01-18

流行的 Node.js 工具库,提供了各种类型的模拟数据,用于开发调试。最早的 Faker 项目于 2004 年由 Jason Kohles 首次使用 Perl 实现。后来 Marak 实现了 Node.js 版本,并投入了大量精力和时间来维护 Faker.js。 据介绍,目前 Faker.js 团队

2022-08-02

个字符是字母。 Ember Data 的变化 Node 支持 Ember Data 4.6 放弃了对 Node 12 的支持,Node 12 在 2022 年 4 月达到生命周期结束。 错误修复 Ember Data 4.6 引入了 9 个错误修复: 将空数组项目序列化为空字符串 waiter 应始终处于开

2022-06-22

历经一年多的开发,mojo.js 终于发布了首个主要版本 1.0。 mojo.js 是 Node.js 实时 Web 框架,可将它视作采用 TypeScript 重写的 Mojolicious(Mojolicious 是 Perl 开发的 Web 框架)。mojo.js 使用了所有最新的 JavaScript 特性,专为聚焦超媒体

2023-01-12

是一个基于 TypeScript 的开源前端框架,由 Google 的 Angular 团队以及社区共同领导,从 AngularJS 完全重写而成。 目前 Angular v15.1.0 已发布,带来如下变更: 弃用:路由器 路由器中的 CanLoad 已弃用,请改用 CanMatch 。 普通变更

2023-02-04

Ronin 2.0.0 已正式发布。 Ronin 是用于安全研究和开发的 Ruby 工具包,它包含许多不同的 CLI 命令和 Ruby 库,适用于各种安全场景,例如编码 / 解码数据、过滤 IP / 主机 / URL、查询 ASN、查询 DNS、HTTP、扫描 Web 漏洞、爬取网站、安装

2023-01-07

,并计划在 2 月 1 日结束公测。 Ronin 是用于安全研究和开发的 Ruby 工具包,它包含许多不同的 CLI 命令和 Ruby 库,适用于各种安全场景,例如编码 / 解码数据、过滤 IP / 主机 / URL、查询 ASN、查询 DNS、HTTP、扫描 Web 漏洞、爬取网

2022-11-19

和渲染管道,因此在过去几个月里 Angular 改进了一系列与开发者体验相关的内容。Angular v15 则是进一步推动了这项工作,它有几十项改进,使开发者有更好的体验和性能。 独立 API 脱离开发者预览版 在 Angular 14 中,引入了新的

2022-11-16

分别是:Cookpad、Doximity、Fleetio、GitHub、Intercom、Procore、Shopify 和 37signals。 这些公司成员共同向基金会提供了 1,000,000 美元的种子资金;创始核心成员均在基金会董事会中有代表,董事会由 Ruby on Rails 的创建者 David Heinemeier Hansson

2022-07-01

Fastlane 是一个针对 iOS 和 Android 全方位开发自动化流程的工具。利用目前支持的工具可以做包含自动化和可持续化构建的每个环节,比如单元测试、截图、分发渠道、上传元数据和 ipa 包提交审核等等。 Fastlane 2.207.0 发布了,此

2021-12-24

Wiz 研究团队在 Azure 应用服务中检测到一个不安全的默认行为,该行为暴露了使用“Local Git”部署的用 PHP、Python、Ruby 或 Node 编写的客户应用程序的源代码。Wiz 团队将该漏洞命名为“NotLegit”,并指出这一漏洞自 2017 年 9 月以来

2023-02-11

——不仅体现在版本号上,他们还为这个版本投入了许多开发资源。自 3.0 发布以来,此版本已经积极开发了一年多,包含大量变化,提交了超过 1000 个 commit。 下载地址:https://transmissionbt.com/download Transmission 是开源的 BitTorr