我正在嘗試使用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