古騰堡發布的事後回顧,所以我們可以擁抱古騰堡的產品
已發表: 2022-03-10在作為 WordPress 的新默認編輯器發布 10 個月後,Gutenberg 仍然被來自 Web 開發社區的相當多的人不屑一顧,他們經常引用它缺乏可訪問性支持作為無視它的理由(儘管已經採取了重大的可訪問性改進)地方),它有多慢(即使它現在運行得更快),以及其他一些不滿。 這種對古騰堡的悲觀反應在展示古騰堡能力的在線文章中最為明顯,這些文章沒有引起讀者的積極反應,而是引起了蔑視(反映在一系列負面評論中)。
許多人似乎對“古騰堡”感到憤怒(我們稍後會看到古騰堡到底是什麼),表示古騰堡不應該發生,或者至少不應該作為其默認體驗集成到 WordPress 核心中,或者至少沒那麼快。 不同的人有不同的理由反對古騰堡,其中一些理由比其他人更具有個人意義。 例如,一些人已經看到他們的生計受到威脅,他們努力專注於某個解決方案,由於古騰堡的到來,該解決方案正處於消失的危險中(例如與這個品牌或那個品牌的頁面建設者合作的任何人)。 我能真正理解為什麼這些人對古騰堡感到憤怒,我很同情他們。
然而,我也相信,被古騰堡無休止地激怒並忽略它——甚至不考慮它是否值得使用——並不是一種明智的做法。 剛推出的時候,我是挺反對古騰堡的,認為它還沒有準備好,這個立場持續了幾個月。 然而,我最近發現自己越來越多地使用古騰堡,我什至可以聲稱,如今,我真的很享受它。 雖然一開始我自己也對“古騰堡”感到有點生氣,但我讓我的憤怒消失了,現在我實際上可以從中受益。
通過這篇文章,我將嘗試改變最常描繪古騰堡的敘述方式。 我將列舉過去出了什麼問題,並描述古騰堡曾經是什麼以及它是什麼,從中我可以信心十足地以有利的眼光來介紹古騰堡。 我還將爭辯說,古騰堡已經是一股積極的力量,因此,它值得再給一次機會(如果你還沒有這樣做的話)。
古騰堡實際上是什麼
在我看來,古騰堡沒有被廣泛接受的最重要原因是,當人們談論古騰堡時,他們將其等同於不是一個而是實際上是兩個實體(它們相互混淆),即:
- 古騰堡,發射;
- 古騰堡,產品。
Gutenberg 作為“產品”就是插件/功能本身。 Gutenberg 作為“發布”是涉及 Gutenberg 最初開發和發布的過程,可能從 WordPress 創始人 Matt Mullenweg 在 2017 年 6 月 WordCamp Europe 2017 期間向更廣泛的受眾介紹 Gutenberg 開始,到 2018 年 12 月初 WordPress 5.0 發佈時結束與古騰堡合併發布。
(一旦發布結束,一個新的階段就開始了,一直持續到今天:“Gutenberg 持續交付週期”。但是,這個階段與“Gutenberg 發布”非常不同,因為它沒有嚴重的問題,並且作為這樣就不會對“古騰堡這個產品”產生任何誤解。因此,本文沒有必要談論它。)
我們必須區分“發布”和“產品”這兩個實體。 因此,從現在開始,我希望當我們提到“Gutenberg”時,它總是意味著“Gutenberg the product”,如果我們想引用“Gutenberg the launch”,那麼我們必須明確地命名它(可能使用它的任何變體,例如“Gutenberg 的初始開發/發布”或類似短語)。 最重要的是,我們必須避免將發布和產品混在一個包裡:提及任何導致 Gutenberg 令人失望的發布的因素作為不在我們的項目中使用 Gutenberg 的理由都應該被淘汰,並且應該將 Gutenberg 作為產品進行評判只反對它自己的品質。 這對古騰堡的產品是公平的。
我相信,雖然“古騰堡的發布”受到了公正的批評,但針對古騰堡產品的持續蔑視是不公平的(即使它是有道理的),而且古騰堡產品本身就是被賦予的污點聲譽的受害者在令人沮喪的發布期間,將其命名為“古騰堡”。 例如,在 WordPress 插件目錄中搜索“Gutenberg”時,由於決定插件排名的算法會影響插件評級,因此 Gutenberg 僅出現在第 10 位左右。 但是,如果沒有將 Gutenberg 併入核心,許多 1 星評級就不會發生。 如果它最初僅作為插件發布,並等到最重要的錯誤和問題(例如缺乏可訪問性)得到解決後再合併到核心,那麼它今天的評級會更高。
如果我們能夠將兩個實體(發布和產品)分開並分別處理它們,那麼一方面,我們可以對 Gutenberg 發布期間出現的問題進行事後分析,並將這些知識反饋到當前的持續交付中循環,這樣就不會重複同樣的錯誤(事實上,這似乎已經發生了,我將在下面描述); 另一方面,我們可以讓自己欣賞古騰堡作為一種產品,將其添加到我們的堆棧中,並希望從中受益。
從我自己的角度來看,我會這樣做。
古騰堡推出期間出了什麼問題
一句話,領導這個過程的團隊把事情搞砸了(這是禮貌的說法)。
與 Gutenberg 合併的 WordPress 5.0 於 2018 年 12 月初推出,就在 WordCamp US 之前。 當時推出它是一個錯誤的決定,原因很簡單:古騰堡還沒有準備好。 特別是可訪問性情況非常糟糕,Gutenberg 通過屏幕閱讀器等可訪問性設備幾乎毫無用處,有效地使依賴此類設備的任何人都無法使用 WordPress 編輯器。 而且由於 WordPress 社區在保護每個人(實際上是每個人)能夠訪問 Internet 的權利方面非常直言不諱,因此這個倉促的發布並沒有受到好評。
Matt Mullenweg(負責發布過程)可能有充分的理由堅持在該日期發布,例如,從商業角度來看,這可能是有道理的。 但是,從社區的角度來看,這當然沒有意義。 事實上,許多社區成員都感到被背叛了,他們抱怨說即使他們在度假,他們也必須趕緊測試客戶的網站。 我們可以有把握地說,對於許多人來說,這樣的過早發布被認為是一場災難(即使軟件運行正常,所以實際上沒有發生 Y2K),這造成了不必要的不滿,而這完全可以通過推遲來避免發布,或者首先將 Gutenberg 作為插件發布,以便在以後更穩定的階段合併到核心中。
對社區造成的痛苦、沮喪和失望真的值得付出代價嗎? 我相信大多數人會說不是。 我絕對認為不是。 在我看來,這種違背大多數社區成員意願採取行動的情況今後必須避免(除非確實有充分的理由,即使不是每個人都同意;如果我不知道 Gutenber 的發射就是這種情況,因為我不知道有什麼真正好的理由來證明它的合理性)。
在同一次美國 WordCamp 的演講中,Matt Mullenweg 確實承認在推出古騰堡期間犯了錯誤,並且他已經吸取了教訓,因此希望這些錯誤不會重演。 我認為我們可以接受他的道歉,並相信他的決定下次會是正確的(儘管從那時起就同樣重要的話題發生了新的爭吵)。 然而,損害已經造成:傷口已經打開,可能需要時間才能癒合,因此在完全恢復對 WordPress 領導層的信心之前,社區的信任度會降低。
為什麼現在情況似乎好多了
好消息來了:事態似乎大多朝著積極的方向發展,下面列出的改進已經發生。
改善溝通
關於古騰堡發射的最大抱怨之一是領導層缺乏溝通。 由於沒有適當的渠道來管理項目並傳達其決策(至少不是以全面的方式),因此很難準確了解整體情況。 (例如,不同作者或團隊的信息通過不同渠道發布,包括非官方渠道,例如個人博客。)
這種擔憂得到了很大改善。 特別是,製作博客中的信息量(不同社區互動以針對不同領域做出有關 WordPress 的決定,例如核心、可訪問性、設計、國際化等)以及信息更新的頻率增加,每個團隊都會定期舉行基於 Slack 的會議(主要是每週或每兩週舉行一次),任何擁有 WordPress.org 用戶帳戶的人都可以參加。 正如一些社區成員所體驗的那樣,現在可以可靠地跟踪某些主題的發展,並擁有足夠的信息來參與其中。
Gutenberg 推出的影響也促使 Matt Mullenweg 以兩個新角色擴大 WordPress 的領導地位:執行董事,負責監督和指導所有貢獻者團隊的工作以構建和維護 WordPress,以及營銷和傳播主管,領導營銷團隊並監督改進 WordPress.org、相關網站及其所有網點(不幸的是,分配此角色的人不久之後就辭職了,所以必須找到其他人來接替這個職位)。
成立分診小組以解決未解決的問題
在 Gutenberg 的初始開發階段,有幾個人抱怨說,在冒險為 WordPress 添加新功能之前,應該修復已經累積到數千個的現有錯誤。
今年 3 月,成立了一個分類小組來清理 WordPress Trac 錯誤跟踪器中的未解決問題。 這是多年來一直需要的艱苦工作。 如果完成,WordPress 將有機會從 Trac 切換到更現代的錯誤跟踪器,例如 GitHub。
可訪問性正逐漸成為一個非問題
每個新的 Gutenberg 版本都在解決可訪問性問題,6.3 版提供了最大的改進。 按照目前的改進速度,最突出的可訪問性問題(如古騰堡可訪問性審計中所報告的)應該很快就會成為過去的一部分。
根據自己的優點判斷古騰堡
現在我們已經將 Gutenberg 與 Gutenberg 產品的發布分開了,我們可以繼續將 Gutenberg 作為產品進行分析,並僅根據其自身的優點和缺點來決定是否值得將其添加到我們的應用程序堆棧中。 許多人確實正確地指出古騰堡的問題是不信任它的原因(而不是專注於失敗的發布)。 然而,古騰堡一直在突飛猛進,許多被詬病的問題可能已經解決,也可能處於解決的邊緣。 因此,負面評估應該有一個到期日期並重新評估。 如果我們可以給古騰堡一個新的嘗試,看看它現在的位置,我們可能會明白,畢竟它還不錯。 在我看來,古騰堡應該得到比現在更熱烈的歡迎。
我很驚訝 Gutenberg 仍然與以前在 WordPress 中編輯內容的方式(主要是通過 tinymce,還有短代碼、小部件等)進行比較,認為通過 Gutenberg 進行編碼更加困難。 這可能是真的,但它也忽略了一點:古騰堡不是為了提供一種新的方式來編寫我們的應用程序,產生與過去相同的功能; 相反,它可以極大地增強可以做的事情,為我們的應用程序添加過去只能夢想的功能。 此外,古騰堡不是另一個頁面構建器。 事實上,將 Gutenberg 與 Divi 或 Beaver Builder 進行比較同樣沒有抓住重點,因為這就像將 Victorinox 與普通刀進行比較:是的,您可以使用 Gutenberg 進行站點/頁面構建(實際上還沒有,但它已經在進步),但這只是它的眾多用途之一; 還有一些其他用途最初是隱藏的,但是一旦您將它們從隔間中取出並了解它們的工作原理,就會發現一個充滿可能性的新世界。 下面,我將描述古騰堡帶來的一些新可能性。
首先,讓我們討論一下古騰堡的不足之處。 我認為 Gutenberg 真正被認為有害的一件事是 React 的陡峭學習曲線(這是 Gutenberg 編碼的 JavaScript 庫)。 WordPress 一直非常具有包容性,使來自任何背景的人(不僅是程序員,還包括博主、營銷人員、銷售人員等非技術人員)都可以創建主題或插件或啟動網站。 毫無疑問,現在已經不是這樣了,期望每個人都必須學習 React 來創建 Gutenberg 塊是不公平的(不一定是這樣,因為我們也可以使用其他 JavaScript 庫創建塊,甚至不使用 JavaScript ,例如通過 ACF 塊,但是使用 React 是最合乎邏輯的選擇,如果只是因為 Gutenberg 是用它編碼的)。 唯一可以證明這種劣勢的論據是它是否能讓用戶的體驗更好。 讓我們看看是否可以考慮這種情況。
正如我在之前的一篇文章中所說,Gutenberg 的基於塊的架構從根本上改變了構建應用程序的方式:我們現在可以將組件視為構建網站的單元,而不是考慮 HTML 代碼。 這種架構更具可維護性和彈性,因為每個組件(或塊)都可以獨立開發和測試,並且由於它易於重用,因此可以降低開發多個應用程序的成本。 事實上,Vue 和 React 等 JavaScript 庫最近的流行很大程度上歸功於它們對組件的支持。 這是開發人員喜歡的一個很棒的功能,我相信,一旦你開始編碼,就沒有回頭路了。
在同一篇文章中,我還描述了 Gutenberg 如何支持“一次創建,隨處發布”策略(也稱為“COPE”),從而能夠生成單一的真實內容來源,以提供給我們所有的應用程序,無論哪種方式他們運行的媒介或平台:網絡、電子郵件/時事通訊、iOS/Android 應用程序、VR/AR、家庭助理(如亞馬遜 Alexa)等。 因為它使整體內容管理更加簡單,所以 COPE 還能夠降低為不同平台製作內容的成本。 當我第一次寫我的文章時,我認為這是可以做到的。 然而,我最近為 WordPress 實現了 COPE,它就像一個魅力! (請繼續關注另一篇文章,我將在其中詳細解釋它的工作原理。)
COPE 和 WordPress API(WP REST API、WPGraphQL 和我自己的 PoP API)的結合將為通過 WordPress 管理我們所有應用程序的所有內容提供一個令人信服的理由。 另一個令人信服的原因是 Gutenberg 的易用性(它還沒有完全實現,但按照目前的發展速度,遲早會到來),使最終用戶能夠以非常簡單的方式創建複雜的內容。
我們已經可以使用很棒的新功能,例如內容外觀的實時預覽、從 Google Docs 以完美格式複制/粘貼、創建內部嵌套元素的複雜網格層等等。 我們還可以期待新的區塊能夠提供我們從未想像過的完全出乎意料的功能。 我敢打賭,通過古騰堡,WordPress 有望成為網絡的數字資產管理器。 (我已經寫了一篇文章,很快將在 Smashing Magazine 上發表關於這個主題的文章以及我對這個大膽聲明的理由。)
此外,Gutenberg 允許將代碼與其他 CMS 或框架(例如 Drupal 和 Laravel)重用,因此 WordPress 的編碼不再需要僅限於 WordPress,再次允許我們降低開發庫的成本需要在盡可能多的系統中運行(例如,為許多不同平台和語言(例如 Stripe)提供其 API 集成的公司可以從中受益)。 目前,似乎只有客戶端代碼(JavaScript 和 CSS)可以重用,但是服務器端 PHP 代碼也可以重用。 (我將再次發表一篇關於 Smashing 的文章,解釋如何做到這一點。)
這些功能已經成為現實,我們可以期待 Gutenberg 在未來幾年為其存在提供更多令人信服的理由(根據 Matt Mullenweg 的說法,Gutenberg 目前僅實現了其潛力的 10% 左右)。
我們終於可以嘗試對 Gutenberg 產品做出判斷:我的立場是,它為 WordPress 設置了更高的進入門檻,這令人遺憾,然而,它也是一款設計精美的軟件,它賦予了 WordPress 真正的新功能,並且,由於 WordPress 的突出地位,在整個 Web 開發世界中。 在成本和收益之間的這種權衡之間,我相信將古騰堡作為 WordPress 的一部分是值得的。 我希望你能同意我的意見,或者如果不同意,至少反對它的理由可以完全基於古騰堡作為產品的特性。
結論
古騰堡目前處於最佳狀態——已經開始提供以前 WordPress 無法提供的令人愉悅的用戶體驗。 然而,並不是每個人都知道這個事實,因為不是每個人都能接受古騰堡。 這是一個不幸的情況,因為古騰堡(作為產品)不應該因為古騰堡推出期間發生的錯誤而受到指責。 如果我們能夠將這兩個實體分開並獨立對待每個實體,那麼我們就可以令人信服地要求人們再給古騰堡一次機會,這表明古騰堡作為一個產品是值得擁有的,即使古騰堡的發布是一個失敗的過程。
在本文中,我根據自己對事件的理解,對失敗的古騰堡發射進行了事後分析。 進行這樣的事後分析可以幫助社區和領導確保那些不幸的錯誤不再發生。 事後分析後,我根據自己的優點對 Gutenberg 進行了評估,並表明了我的立場:我相信 Gutenberg 是一個很棒的工具,WordPress 社區當然可以從中受益。 而且因為它只會越來越好,古騰堡甚至可以為 WordPress 開啟一個新的黃金時代。