AI News HubLIVE
站内改写2 分钟阅读

AI推动Shopify回归简洁代码

Shopify正在推出一个以HTML和Liquid模板语言为核心的新主题,取代以JSON为主的Horizon主题。新主题代码行数减少了93%,既便于AI代理理解,也提高了人类开发者的可读性。

来源Hacker News AI作者: sbulaev

电商平台Shopify正在推动源代码可读性的回归,而其意外的盟友竟是AI代理。该公司为其商户(即“卖家”)推出了一款新的店面主题,声称任何具备基本HTML知识的人都能完全理解。该主题设计为让人和机器都能轻松解读和定制。

这款新主题尚未命名,但在开发者论坛中被披露为当前基于JSON的Horizon主题的可能继任者。新代码主要使用HTML,并穿插Shopify自家的块级Liquid模板语言,这种语言同样易于阅读。当商户查看新主题的模板目录时,他们将看到纯文本文件中的易解析代码,而非一长串晦涩的JSON。与Horizon相比,该主题的代码行数减少了93%。

Shopify日益流行的AI服务推动了这次架构重设计。Shopify店面产品总监Ben Sehl在X上发文表示:“每个领先的模型都已经理解HTML。HTML具有表现力、局部性和token效率。”而Shopify的Liquid模板语言与HTML完美契合。

Sehl回忆起十年前,当他本人还是一名商户时,Shopify只提供基本模板。作为新手网页编码员,他可以轻松地使用第三方入门套件进行修改。后来,Shopify丰富模板功能,让用户成为全职设计师。在线商店编辑器赋予用户对页面及其各个“块”组件的更多控制权。然而,灵活性也带来了复杂性。用户模板指令被转换为JSON。“这种权衡给了商户更多的控制权,但代价是开发者体验:你无法再通过读取一个文件来理解一个页面。”Sehl写道。

最近,Shopify添加了AI助手Shopify Sidekick,让用户能更便捷地设计页面。今年,20%的Shopify商户正在使用Sidekick编辑主题,仅今年就完成了2500万次编辑。因此,Shopify面临简化AI代理任务的需求。事实证明,代理与人类有相同的需求:易于阅读的代码、明确的合约和建设性的反馈。该公司以这些品质为首要原则重新组织了主题架构(同时将现有Liquid主题作为“永久API”保留)。

这些改变不仅更好地支持了AI,也使底层代码对人类更易读。Sehl解释说:“序列化配置的更深层问题不在于JSON本身有缺陷,而在于配置的词汇量受限。”

新基础主题中,Liquid获得了新语法和解析器,能够更严格地执行后端复杂指令。用户看到的是与普通HTML轻松搭配的可组合、类型化块。每个用户设计的主题都被赋予一个特殊目录,包含指令和指向如何生成附加工件的说明。此外,扩展的文档标签包含处理合约和片段的示例及说明。

新主题的关键是一个新的可组合块标签,其中包含描述页面组件的一组嵌套参数,开发者可以为其提供值、配置、覆盖项和其他指令。React开发者会认出这些参数类似于React的props,但无需创建虚拟DOM。同样熟悉的是新的partial原语,它允许更新页面的特定区域而无需重新渲染整个页面。团队还添加了标准操作,即站点的事件触发器集合,例如更新购物车。“这一个原语将让我们从Horizon中移除数千行反应式代码。”Sehl写道。

Shopify还开发了20条新规则,以确保生成的主题符合公司在合约、结构、验证、复杂性、嵌套和文件大小限制方面的政策。如果用户想要更高级的功能,Liquid现在支持布尔表达式、带优先级的中缀运算符以及字面数组和对象等逻辑能力。未来甚至会支持Tailwind CSS框架。

所有这些改进应能简化商户在家组装定制店面的过程。例如,在声明式、设置驱动的架构中,开发者必须在开始布局前预先规划按钮数量。而使用HTML时,当商户发现需要额外按钮时,只需将它们全部包裹在一个HTML div标签中即可。

AI专家逐渐认识到,对于非编码任务,AI的最佳“食粮”并非密集的符号化代码。与人类一样,LLM在更易理解的散文上表现更好(毕竟LLM是在人类语言上训练的)。例如,一位开发者发现,与17种不同工具的领域特定语言(DSL)相比,SQL更容易处理。Anthropic建议使用语义丰富的XML进行提示,而十年前该格式因更精简、更少冗余的JSON而被业界弃用。

也许Shopify取悦AI的努力不仅不会导致更多垃圾代码,反而会推动可读代码的运动。