WordPressがJavaScriptフレームワークを探求-グーテンベルクブロックを構築するための不可知論的アプローチ
公開: 2017-09-23
WordPressのJavaScriptフレームワークの選択に関する議論は、来週の会議に先立ち、#core-jsSlackチャネルで継続されます。 最近のトピックの1つは、Gutenbergのフレームワークに依存しないブロックレンダリングの可能性です。これにより、開発者は、好みのJSライブラリを使用して新しいエディターを拡張できます。 これは、口語的に「Gutenblocks」と呼ばれるGutenbergブロックは、Vue、React、Preact、Angular、または開発者が快適に使用できるものなら何でも構築できることを意味します。
このアイデアの支持者は、より柔軟なアプローチを追求することで、WordPressのコアJSフレームワークの決定がそれほど重要ではなくなると主張しています。 #core-jsチャネルで質問に答えている間、Gary Pendergastは、分離を維持するためにGutenbergを構築する方法を説明しました。
「グーテンベルクに貢献している人々にとってさえ、この決定は重要ではないと言うとき、私は本当に冗談ではありません」とペンダーガストは言いました。 「#2463では、たとえばlodashを使用するのと同じように、ライブラリは完全にユーティリティライブラリとして扱われます。 いくつかのタスクを実行し、コードベースの他の部分を中断することなく、比較的簡単に引き出してまったく異なるものに置き換えることができます。 グーテンベルクに貢献している人々にとって、彼らはグーテンベルクのコーディングスタイルで貢献しているのであって、私たちがたまたまインポートしたライブラリのスタイルではありません。」
決定が下される時期と考慮されている要素について尋ねられたとき、ペンダーガストは、タイムラインはなく、参加に興味のある人は自分の経験についてブログに書き、JSフレームワークで構築できるものの例を書くべきだと答えました。に精通している。
「ロードマップもタイムラインもありませんし、必要もありません」とペンダーガスト氏は述べています。 「マットが述べたように、それは実際には単なる技術的な決定です。より広いコミュニティにとって重要な決定は、「反応しない」を選択することでした。 残念ながら、この決定は不釣り合いに吹き飛ばされており、「プラグインを構築できるJSライブラリは何ですか?」と大きく混同されています。 また、「グーテンベルクのブロックはどのJSライブラリのプラクティスに似ているのでしょうか?」ということもありますが、どちらも関連していません。 競馬のように扱うツイートや投稿は、このようには役に立ちません。」
Pendergastは、選択されたライブラリはすべて「WordPress要素によってラップされ続け、基になるライブラリは公開されない」と述べました。 Gutenbergチームは、プラグイン開発者が選択した任意のライブラリを使用できるように、コンポーネントからすべてのライブラリ依存関係を削除するよう取り組んでいます。
ただし、他のコミュニティメンバーは、コアとして選択されたJSライブラリを単純な技術的決定またはユーティリティライブラリに委ねることにそれほど熱心ではありません。
「ほとんどの開発者は、プラグインがコア/グーテンベルク用に選択されたフレームワークに拘束されていないことを理解しています」とケビンホフマン氏は述べています。 「しかし、それは決定の重要性を損なうものではありません。 より多くの貢献者を奨励したいのであれば、大多数が有能で自信を持っていると感じるフレームワークを選択するのに役立つでしょう。 この大多数が1つのフレームワークでプラグインを開発していて、コアに貢献するために別のフレームワークを学習する必要がある場合、潜在的な貢献者の数を制限しています。」
Peter Bookerは、グーテンベルクの分離がどれほどエレガントであっても、コア用に選択されたライブラリを適切に理解することは、特定の問題を深くトラブルシューティングする開発者の能力に影響を与えると主張します。
「マイナーな技術的決定ほどこの選択を否定すべきではないと思います」とブッカー氏は述べています。 「PHP、JavaScript、およびバックボーン(とりわけ)がどのように機能するかを理解することは、WordPressの問題を適切にデバッグできるようにするために不可欠です。 グーテンベルクのために選択されたJSフレームワークは、私たちが主要な貢献者でなくても、非常に多くの人々に影響を与えるでしょう。 問題を完全にトラブルシューティングできるようにするためには、不可欠な知識が必要です。 これは、グーテンベルクチームよりもはるかに多くの人々に影響を与える決定です。」

Gutenblockを構築するための柔軟でフレームワークにとらわれないアプローチを提供することの意味は何ですか?
Jason Bahlは、React、Preact、Vue、Angularを1つのアプリに混ぜて、それが「パフォーマンスの悪夢のレシピ」であるかどうかを確認したことがあるかどうかを尋ねました。 彼は、Gravity FormsがVueベースのGutenblockを構築し、YoastがReactベースのブロックを構築し、WooCommerceがPreactを使用してブロックを構築し、別のプラグインがEmberを使用するシナリオの例を提示しました。
「柔軟性があり、人々が何でも使用できるようにするのはいいことのように思えますが、それがベストプラクティスの多くの分裂につながり、潜在的にパフォーマンスの問題につながる可能性もあります」とBahl氏は述べています。 「Vue、React、Preact、Ember、Vanilla JSなどでGutenblockを構築する方法についてのチュートリアルがポップアップ表示されます。これは見た目はクールですが、混乱を招き、コミュニティでさらに分裂を引き起こし、ベストプラクティスを受け入れる可能性があります。 。 柔軟性はある程度良いですが、ある程度の強い意見も良いです。」
GravityFormsの共同創設者であるCarlHancockは、Gutenblockを構築するためのフレームワークにとらわれないアプローチを提供しても、プロジェクトを拡張している開発者にはほとんど影響を与えないと主張します。 開発者は必然的にWordPressコアが使用するものを採用するため、柔軟性を高めることで決定の重要性を下げることはできません。
「人々は、プラグイン/テーマ開発者が好きなものを使用できるように、抽象化レイヤーの作成に関連していると主張する虹や蝶にもかかわらず、ほとんどの場合コアが使用するものを採用することになります」とハンコック氏は述べています。 「これは、コアフレームワークが最終的に複雑になることを意味し、プラグインおよびテーマ開発者の参入障壁に直接影響します。 参入障壁はこれまで歴史的に低く、自己ホスト型CMSとしてのWordPressの成長に直接貢献しています。 参入障壁を劇的に引き上げることは、必ずしも悪いことではありません。 たとえば、Gravity Formsは、Preact、Vueなどを使用します。これは、コアが決定した後で最終的に決定できるときに、それを実行するための人材とスキルセットがあるためです。」
Webを進歩させるWordPressの機会
W3 Techsによると、WordPressは現在すべてのWebサイトの28%に電力を供給しており、WordPressが選択するフレームワークは、ソフトウェアを拡張してキャリアを向上させるために多くの開発者が学習することを決定するライブラリに大きな影響を与えます。
グーテンベルクプロジェクトのテクニカルリードの1人であるMatiasVenturaは、ディスカッションの参加者に全体像を見て、ウェブを進歩させるWordPressのソリューションで協力して協力する機会を受け入れるように促しました。 競合するフレームワークの代表者と協力するためのチームの取り組みは、一般的に断片化されており、骨の折れるエコシステムの中で際立っています。
「過去10年間にWordPressがWeb標準の原動力であったのと同じように、JavaScriptUI表現の観点からWeb開発を進めなければならない機会に興奮しています」とVentura氏は述べています。 「それはまた、人々がWPを通じてWeb開発を学び続けるので、私たちがプロジェクトとしての責任を負っていると私が見ているところです。 多くの人がWordPressを通じてPHPを紹介されており、元々はWP関数やAPIと対話するだけでしたが、最終的には必要に応じて言語をもう少し深く掘り下げました。 すべてのフレームワークとライブラリにまたがる、学習するための最も意味のあるツールを提供するため、私たちのコアはJS言語に近いままであると思います。」
ベンチュラは、進行中の議論の参加者に、グーテンベルクチームがウェブを前進させるソリューションに耳を傾け、取り組んでいることを保証しました。
「私たちは、私たちがどのように構築し、グーテンベルクを通じて提供するものが開発者コミュニティに影響を与えることを絶対に認識しています。私たちはこれを軽視していません。まったく逆です」とベンチュラは言いました。 「私はEvan(Vue)とJason(Preact)と話していました。なぜなら、「フレームワークを選択する」コンテストを開催するのではなく、コラボレーションしてWebを前進させる機会のようだからです。」
