es6を使用してnode.jsアプリケーションにDDDを導入しようとしています。私はデータアクセス層にmongooseを使用しています。私はmongooseにモデルスキーマに結びついた ".methods"プロパティがあることに気付きました。ビジネスロジックをエンティティに追加するという点では、ビジネスロジックを追加する理想的な場所ですか、モデルスキーマオブジェクトを反映し、データをコピーするビジネスロジックを保持する別のオブジェクトを作成することを検討すべきですか?私が連続して使用していた場合、ここでどのようなアプローチが優先されますか?DDD + node.js:ドメインロジックはどこに行くのですか
答えて
私は本当にこれに決定的な答えはないと思うが、私はあなたにいくつかの意見を与えるだろう。
DDD 関連の概念と計測器は、OOP言語で公開されている機能(特に、インタフェース& IOC)に基づいて構築されています。 JavaScriptの世界では、特にモジュールシステムを活用するときに、状況が少し異なる傾向があります。それは不可能ではないが、妥協をする必要があるかもしれない、と言った。
DDDの重要な点の1つは、モデルが「平易」であることです。彼らは永続性機構などを完全に知らない、彼らは単にデータとロジックです。 Mongooseを使ってあなたのモデルを定義することによって、あなたはそれをかなり失うでしょう。ビジネスロジックがMongooseスキーマオブジェクトにアタッチされています。しかし、おそらくそれはあなたが妥協することができる場所です、それはあなたがそれについてどう思っているのか、あなたがどれほど純粋であることを望んでいるかに大きく依存します。さて、あなたが示唆したように、マッピングを行うことができます。その考えを進めることを決めたら、AutoMapperのようなものが役に立ちます。私はcerializeのES7デコレータを使用してよりシンプルなアプローチ(ただし、スキーマは使用していませんでした)のプロジェクトに携わってきました。
それは私の心配です。私がリポジトリなどを切り替える必要がある場合、私は道路の下で問題になる可能性があるカップリングを作成するように思えるので、ビジネスルールを含んでいる別の「エンティティ」オブジェクトを作成する方がよいでしょう。マッパーを使用してデータを前後に移動します。ヘッドアップをありがとう。 – user1790300
- 1. S#arpコマンドのアーキテクチャ:このドメインロジックをどこに置くか
- 2. Event Sourcing - ドメインロジックはどこに適合しますか?
- 3. ddd - リモートAPIとの同期はどこに行きますか?
- 4. DDD - サードパーティのAPIインターフェイスはどこにあるべきですか?
- 5. ddd:複数のモデルにまたがるロジックです。どこに行くべきですか?
- 6. ロガーはどこでDDDに入りますか?
- 7. Node.js Webプロジェクトフォルダはどこに置くべきですか?
- 8. DDD:パーシステンスエンティティの更新ロジックはどこにありますか?
- 9. DDDアーキテクチャではどこでヘルパークラスを保持しますか?
- 10. SignalRはどこにDDDアーキテクチャに属していますか?
- 11. DDD:非ドメインデータを保持する場所はどこですか?
- 12. データベース移行はNode.jsプロジェクトのどこにありますか?
- 13. events.jsはどこですか? (node.jsのデバッグ)
- 14. Mongoose(node.js MongoDB)では、どのようにこのアップデートを実行しますか?
- 15. ドメインロジックを配置して集約ルートの子を更新する適切な場所はどこですか?
- 16. DDDリポジトリをステートフルにすることはできますか?
- 17. 私のフッタはどこに行くのですか
- 18. 私のPOST()データはどこに行くのですか
- 19. Webアプリケーション:クライアント側のドメインロジック
- 20. このスクリプトをnode.jsでどのように実行できますか?
- 21. どこから車でどこに行くことができますか?
- 22. このnode.jsコードの実行フローはどのようになりますか?
- 23. node.jsのクリップボードイベントをどのように聞くことができますか?
- 24. ここでJQuery /クライアントサイドプログラミングはMVPとDDDに合っています
- 25. node.jsはどこにインストールすればよいですか?
- 26. node.jsプログラムはどこにアップロードすればよいですか?
- 27. コントローラはドメインロジックを持つべきではありません。誰かがこの信念にどれほど忠実に従うべきでしょうか?
- 28. WCF /クライアントアプリ - ビジネスロジックはどこに行くべきですか?
- 29. 条件付きアクションロジックはどこに行くべきですか?
- 30. Node.js - boot()関数とはどこから来たのですか?
CRUDには、永続フレームワークの種類がはるかに効果的です。 – plalx