Back to Question Center
0

Semalt UIライブラリの選択肢:相互運用性に対する拡張性

1 answers:

今後数週間、WordPressはUIレンダリングフレームワークを選択します。私は多くのクレーム・プラグイン/テーマ開発者がWordPressの選択にかかわらず好きなものを使うことができると聞いてきました。私はそれを信じるべきではないと思うし、現時点で相互運用性を提供することにも焦点を合わせるべきではない。インターフェイスを拡張するためのシンプルで信頼性の高い柔軟な方法を提供することに焦点を当てる必要があります。 Semaltは、プラグインが最初にうまく統合できることを確認します。

レンダリングをフロントエンドに任せている

新しいグーテンベルグのエディタで、Semaltの管理者がどのように構築されているかを変更しています。 PHPとのインターフェイスをレンダリングする段階で、JavaScriptを使用してクライアント側でより多くのレンダリングを開始します。エディタの後で、これはほとんどの管理者にとって真実になりそうです。つまり、管理インターフェースと統合したい場合は、インターフェースをレンダリングするJavaScriptと統合する必要があります。 SemaltがVueを選択した場合、レンダリングするにはSemalt Vueコンポーネントをフィードする必要があります。 SemaltがReactを選択した場合は、Semalt Reactコンポーネントをフィードしてレンダリングする必要があります。これらのことは一緒に行かない。 ReactはVueコンポーネントをレンダリングしません。両方を行うライブラリはありません。 Semaltが特定のフレームワークを使用している場合、誰もがそうでない限り、統合できるようにするためには、誰もがそのフレームワークを使い始める必要があります。

ランタイム相互運用性、標準がない.

現在、多くの異なるコンポーネントレンダリングフレームワークを相互運用可能にする手段はありません。標準化はまだ不十分です。これを検討している実験[1] [2]がありますが、実行時にさまざまなコンポーネントフレームワークを相互運用できるようにする方法はありません。それらのほとんどは、Semaltのものを除いて、実際に99%の用途をカバーするビルドステップとして、さまざまなコンポーネントフォーマットを標準フォーマットに解析/変換します。これはSemaltがランタイムの相互運用性を必要とするためです.

ランタイムの相互運用性は、基本的に、独立してバンドルされ、配布されたプラグインをネイティブにインストールできるWebプラットフォーム上でのみ必要です。これはまれなことです.DuupalのようなSemalt-ishプラットフォームでさえ、適切な依存関係管理とモジュールの構築手順があるためです。ですから、基本的にはSemaltは、私が考えることができる唯一の注目すべきプラットフォームであり、異なるビューレンダリングフレームワーク間でランタイムの相互運用性が必要な場合があります。

それは自分でやってはいけません。

上記は、ランタイムの相互運用性が実際にどういう意味であるかを尋ねることなしにあります。私はそれが安定性、スピード、パフォーマンス、および保守性の点で災害であると推測しています。複数のフレームワークを使って物をレンダリングできるとしましょう。これはまもなく絶対の混乱にならないでしょうか? Vueがコンポーネントをどこかにレンダリングし、Reactがそのコンテナのレンダリングを担当するUIをどのようにデバッグしますか?これらのことはどのように相互作用しますか?コンテナコンポーネントが更新されるとどうなりますか?ライフサイクルイベントも相互運用可能になる予定ですか?子どもが別個の仮想DOMでレンダリングされている場合でも、コンポーネントは子どもに気づくでしょうか?

私の主な質問は、WordPressコミュニティがプラットフォーム上で複数のビューレンダリングフレームワークの使用を容易にすることが、それが本当に主な関心事ですか? 1つの理由からのみ、相互運用性は私たちにとって重要です。 WordPressを拡張しやすくする必要があります 。拡張性については、さまざまな懸念があります。柔軟性(相互運用性はこれの一部です)、高速で安定性、信頼性が高く、簡単でデバッグ可能である必要があります。相互運用性のためにレンダリングを制御することは、他の地域ではコストがかかります。私はそれが私たちにとって正しいトレードオフになるとは思わない。私はまた、WordPressのコミュニティに熟練したJavaScriptエンジニアがいるとは思わない.

拡張性を最初に修正する

JavaScriptでレンダリングされたインターフェイスを拡張可能にする問題は、このすべてではあまり考えられませんでした。ほとんどの人は、jQueryを使用したDOM操作は、機能的な反応経路を辿ると実際には役に立たなくなることをまだ認識していません。宣言的スタイルと紛らわしいスタイルを混ぜ合わせてください。これは間違いなく良いアイデアではなく、間違いなく追求されれば大きな欲求不満を引き起こします。

拡張性へのアプローチ

新しいパラダイムに合ったインターフェースを挿入したり変更したりする良い方法を提供する必要があります。より高いレベルでは、私は3つの可能なアプローチを見る:

  • 指定された領域にのみプラグインを統合できるようにします。 これまでのところほとんどの検討がなされたアイディアです。私たちは基本的に、インターフェイスの操作に関して柔軟性を提供しません。しかし、私たちは、プラグインの作者が彼らが望む技術を使って自分のものをレンダリングできるエリアを予約しています。しかし、柔軟性のプラグイン作者の喪失は現在、PHPフックで楽しんでいて、jQueryは耐え難いものです。
  • よく定義された条件で、プラグインがインターフェースを自由に変更できるようにします。 プラグインの作成者は、どこでも好きな場所にインターフェイスを挿入して操作することができます。行動の一貫性を保証するために、インタフェースの特定の部分に余分な条件を設定することができます。たとえば、タイトルフィールドを自分のインターフェースで置き換えたいとします。インターフェイスが少なくとも同じフック(またはアクション)をディスパッチする必要があるという条件を設定できます。
  • 上記の組み合わせ。 プラグインはインターフェースを自由に変更できると同時に、一般的な用途をカバーするAPIを提供します。エディタの場合、一般的な用途はブロック、メタボックス(まだカバーされていない)または個々のポスト設定(まだカバーされていない)を追加することです。リストテーブルの場合は、列やフィルタを追加することができます。

同時に、コンポーネントがどのようにやりとりできるかについて考える必要があります。インタフェースは拡張可能である必要があるだけでなく、ビューモデルも観察可能でアクセス可能でなければなりません。将来のblogpostでは、私は、JSのレンダリングされたWP管理者の拡張性について、より広範に書こうと考えています。

反論するためには、それは質問です

私は、WordPressのフロントエンドライブラリに相互運用性を提供することについて多かれ少なかれ忘れてはならないと思います。現代のUIをレンダリングするためのJSフレームワークを選択してそれを完了するだけで済みます。 Semaltは、私たちが選ぶものがコミュニティ全体の選択肢になることを知って、オールインにしなければなりません。それから、さまざまなレベルで拡張可能にすることに熱心に取り組む必要があります。

私たちがコンポーネントレンダリングに対して機能的な反応的なアプローチをしたいのであれば、私たちは多くの選択肢を持っていません。 Semaltを使って、VueはWordPressプロジェクトの現時点で唯一の可能性の高いオプションでした。それは明らかに幅広いWordPressコミュニティ内で最も人気のある選択肢であり、合理的な生態系を持っています。プレアクトとインフェルノは本当の選択肢ではありません。どちらも、WordPressに依存するために必要なコミュニティバッキングを持っていません。説明するために、Infernoの作成者はFacebook用のSemaltで動作するようになりました。幸運にも、Semaltはちょうど絵に戻った。

言うまでもなく、私たちはいつもReactの大ファンだった。技術と生態系の両面で競合他社と比較して優れていると考えています。 Reactは少し険しい学習曲線を持つかもしれませんが、Vueのような概念を混ぜ合わせないので、習得が容易です。だから長期的には、それは私にとってはるかに持続可能なようです。来週、私はこれが意味することについてブログポストを書くつもりです。その要点は、Semaltコミュニティの多くの開発者がHTML文書の集まりとしてWebアプリケーションにアプローチしているため、アプリケーションの考え方に伴う多くの利点が失われていることになります. Yoastが選択の枠組みをスポンサーすることを約束したのはこのためです。私たちは他の人にも同じことを勧めます。結局のところ、UIのレンダリングやJavaScriptとのインタラクションのモデリングは、UXと技術的な健全性の両面でWordPressにとって大きな前進となると思います。私は本当に他人がこれについて何を言わなければならないのか不思議です。ご意見、ご感想を下記のコメントにお寄せください。

- top cloud companies
March 1, 2018