按此:Faust.js 如何倾听社区的声音

已发表: 2023-09-01

欢迎来到 Press This,WMR 的 WordPress 社区播客。 每集都有来自社区各地的嘉宾,并讨论 WordPress 开发人员面临的最大问题。 以下是原始录音的转录。

由红圈提供支持

Doc Pop :您正在收听 Press This,这是 WMR 上的 WordPress 社区播客。 每周我们都会重点关注 WordPress 社区的成员。 我是你们的主持人,波普博士。 我通过在 WP Engine 中的角色以及在 TorqueMag.Io 上的贡献来支持 WordPress 社区,在 TorqueMag.Io 上我可以制作播客、绘制漫画和教程视频。 检查出。

您可以在 Red Circle、iTunes、Spotify、您最喜欢的播客应用程序上订阅 Press This,也可以直接在 wmr.fm 下载剧集。

Faust.js 是一个 JavaScript 框架,旨在为无头网站释放 WordPress 的强大功能。 Faust 是专门围绕无头 WordPress 构建的唯一(如果不是唯一的话)JavaScript 框架之一,Faust.js 于 2023 年 6 月 12 日正式推出测试版。甚至可能很快就会在 WordCamp US 上推出一些功能,这将在下周发生。 今天我的嘉宾是 Joe Fusco,他是 WP Engine 的高级软件工程师,负责 Faust 的工作。 我们将讨论其中一些新功能以及自《Faust》测试结束以来发生的变化。

乔,你今天过得怎么样?

乔·福斯科:好的,博士,谢谢你邀请我。

Doc Pop:是的,非常感谢您加入我们。 首先让我们知道您是如何进入 WordPress 的?

乔·福斯科:是的,当然。 我的 WordPress 起源故事是,我在 2013 年开始使用 WordPress 3.5 版本左右。 当时,我只是在研究我的一个想法,只是建立了一些小型网站并进行了修补,实际上我已经与纽约罗切斯特的一家当地机构合作,建立了一些自定义主题。

从那时起,我在 Inksub 找到了第一份远程工作,该公司是 WPMU Dev、EduBlogs 和 Campus Press 背后的公司。 所以我在每个部分都花了一些时间。 所以我在这些公司工作过,然后从那里,我实际上搬到了佛罗里达州坦帕,在那里我有机会为一家制造公司工作,该公司不仅使用 WordPress 进行营销网站,而且在内部也使用 WordPress一堆不同的工具。 所以我开始接触 Headless WordPress。

我在那里做了很多定制开发。 那是在大流行期间,所以一切都转向远程。 事实上,我有机会回到罗切斯特,就在那时我开始为 WP Engine 工作。 所以是的,从那时起它就一直很棒。

Doc Pop:你在那里提到了一些事情,我没有想到,但你正在做 WordPress,正在使用一些很棒的主题和产品。 然后当你搬到佛罗里达时,你仍在使用 WordPress,但你是在为一家工厂做无头 WordPress。 这听起来对我来说真的很有趣,我觉得你必须再深入研究一下这个花絮。

乔·福斯科:当然。 是的。 因此,有一天我收到一封电子邮件,说:“嘿,我们喜欢你在 GitHub 上的东西。 可以请你下来吗?”

一开始我以为这是假的,它看起来真的很垃圾。 所以我就想,是的,当然,我会下来。

他们给了我一份工作。 它与世界上最大的门制造商之一合作。 他们在坦帕有几栋建筑。 这真的很超现实,我们全家都搬到了那里,我们在那里呆了三年。 我们开始构建很多无头组件。

所以实际的组织,营销方面对 WordPress 非常熟悉。 他们对 WordPress 投入了大量资金。 因此,考虑到我们当时已经设置了这些系统,使用 WordPress 无头是有意义的。 是的,由此创建了一些非常酷的东西,比如一些门配置器。

Doc Pop:我喜欢这个,非常感谢你深入探讨这个问题。

乔·福斯科:哦,是的。

Doc Pop:我喜欢这个故事将世界上最大的门制造商和无头 WordPress 技术联系在一起。 让我们回到《浮士德》的话题上来。 我相信Faust.js首先,WP Engine在2021年底首次推出了一个版本。

就像 2021 年 9 月一样。就在最近,几个月前,随着产品的正式发布,他们已经结束了测试。 您能告诉我们的听众什么是 Faust.js 以及从项目启动到测试结束这几年里发生了什么吗?

Joe Fusco:是的,当然,Faust.js 最初是作为一个黑客马拉松项目开始的,然后从那里发展而来。 经历了几个不同的阶段。 其中之一是 GQty,它是一个 GraphQL 客户端。 从那时起,随着我们的扩展,它并不是当时最好的工具。

所以我们决定改用 Apollo。 从那时起,我们一直在构建许多新功能。 最近刚推出测试版,我们只是想向社区表明这是一个生产就绪的框架,因此虽然没有任何具体内容与 1.0 版本相关,但已经出现了一些巨大的想法我们目前在 GitHub 上有 RFC。

Doc Pop:那么我们来谈谈这些 RFC。 首先,我在 WordPress 社区中没有看到太多对插件发表评论的请求。 很多时候,开发人员似乎正在倾听、查看 Twitter 或类似的事情。 但是,真正的打开它并获得反馈。 这很有趣。 也许那是因为这是一个如此大的项目,这就是你们这样做的原因。

但我想知道在我们讨论具体的 RFC 之前,也许您可​​以告诉我们为什么你们都去 GitHub 并寻求用户的评论?

Joe Fusco:是的,Faust 是一个开源项目。 然而,它是由 WP Engine 共同赞助的。 因此随之而来的是它自己的挑战。 我们内部有自己的流程,但我们在 GitHub 上开源,并且有整个开源文化。

围绕这一点,其他工程师也做出了贡献。 因此,我们在反馈中注意到确实存在一点差距,并不是所有事情都是公开的,或者我想你可以说这些决定是公开建立的。

因此希望将 RFC 纳入我们的工作流程中。 直接从社区获取一些反馈,并公开重申这些想法。 所以到目前为止一切都很棒。 我们很喜欢所提供的反馈,并期待做得更多。

Doc Pop:我看到的第一批票证之一是请求对古腾堡块的 React 组件发表评论。 本文档提供了将现有 React 组件转换为 Gutenberg 块的详细建议。 听的人应该知道古腾堡块是什么,但这些是 WordPress 所转向的基于块的编辑。 您能告诉我们这个提案的目的吗?

Joe Fusco:古腾堡块的 React 组件。 如果你愿意的话,这可以说是 React Gutenberg 桥的下一步发展,本质上我们想要做的就是采用 Next 应用程序中现有的 React 组件,并将这些组件自动同步到 WordPress。 因此,如果您在一个位置创建了一个古腾堡块。 您不必去复制它并安装插件并在两侧都有重复的代码。 因此,如果您愿意的话,我们真的希望 Faust 能够处理这个问题并促进两个生态系统之间的这种联系。

Doc Pop:做这样的事情有哪些挑战?

Joe Fusco:是的,所以到目前为止的挑战,我的意思是,我们肯定仍在通过这个发现不同的东西,但到目前为止我们已经构建了一些 POC,并且已经完成了 90% 的工作。 因此,目前面临的一些挑战,其中最大的挑战之一就是命名。 我知道这不是一个技术问题,但我们怎么称呼这个东西呢?

命名总是很难。 但除此之外,试图让 WordPress 认为这个块,WordPress 通常不会在其他地方远程查找类似的块,而只是让它与 WordPress 很好地配合。 因此,就 WordPress 而言,它只是一种传统的块,您可以使用 WordPress 帮助程序创建。 我认为这就像 NPX 创建块。

Doc Pop:在征求意见的过程中,你们是否都收到了有关此特定问题的任何反馈,这些反馈对您的团队有所帮助,或者表明有一个您没有想到会听到的优先事项?

Joe Fusco:目前还没有。 我认为到目前为止,很多对话只是在概念化这个想法是什么,因为我们现在处于这个领域,据我所知,没有人真正做过这样的事情。 所以这里有很多创新。 随之而来的是建立这些心理模型以供社区理解。

Doc Pop:是的,我认为这是一个很好的表达方式。 正如你所说,这绝对是一个未知的领域,即使有命名。 命名它的各个部分很困难,并且有很多工作部分,但我觉得古腾堡和块编辑器仍然可能是一个移动目标。 当你围绕古腾堡开发一些东西时,核心发生了意想不到的变化,这是否是一个问题,或者古腾堡现在相当稳定?

乔·福斯科:是的,很好的问题。 所以一开始,当我加入团队时,是的,确实发生了一些变化,这让我们有点倒退,只是不同类型的模式等等。 我想说今年它相当稳定,至少对于我们使用 WordPress 的部分来说是这样。

所以情况好多了。 我们实际上只关注那些准备好生产的东西,但仍然密切关注古腾堡的前沿功能。

Doc Pop:那是我们短暂休息的好地方。 当我们回来时,我们将继续与 Joe Fusco 讨论 Faust.js 和 Headless WordPress,所以在短暂的休息后请继续关注更多内容。

Doc Pop:欢迎回到 WordPress 社区播客 Press This。 我是你们的主持人,波普博士。 今天,我们将与 WP Engine 的 Joe Fusco 讨论 Faust.js 以及针对某些拟议更改征求意见的情况。 我们在节目的早些时候讨论过,我关注的插件中没有多少插件提出我看到的评论请求,但也许他们确实这样做了,而且我不太喜欢它,但我们正在谈论那些Faust.js 团队现在正在推出这些内容,我们讨论了一个用于将 React 组件转为 Gutenberg 块的 RFC,我认为值得提出的另一个 RFC 是 Next.js、AppRouterSupport 和 Faust。 乔,您能告诉我们这里的提案是什么吗?

乔·福斯科:下一个。 Node.js App Router 支持和 Faust 提案。 我们做了一些研究,看看如何支持 Next.js 中的新 App Router 功能。 因此,我们在这里提出一些可能的解决方案。

但本质上,我们想要做的是 AppRouter 使用 React 服务器组件。 因此,这意味着我们可以从服务器上的 WordPress 获取数据,而不是像您当前在 Faust 存储库上的当前示例中看到的那样,进行一大类 GraphQL 查询来获取所有内容。 所以,是的,我们都对此感到非常兴奋。

这也让 Faust 变得更加与框架无关。 一般而言,只是能够支持 React 服务器组件。 因此,您可以想象您可能在帖子上有一些自定义字段,也可能在其他地方有一些自定义字段或像菜单一样。 理想情况下,我们希望文件能够处理这些数据的获取,或者至少能够提供实用程序来帮助开发人员减少开始使用 WordPress 和 Headless 的阻力。

Doc Pop:我认为提案的一部分是,随着 AppRouter 的引入,有一个名为 head.Js 的新文件,它具有对获取元数据的自定义支持,这应该可以帮助用户进行 SEO。 您能谈谈那里的好处吗?

Joe Fusco:我们一直在研究或者只是集思广益我们想要如何处理这个问题。 因此,SEO 是 WordPress 的重要组成部分,有很多 SEO 插件,而实际上在无头方面,SEO 并不是,它并没有真正被优先考虑,至少对于无头 WordPress 来说是这样。 这有点像推出你自己的解决方案。

因此,我们希望 Faust 能够填补这一空白,并且我们认为这个元数据 API 绝对可以帮助我们实现这一目标。

Doc Pop:作为这一改变的一部分,你提到这将有助于保持浮士德的不可知论。 我在这里看到这将对插件开发人员和使用插件的人有所帮助。 您能谈谈这个变化意味着什么吗? 为什么 AppRouter 支持可以帮助插件更好地与 Faust 配合使用?

乔·福斯科:是的,是的,当然。 这个提议在某种程度上是一种范式转变。 我们并不认为要取代 Faust 目前的设置方式,而更想提供更多的实用程序和助手。 所以你可以想象 WordPress 插件有一些自定义设置。 Faust 提供了一个工具,可以快速抓取 Next 应用程序前端的内容。 是的,只是有助于促进 WordPress 和 Next 这两个生态系统之间的联系。

Doc Pop: WordPress Rest API 于 4.7 中发布。 我不记得那是不是 2016 年。我只是对 GraphQL 有点好奇,因为我们在 Faust.js 上经常讨论这个问题。 GraphQL 提供了哪些人们可能无法从 WordPress 核心中的 REST API 获得的功能?

乔·福斯科:是的,是的,很好的问题。 GraphQL 允许,我想说最重要的是,无需过多了解 GraphQL 是什么,但我只是按照您想要的方式塑造您的数据。 所以我可以决定,嘿,我只想从 WordPress 返回 X、Y 和 Z。 我可以发送一个请求,其中只包含按照我想要的顺序排列的内容。

GraphQL 通过 WP GraphQL 插件将以我想要的确切形式提供。 所以我不必在回复中过滤掉一堆废话。 这可能就像 REST。 那里有很多额外的东西。

Doc Pop: WordCamp US,我在节目开头提到过,WordCamp US 即将到来,就我们录制的时间而言,是下周。 我只是有点好奇,首先,您是否计划去美国 WordCamp,以及人们是否可以在那里联系到您。 其次,是否可能有任何 Faust 或 GraphQL 表示形式,例如 WP Engine 展位,或者可能有任何关于此的新公告。

乔·福斯科:是的,是的,当然。 所以我肯定会去 WordCamp US。 对此非常兴奋。 这将是我的第二次。 我想我的另一次是 2015 年在费城。但是,是的,我会在那里,很乐意回答任何问题,我会在 WP Engine 展位周围闲逛。 还会有其他一些人和我在一起,我相信是杰夫·埃弗哈特和乔丹·马斯林,所以一定要过来打个招呼,并征求我们的意见。

Doc Pop: WP Engine 经常有很棒的东西。 我没看过,但是会有浮士德的贴纸或其他东西吗? 我不知道这个社区是否有自己的品牌。

乔·福斯科:所以,我不相信我们现在会有任何浮士德特定的贴纸。 我确实知道那里还会有其他的东西,但是,是的,随着浮士德的成熟,我们才刚刚开始对它进行一些品牌化。

Doc Pop:关于这个话题,如果人们感兴趣,如果他们正在听这个并且他们对《浮士德》感兴趣,那么对他们来说,了解它并深入了解它可能是一件好事。试试看?

Joe Fusco:我们很乐意邀请​​大家,任何有兴趣尝试一下的人。 我想说最好的方法就是访问我们的网站 faustjs.org。 您可以前往“入门”部分,它将引导您完成我们的示例项目之一,您可以在其中使用单个命令进行设置并使其运行,并查看数据如何流动和工作。

Doc Pop:对于该示例项目,它是基于网络的。 你知道这是否与 WordPress 相同,我认为它被称为,我不知道它是否是 WordPress 沙箱,但就像 WordPress 的在线网络版本,您可以在其中尝试它而无需实际托管它。 你们都用同样的东西吗?

Joe Fusco:所以我们当前的网站上没有设置任何 WordPress Playgrounds,但这是我个人正在关注的东西,而且我也一直在研究它。 所以我有一个 Code Pen,我可以在这之后分享,其中包含一个在 WordPress Playground 中使用 GraphQL 设置 Faust WordPress 插件的链接。

所以这绝对是检查 WordPress 方面的快速方法。

Doc Pop:在你刚才提到的网站上,人们还能找到 GitHub 的链接吗? 或者我们也应该给他们一个快速链接吗?

Joe Fusco:是的,我可以添加一个链接,但是,GitHub 是 WPEngine.Faustjs,其中包含我们的 NPM 包和 WordPress 插件,所以来看看吧,

Doc Pop:我们将再进行一次短暂的休息,当我们回来时,我们将结束与 Joe Fusco 关于 Faust.Js、GraphQL 和 Headless WordPress 的对话,所以在这个简短的内容之后请继续关注休息。

Doc Pop:欢迎回到 WordPress 社区播客 Press This。 我是你们的主持人,波普博士。 今天,我们将与 Joe Fusco 讨论 Faust.js 以及即将推出的一些内容。 我们已经讨论过征求意见的问题。 我们已经讨论过正式退出测试版。 我们已经讨论过 WordCamp US。 我想我想问乔的最后一件事是,当出现这样的新技术时,我总是很好奇,是否有办法让我在野外看到它。

您是否可以想到 Faust.js 在野外使用的任何好例子供人们使用,或者至少只是听听它如何使用的故事。

乔·福斯科:是的,绝对是。 因此,我们对 Faust 迄今为止获得的广泛采用感到非常满意。 甚至 WP Engine 现在也在利用 Faust 并托管在我们的 Atlas 平台上。 所以一定要检查一下,看看它有多快,是的,它真的很酷。

在faustjs.org 上,我们计划添加一个小展示部分,突出显示当前正在使用 Faust 的一些很棒的网站。 是的,其中之一就是我们在 Atlas 平台上的主网站 WPEngine.com。

您无需使用 WP Engine 即可使用 Faust。 只是想澄清这一点。 它可以与任何类型的平台一起使用。 但我们确实认为 Atlas 是承载 Faust 的最佳环境。

Doc Pop:我们并没有特别谈论 Atlas。 您想快速区分阿特拉斯和浮士德之间的区别吗?

Joe Fusco:是的,Atlas 是 WP Engine 的无头框架。 这就像,如果你想托管一个 WordPress 网站,而 Node 端,下一步,Atlas 就是你想要去的地方。 还提供了许多其他工具,例如 Atlas Search。 它非常强大,有很多很棒的功能正在开发中。

Doc Pop:嗯,这是我们结束与 Joe Fusco 对话的好地方。 如果您想了解有关 Faust.js 的更多信息,可以访问 faustjs.org。 您还可以在 GitHub 上找到它们。 我确信如果你在 Twitter 和其他地方浏览一下,你也会发现人们在谈论它。

Doc Pop:感谢您收听 Press This,这是 WMR 上的 WordPress 社区播客。 再说一遍,我的名字是 Doc,您可以在 Twitter @thetorquemag 上关注我在《Torque》杂志上的冒险经历,或者您也可以访问 Torquemag.io,我们每天都会提供类似的教程、视频和采访。 请访问 Torquemag.io 或在 Twitter 上关注我们。 您可以在 Red Circle、iTunes、Spotify 上订阅 Press This,也可以每周直接在 wmr.fm 下载。 我是你们的主持人流行博士,我通过我在 WP Engine 的角色来支持 WordPress 社区。 我喜欢每周在 Press This 上关注社区成员。