別のトピックでの提案がきっかけで、EmberのドキュメントからGlimmerコンポーネントの学習を始めたばかりです。実際、それらは使用するのが非常に楽しく、私の意見ではReactで構築するよりも優れています。Emberがそれほど人気がないことに驚いています。いずれにせよ、私の質問は、DiscourseのテーマプラグインはGlimmerコンポーネントを使用して構築でき、Emberのすべてに最初からアクセスできるようです。では、理論的にはGlimmerコンポーネントを作成することでDiscourseのどの部分でもカスタマイズできるのではないでしょうか?ここでの制限は何ですか?Ember/Glimmerのすべての機能がDiscourseで利用可能で、あとはコンポーネントのプラグインアウトレットを見つけて正しく初期化するだけですか?たとえば、コミュニティのトピックの一部を、外部のeコマースサイトからの関連製品データで補完する必要がありました。そこで、DiscourseにGlimmerテーマコンポーネントを作成して、製品データを取得するためのfetchを実行し、投稿の最後に表示するというアイデアがあります。Glimmerでは比較的簡単ですが、Ember/Glimmerコンポーネントをどこまで活用できるかわからないため、この方法がDiscourseで正しい方法かどうか疑問に思っています。フィードバックがあれば教えてください。
正しく理解されていると思います。
クロススクリプティング設定が許可している限り、リモートサイトからデータを取得できるはずです(そして、ユーザーが取得できる秘密のAPIキーを使用する必要はありません)。
それは機能するでしょう。
ただし、これはすべてのページビューで外部ウェブサイトから製品データを取得することになり、それはあなた(または彼ら)が望まないことかもしれないことに注意してください。したがって、プラグインを作成し、それ自身のコントローラーからデータを要求させ、そのコントローラーがリモートサイトからデータを要求するようにするのが良いでしょう。これにより、結果をキャッシュできるようになり、非公開APIを使用することもできるようになります。
製品へのリンクがあり、データが古い場合は、「onebox」して追加のデータを追加するプラグインを作成することもできます。
ありがとうございます。EmberDataが利用可能で、キャッシュ機能が組み込まれているように思いました。Discourse内でEmberDataをまだテストしていませんが、機能しない理由があるのでしょうか?
それはクライアントサイド(つまり、ユーザー固有)になり、1人のユーザーが(同じ)リクエストを1000回送信した場合に問題を解決します。
しかし、1000人のユーザーがそれぞれ1回だけリクエストを送信した場合、それぞれが個別のキャッシュを持っているため、機能しません。
明確化ありがとうございます。はい、APIにはIPアドレスに基づく制限があるため、クライアント側がより懸念されます。したがって、クライアント自体がキャッシュされていれば、外部APIのAPI制約に影響するような同時ユーザーはそれほど多くないので、問題ないはずです。
Emberに対する私の唯一の懸念は、Discourse以外では誰も実際には使っていないように見えることです。Discourseの人気がますます高まり、プラットフォームが改善され続けているため、私はそれを学んでいるだけです。しかし、Discourse以外のEmberの未来はあるのでしょうか、そしてDiscourseは今後長期間それに依存するのでしょうか?Emberがそれほど人気がないのは奇妙だと思います。私は長年Reactで開発してきましたが、先日Emberをインストールした後、その良さに驚きました。意見を表明するフレームワークがあるのは非常に便利です。
CDCKのみが完全に応答できますが、私の見解は以下の通りです。
- 完全に投資されているように見えます。
- これは優れたフルファットフレームワークです。
- 書き直すには非常にコストがかかります(そして商業的にはほとんど意味がないでしょう)。
- 10年以上Emberなので、賭けるならそれでしょう。
多くの企業がEmberJSを使用しています。
DiscourseはEmberDataを使用していません。
Apple、LinkedIn、Twitchのような企業が使用していた当時ほど人気はありませんでしたが、私たち、Intercom、Hashicorp、CrowdStrikeのようなユーザーはまだいます。
Discourseはそれに完全に投資しているため、私たちはhttps://mainmatter.com/ember-initiative/に参加しました。
このトピックのタイトルに戻ります。Glimmerコンポーネントは、CDCKがTopic Listにコンポーネントを追加することを最終的に快適に許可したように、うまくスケールすると考えています。これは、フレームワークが大規模でパフォーマンスを発揮する必要があるためです。詳細は以下をご覧ください: Upcoming topic-list changes - how to prepare themes and plugins
当初、拡張機能は、古いAndroidフォンでも多くのTopic List Itemをレンダリングするという課題に対処するために作成された、現在は非推奨のウィジェットシステムに依存していました。