我正在将应用程序从 C# 迁移到 Node.js。我一边学习一边学习node.js,所以我是一个node.js 新手。我正在阅读《领域驱动设计的模式、原则和实践》一书,发现我当前的项目可以从中受益的很多重要信息。
例如,书中有一个示例电子商务应用程序,其中包含三个有界上下文:销售、运输和计费。每个有界上下文负责自己的数据库,并且每个有界上下文都在 NServiceBus 的实例中运行。这似乎是一个很好的方法,因为所有内容都在同一解决方案但不同的项目下运行。在将其转换为 Node.js 时,我遇到了一些困惑。
1)我很难找到将node.js与ddd结合起来的好例子,就像上面的电子商务例子一样?这里的一些障碍是 OOP 处理方式的差异。
2)如果在本书示例代码中,每个有界上下文都在自己的项目中并在 NServiceBus 中运行,这是否意味着在将其转换为 Node.js 时,我使用 vscode 作为 GUI,我需要创建一个单独的父级如果我希望所有有界上下文都在同一服务器上运行,直到我需要相应地扩展,那么为每个项目提供一个不同的端口(有界上下文)并为每个有界上下文提供一个不同的端口来侦听?
3) NServiceBus 允许消息和事件来回传递。对于 Node.js,存在哪些服务总线技术(最好是开源的并且可以在基于 Linux 的计算机上运行)可以可靠地提供 NServiceBus 所提供的功能?我是否应该考虑单独使用rabbitmq来提供此功能(包括发送事件)?
您可能感兴趣沃尔肯套件 https://www.wolkenkit.io/,一个适用于 Node.js 和 JavaScript 的 CQRS 和事件源框架,与领域驱动设计 (DDD) 配合得很好。
除了实际的框架(部署为 npm 模块沃尔肯套件 https://www.npmjs.com/package/wolkenkit),有许多示例应用程序可以展示其工作原理:
-
wolkenkit-todomvc https://github.com/thenativeweb/wolkenkit-todomvc是使用 DDD 建模的经典 TodoMVC 应用程序
-
工作套件板 https://github.com/thenativeweb/wolkenkit-boards是一款类似于Trello的团队协作软件
-
wolkenkit-从未完成的游戏 https://github.com/thenativeweb/wolkenkit-nevercompletedgame该游戏的 wokenkit 版本位于nevercompletedgame.com https://www.nevercompletedgame.com/
-
wolkenkit-寻宝 https://github.com/revrng/wolkenkit-geocaching是一个管理地理藏宝缓存的应用程序
除此之外,您可能还想看看工作包文档 https://docs.wolkenkit.io/,尤其是在您可以下载的手册 https://docs.wolkenkit.io/1.2.0/downloads/brochure/其中解释了 DDD、事件溯源和 CQRS、它们是什么、它们如何相互关联等等……
PS:请注意,我是 wolkenkit 的作者之一,所以请对我的回答持保留态度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)