C# 名为Task的业务实体-我的软件类的名称

C# 名为Task的业务实体-我的软件类的名称,c#,domain-driven-design,C#,Domain Driven Design,我正在.NETC#中构建一个项目管理系统,该系统处理工人要完成的(物理施工)任务 我对DDD的了解告诉我,我应该使用一种普遍存在的语言,并使用与业务使用相同的术语 然而,我觉得在我的类中调用类任务对于程序员来说是一种可怕的经历,他们会在软件线程任务和现实世界任务之间混淆 关于如何最好地处理这种情况,有什么建议吗?没有理由不称之为任务。如果这是您与领域专家达成一致的语言(并且对你们双方都有意义),那么这就是您应该使用的语言。正如在评论中提到的,在您的限定上下文中,任务将意味着您定义它们的含义 如果

我正在.NETC#中构建一个项目管理系统,该系统处理工人要完成的(物理施工)任务

我对DDD的了解告诉我,我应该使用一种普遍存在的语言,并使用与业务使用相同的术语

然而,我觉得在我的类中调用类任务对于程序员来说是一种可怕的经历,他们会在软件线程任务和现实世界任务之间混淆


关于如何最好地处理这种情况,有什么建议吗?

没有理由不称之为任务。如果这是您与领域专家达成一致的语言(并且对你们双方都有意义),那么这就是您应该使用的语言。正如在评论中提到的,在您的限定上下文中,任务将意味着您定义它们的含义

如果你把代码写得很好,模棱两可的程度就会降到最低。您会发现,您很少在同一上下文中处理两个不同的任务概念,通过遵循单一责任原则,您将进一步限制混淆


如果您确实存在歧义,请使用名称空间,并明确说明您使用的是模型,而不是编程概念。

可能是一个好问题,因为我同意@Cyral,但我要说,在很多情况下,类的名称相同。这就是名称空间的用途。名称空间是你的朋友。但这种情况经常发生。System.Data.DataTable和Microsoft.VisualBasic.Interop.DataTable是一个完美的例子。这就是为什么您有边界上下文,通常作为名称空间/包实现。无处不在的语言只有在有限的语境中才有意义。根据上下文的不同,同一术语可能有不同的含义。