我正在尝试使用es6将DDD引入到node.js应用程序中。我为我的数据访问层使用猫鼬。我注意到猫鼬具有与模型模式绑定的“.methods”属性。在向实体添加业务逻辑方面,这是否会成为添加业务逻辑的理想场所,还是应该考虑创建另一个对象,该对象拥有镜像模型模式对象的业务逻辑,并将数据从一个数据复制到另一个数据?如果我正在使用sequalize,那么这里的首选方法是什么?DDD + node.js:域逻辑去哪里
2
A
回答
2
我不认为这确实有一个明确的答案,但我会给你一些意见。
许多DDD 相关概念和仪器是围绕OOP语言公开的特征(特别是:接口& IOC)构建的。在JavaScript世界中,情况往往有所不同,特别是在利用模块系统时。这就是说,这不是不可能的,但可能需要作出妥协。
DDD中最重要的一点是您的模型是“普通”的。他们完全不了解任何持久性机制等,他们只是数据和逻辑。通过使用Mongoose定义你的模型,你几乎失去了;您的业务逻辑被附加到Mongoose模式对象。但也许这就是你可以妥协的地方,这很大程度上取决于你希望如何纯粹。现在,您可以按照您的建议进行映射。如果你决定继续这个想法,像AutoMapper可能会有所帮助。我已经参与了一个项目,使用cerialize的ES7装饰器来实现一种简洁的方法(但我们并没有使用模式)。
+0
这是我关心的问题。看起来,如果我需要切换存储库等,我会创建耦合,这可能会成为一个问题。因此,创建一个单独的“实体”对象也是一种更好的方法,该对象也包含业务规则,并且只是使用映射器来回移动数据。感谢您的高举。 – user1790300
相关问题
- 1. 我要去哪里错功能逻辑
- 2. 逻辑地址在哪里?
- 3. DDD:在哪里放置域名事件
- 4. DDD:在哪里实施域服务
- 5. 我的控制器逻辑在Django中去哪里?
- 6. 在哪里应该后台作业逻辑去
- 7. MVVM在Silverlight - 哪里异步的业务逻辑去?
- 8. 我的商业逻辑应该去哪里?
- 9. 条件操作逻辑应该去哪里?
- 10. NHibernate查询逻辑放在哪里?
- 11. 域驱动设计:工作流逻辑在哪里?
- 12. 哪里最好把耦合域模型的逻辑?
- 13. 使用领域时,业务逻辑坐在哪里
- 14. 存储库,服务或域对象 - 逻辑属于哪里?
- 15. 将领域层和表示层之间共享的DDD中的业务逻辑放在哪里?
- 16. PHP:Zend_Layout:在哪里编写业务逻辑?
- 17. CakePHP - 在哪里放置服务逻辑
- 18. Django控制器逻辑在哪里?
- 19. 你在哪里把逻辑的迅速
- 20. 在哪里保持验证逻辑
- 21. 我在哪里放置ICommand的逻辑?
- 22. Django的逻辑和它放在哪里?
- 23. 动态视图?在哪里放逻辑?
- 24. Lumen的商业逻辑在哪里?
- 25. 在哪里放置商业逻辑类
- 26. 在哪里做类的逻辑?
- 27. SQL逻辑在哪里哪里参数化
- 28. 去哪里放哪里?
- 29. 去哪里PHP parse_url()不 - 只分析域
- 30. 助理编辑去了哪里?
持久性框架的种类对于CRUD更加有效。 – plalx