2012-03-02 9 views
7

より:私は、これまでそれがかなりのアイオープナーをされている「大規模JavaScriptのアプリケーションアーキテクチャ用のパターン」と題した記事を読んでいるJavaScriptのパブ/サブ - メッセージの優先順位の問題よりも、議論の

この記事の著者は、メディエータ/コントローラの使用によるpub/subアーキテクチャの使用を推奨しています。現実の例はありませんが、実際のスライドショー(http://addyosmani.com/blog/jqcon-largescalejs-2012/)ではAmplify.jsの使用を主張しています。

他の多くのpub/sub実装と同様に、Amplifyはメッセージの優先順位をサポートしています。私の理解は、調停者がいつどこで発生するのかを制御するため、調停者がその場にいると、メッセージの優先順位付けの必要性が減ることです。これは有効な点ですか?

メッセージの優先順位は、アプリケーションが大きくなる(そして変化する)場合は、モジュールのヒープがすべてサブスクリプションに設定された異なる優先順位で設定され、何が起こっているのかを実際に制御することができないために恐怖を感じます。これは有効な関心事であるか、単に実際にどのように使用すべきかについての誤解ですか?

+2

この質問に対する回答はありません。おそらく私の質問はあまりにも具体的だと思う。いずれにしても、私が学んだことと私が理解したことを分かち合いたいと思っていました。つまり、コンポーネント間の複雑な通信を管理するための優先順位の使用を主張しません。代わりに、通信の種類(つまりデバッグチャネルは1、通常チャネルは2)を管理するためにチャネルのようにチャネルを使用してください。デバッグコンポーネントは常にメッセージを最初に取得します。 – backdesk

+0

あなたの質問とあなたの意見は自分の気持ちを反映しています。私たちは現在、使用するpub/subライブラリを調査しており、優先順位を持たせることで目に見えないカップリングの新しい形につながると感じています。優先順位をよく定義されたチャネルとして使用するという考えは、おそらく概念の唯一の安全な使用です。 – h2stein

+0

JavaScriptでPub/Subをやっているのであれば、まだ持っていない場合は、SignalRを調べることをお勧めしますか?私は最後のプロジェクトでそれを使用し、それは素晴らしい作品です。それはあなたのためにそこに組み込まれた優先順位のものを持っているかもしれません。私はあなたの質問が理論的な会話に近いことを知っているし、自分自身も定義されたチャンネルに傾いているだろう。 – gcoleman0828

答えて

1

複雑なバージョンのpub/subを使用することはできません。優先順位の観点から考えるのではなく、チャネルの観点から考えると、すべてのチャネルが互いに独立して処理され、いずれも優先度がないと仮定します。

注意:モジュール名をチャネル名または名前空間として使用しないでください。もしそうするならば、他のモジュールにあなたのモジュールへのダイレクトリファレンスを与え、メソッドを直接呼び出すこともできます。要点は、モジュールがお互いを知りませんし、直接通信しないことです。

もう1つのヒント:他のモジュールに何をすべきか教えてください。代わりに、メッセージを送信するモジュール内で発生したイベントを報告します。その微妙な思考の変化は、モジュールを分離した状態に保つための鍵です。

+0

私はここでEricに同意します。サブスクリプションに優先順位を付けることは、あるモジュールが実際に優先権を持つべきかどうかを判断するために、あるモジュールが他のモジュールの知識を十分に持つ必要があることを示唆しているようです。モジュールがあまり疎結合していないことが示唆される。私がいつもやったやり方は、それを簡単に保つことです。イベントが発生したことを公開し、購読しているすべてのモジュールに必要な処理を実行させるだけです。 –

1

この質問で提案されているように、チャンネルとして使用することをお勧めします。

  1. デバッグメッセージサイズまたは要素の位置に影響を与える関与する任意のDOMレイアウト変更を
  2. サブスクリプション、1が最高であり、5サブスクリプションのため

    優先順位が最も低いです。

  3. レイアウトに影響を与えないDOMスタイルだけのサブスクリプションが含まれています。
  4. DOMのレイアウトやスタイルを読み込むサブスクリプション。
  5. DOMタッチがないサブスクリプション(pure JS)。

可能であれば、layout thrashingを防止する必要があります。

古い投稿に返信して申し訳ありませんが、「パブ優先順位」のGoogleの最初のページであり、そこにはあまりありません。

関連する問題