我正在尝试使用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. 在哪里把业务逻辑在DDD
- 2. 我要去哪里错功能逻辑
- 3. 应用程序逻辑去哪里?
- 4. 商业逻辑应该去哪里?
- 5. DDD:持久性实体更新逻辑在哪里?
- 6. MVC和ORM - 哪个模型逻辑去哪里?
- 7. 逻辑地址在哪里?
- 8. DDD:在哪里放置域名事件
- 9. DDD:哪里坚持非域数据?
- 10. DDD:在哪里实施域服务
- 11. 这个“加载更多”动作到哪里去,我在哪里处理逻辑?
- 12. 条件操作逻辑应该去哪里?
- 13. 什么逻辑去哪里:express + jade/ejs + html5 + css + websockets
- 14. MVVM在Silverlight - 哪里异步的业务逻辑去?
- 15. 我的控制器逻辑在Django中去哪里?
- 16. MVC在哪里逻辑去控制器或查看模型
- 17. 我的商业逻辑应该去哪里?
- 18. 应该在哪里的setStyle逻辑的itemRenderer的overided方法去
- 19. 在哪里应该后台作业逻辑去
- 20. NHibernate查询逻辑放在哪里?
- 21. 事件采购 - 域逻辑适合在哪里?
- 22. 存储库,服务或域对象 - 逻辑属于哪里?
- 23. 域驱动设计:工作流逻辑在哪里?
- 24. 哪里最好把耦合域模型的逻辑?
- 25. 使用领域时,业务逻辑坐在哪里
- 26. 将领域层和表示层之间共享的DDD中的业务逻辑放在哪里?
- 27. 动态视图?在哪里放逻辑?
- 28. Django控制器逻辑在哪里?
- 29. 把UITableViewCell逻辑放在哪里?
- 30. MVC架构 - 在哪里放置逻辑?
持久性框架的种类对于CRUD更加有效。 – plalx