繁体   English   中英

使用域驱动设计的node.js

[英]node.js using domain driven design

我正在将应用程序从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来提供此功能(包括发送事件)?

您可能对wolkenkit感兴趣, 是一个适用于Node.js和JavaScript的CQRS和事件源框架,可以与域驱动设计(DDD)一起很好地发挥作用。

除了实际的框架(部署为npm module wolkenkit )之外,还有许多示例应用程序可用来说明工作原理:

除此之外,您可能还想看看wolkenkit文档 ,并且在那儿,尤其是在小册子上,您可以下载手册,其中解释了DDD,事件源和CQRS,它们是什么,它们之间的关系等等……

PS:请注意,我是wolkenkit的作者之一,所以请带上我的盐。

我建议通过ddd标记的npm模块:

并标有服务总线:

Philipp Fehre还有一本JavaScript域驱动设计书。

这篇文章已有两年历史了,但是对于仍然有兴趣的人,可以通过以下网址找到用于Typescript / node的DDD框架:

https://github.com/node-ts/ddd

以及受NServiceBus启发的消息总线,位于:

https://node-ts.github.io/bus/

它们旨在共同构建带有节点的消息驱动DDD系统

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM