これは、Meteor のアーキテクチャに精通している方への質問です。
Meteor アプリの複数の「コピー」を透過的に実行できるスマート パッケージを設計しようとしています。つまり、既存の Meteor アプリといくつかの事前定義されたユーザー グループがある場合、パッケージはアプリを半自動的に "分離" できます。つまり、ユーザー グループごとに、それらのユーザーだけがアプリを使用しているように見えるように実行します。 .
この機能は、あらゆるアプリケーション向けにカスタム設計できることを理解しています。ただし、Meteor の使用などを考慮して、既存のアプリに加えてこの機能を提供するスマート パッケージの最も簡単な方法を探していますCollection
。したがって、多かれ少なかれ以下を満たす必要があります。
- 通常の Meteor アプリと同じくらい効率的である必要があります。
- このシステムを使用するように既存の Meteor アプリを変換するには、最小限のコード変更が必要です。
- パッケージは、Meteor を変更またはオーバーライドする必要はなく、比較的将来的にも保証されるべきです。
この問題について私が考えたいくつかのアプローチとそれに対応する欠点を次に示します。
- 通常の Meteor アプリのすべてのコレクションを使用し、ユーザーが属するグループを表す追加の ID で各ドキュメントにタグを付けます。各ユーザーのパブリケーション/サブスクリプションは、同じグループ ID を持つドキュメントのみをプルします。
Meteor.Collection
これらの異なるグループを認識する方法でオーバーライド(または同一のインターフェイスを実装) し、クライアントの観点からは、現在のユーザーのグループがアプリ全体であるかのように動作します。
Meteor のシステムをよく知っている人からの良いアイデアを探しています。Meteor アプリの大部分を簡単に変換して動作させる (つまり、非常に壊れやすいクレイジーなハックを避ける) 一方で、Meteor の上に簡単かつ効率的に実装できるように、この機能を設計するにはどうすればよいでしょうか?
(もしあなたがニューヨーク市のメテオの第一人者なら、私は喜んであなたを夕食に連れて行き、これについて議論したいと思います!)