问题标签 [domain-driven-design]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
2604 浏览

domain-driven-design - 我可以在 DDD 中有“不完整”的聚合吗?

DDD 声明您应该只通过它们的聚合根访问实体。例如,假设您有一个聚合根 X,它可能有很多子 Y 实体。现在,在某些情况下,您一次只真正关心这些 Y 实体的一个子集(也许您将它们显示在分页列表或其他内容中)。

那么是否可以实现一个存储库,以便在这种情况下它返回一个不完整的聚合?IE。一个 X 对象,它的 Ys 集合只包含我们感兴趣的 Y 实例,而不是全部?例如,这可能会导致 X 上执行一些涉及 Ys 的计算的方法无法按预期运行。

这是否可能表明所讨论的 Y 实体应被视为提升为聚合根?

我目前的想法(在 C# 中)是利用 LINQ 的延迟执行,以便我的 X 对象有一个 IQueryable 来表示它与 Y 的关系。这样,我可以通过过滤进行透明的延迟加载......但是让它工作使用 ORM(在我的例子中是 Linq to Sql)可能有点棘手。

还有其他聪明的想法吗?

0 投票
2 回答
2845 浏览

wcf - WCF - 域对象和 IExtensibleDataObject

典型场景。我们使用老式的 XML Web 服务在服务器场与多个分布式本地客户端internally之间进行通信。不涉及第三方,只有我们自己和我们的客户使用的应用程序。

我们目前正在考虑从模型XML WS转向WCF/object-based模型,并一直在尝试各种方法。其中之一涉及直接通过网络传输域对象/聚合,可能会在它们上调用 DataContract 属性。

通过在 上使用IExtensibleDataObjectDataContract使用 Order 属性DataMembers,我们应该能够处理简单的属性版本控制问题(请记住,我们控制所有客户端并且可以轻松地强制更新它们)。

我一直听说我们应该通过网络使用专用的、仅传输的数据传输对象 ( DTOs)。

为什么?还有理由这样做吗?我们在服务器端和客户端使用相同的域模型,当然,只有在认为正确和“必要”时才预填充集合等。集合属性利用服务定位器原理和 IoC 来调用NHibernate-based“服务”以直接(在服务器端)获取数据,并在客户端调用WCF“服务”客户端与WCF服务器场对话。

那么 - 为什么我们需要使用DTOs?

0 投票
3 回答
3778 浏览

wcf - 使用 WCF 服务域模型进行延迟加载?

我希望将我的域模型推入 WCF 服务 API,并希望通过这种类型的设置了解延迟加载技术。

采用这种方法时有什么建议吗?


当我实现这项技术并进入我的应用程序时,就在服务器返回我的列表之前,它会获取每个应该延迟加载的属性......因此急切加载。您能否解释一下这个问题或提出解决方案?

编辑:看来您可以使用 XMLIgnore 属性,因此在序列化过程中不会对其进行查看..尽管仍在阅读

0 投票
4 回答
345 浏览

architecture - Web 应用程序中的实体和值对象

我们有一个简单的域模型:Contact、TelephoneNumber 和 ContactRepository。联系人是实体,它有一个身份字段。TelephoneNumber 是典型的值对象:没有任何标识,不能与 Contact 实例分开加载。

另一方面,我们有用于操作联系人的 Web 应用程序。第一页是“ContactList”,下一页是“Contact/C0001”,显示联系方式和电话号码列表。

我们必须实施电话号码编辑表格。第一个近似的想法是添加一些可导航的页面,如“ThelephoneNumber/T0001”。

但是 ThelephoneNumber 是 Value Object 类,无法通过这种方式识别其实例。

解决此问题的最佳做法是什么?我们如何识别无状态应用程序中的不可识别对象?

0 投票
6 回答
1968 浏览

domain-driven-design - 从事领域驱动设计的公司

我刚刚读完《领域驱动设计》,我对其中的一些想法着迷。你知道有哪些公司在他们的项目中实现了无处不在的语言吗?

0 投票
10 回答
39150 浏览

domain-driven-design - 值与实体对象(领域驱动设计)

我刚刚开始阅读DDD。我无法完全掌握实体与值对象的概念。有人可以解释当值对象被设计为实体对象时系统可能面临的问题(可维护性、性能等)吗?例子会很棒...

0 投票
6 回答
3359 浏览

domain-driven-design - DDD 中的数据访问?

在阅读了 Evan 和 Nilsson 的书后,我仍然不确定如何在域驱动项目中管理数据访问。CRUD 方法应该是存储库的一部分,即 OrderRepository.GetOrdersByCustomer(customer) 还是应该是实体的一部分:Customer.GetOrders()。后一种方法看起来更面向对象,但它会将单个实体类型的数据访问分配给多个对象,即 Customer.GetOrders()、Invoice.GetOrders()、ShipmentBatch.GetOrders() 等。插入和更新呢?

0 投票
6 回答
5927 浏览

.net - 多租户架构和 NHibernate

谁能最终解释一下在 NHibernate 支持的域模型中实现对多租户功能的透明和流畅支持的最佳策略是什么?

我正在寻找方法,如何使域逻辑尽可能地与多租户的东西隔离,比如通过 TenantID 过滤等

0 投票
7 回答
8056 浏览

domain-driven-design - 什么是领域驱动设计?

所以我从团队中的一位开发人员那里得到了这个问题:什么是领域驱动设计?我当然可以指出埃文斯的书,但这实际上是一个答案吗?

您将如何用几句话向团队中的初级软件工程师解释 DDD?

0 投票
1 回答
455 浏览

java - 将 .HBM 模型转换为带注释的 pojos

我们在生锈的旧 hbm 文件中声明了我们的域模型,我们希望移动到使用 javax.persistence.* 注释注释的 POJO。

有没有人有这样做的经验?

有没有我们可以使用的工具?