0

私は NodeJS と MongoDB を使って遊んでいます。本当に大きなアプリケーションになりそうなものを作りたいです。そのため、アプリケーションをできる限り切り離して設計するようにしています。

ビジネスロジックがデータの保存方法を認識しないようにするために、永続化レイヤーを抽象化すると便利だと思います(将来、RDBMS用にMongoDBを切り替える必要があるかどうかはわかりません)。それを知って、データストレージに必要な操作を備えた FACADE を作成し、メディエーターのパトロンを使用して FACADE 操作をサブスクライブし、それらを実装することを考えました。このメディエーターは、イベント リスナーを使用してファサードに接続し、ファサードはイベント エミッターを使用します。次に、メディエーターにサブスクライブするモデルにはすべてのマングース スキーマが含まれ、すべてのデータベース/永続性の問題を担当します。(それは意味がありますか?)

私は、マングースがデータモデルに非常にタイトであることを知っています. すなわち。Player プロトタイプではなく、PlayerSchema と PlayerModel があると予想されます。そう:

  • マングースのデータ モデルを使用する必要がありますか? (これを行う際に制限/問題はありますか?-DBを切り替えるとそれらを書き直す必要があることに加えて-)
  • マングースのデータ モデルをビジネス ロジックのプロトタイプに (この FACADE コンポーネントによって) 変換する必要がありますか? MongoDB データにアクセスするために別の ORM を試す必要がありますか?

私はJavaScript、Node、およびこれらすべてのテクノロジーに非常に慣れていないため、これらの抽象化を本当に行いたいと考えています(したがって、各部分を分離してテストし、より良い解決策がある場合はレイヤーを切り替えられるようにしたいと考えています)。

どんなアドバイスでも大歓迎です!

4

1 に答える 1

0

最終的にどのデータベースになるかわからない場合は、 mongooseの代わりにjugglingdbの使用を検討することをお勧めします。これにより、探しているデータ層の抽象化の一部が提供されます。

于 2012-06-27T02:08:38.670 に答える