为新的子业务单元正确命名命名空间

本文关键字:命名空间 单元 业务 | 更新日期: 2023-09-27 18:21:38

我们有当前的结构:

  • BusinessName.Common-常见实体、类、实用程序
  • BusinessName.Services-商业服务

我们正在增加一个名为"医疗"的子单元,它将包含类似的结构。我一直在决定最好的命名惯例。

选项1

  • 商业名称.医学.社区
  • 商业名称.医疗.服务

选项2:

  • BusinessName.Common.Medical
  • 企业名称.服务.医疗

最终会有更多这样的子单位。

为新的子业务单元正确命名命名空间

我会坚持选项1,因为每个域都应该模仿相同的子命名空间命名方案。

如果您将BusinessName.Common称为跨所有域的共享库(您称之为单位…),则特定域的公共成员属于整个域,因此,您的命名方案应该是BusinessName.[DomainName].CommonBusinessName.[DomainName].Services

无论如何,让我为这个答案增加更多的价值。您说过Common项目/命名空间将包含公共实体、类和实用程序。我不同意这一点。公共库应该是跨层库(垂直)。我的建议是,你应该这样组织你的解决方案:

  • BusinessName.Common:基础设施代码。任何与域相关的代码都不应该在这里。这里的类、接口和枚举应该可以从任何层和层使用
  • BusinessName.Domain:公共域实体和服务。我会把公共域接口,抽象类,基类放在这里
  • BusinessName.Domain.[SomeDomain]。例如CCD_ 8。我会把关于领域的一切都放在这里。在一个特定的域中,没有任何其他域的公共实体,因为这会破坏在域中组织项目的目的

在我自己的项目中,我更喜欢使用Shared标识符而不是Common,但这只是我的观点。