按此: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 上關注社區成員。