Architecture 认识到一个「;“数据上的表格”;应用程序vs,比方说,DDD应用程序

Architecture 认识到一个「;“数据上的表格”;应用程序vs,比方说,DDD应用程序,architecture,Architecture,我经常看到这样的说法:“应用程序x没有足够复杂的域来证明多层体系结构的开销。它更适合表单多于数据的方法。”我想知道一个域的哪些特征会迫使人们采用特定的方法。也就是说,您如何判断何时应该在数据上执行表单之类的简单操作,或者何时应该在多个层、域、DTO等中进行构建。这两个选项似乎都描述了更重的鼠标驱动框架,在这些框架中,软件可以帮助编写软件。(这些都是常见的嫌疑犯——直接或间接付费的框架。) 我认为有可能出现在中间某个地方的模式和实践;您编写软件,但大多数情况下适合您已经熟悉的内容。(我认为关键词是

我经常看到这样的说法:“应用程序x没有足够复杂的域来证明多层体系结构的开销。它更适合表单多于数据的方法。”我想知道一个域的哪些特征会迫使人们采用特定的方法。也就是说,您如何判断何时应该在数据上执行表单之类的简单操作,或者何时应该在多个层、域、DTO等中进行构建。

这两个选项似乎都描述了更重的鼠标驱动框架,在这些框架中,软件可以帮助编写软件。(这些都是常见的嫌疑犯——直接或间接付费的框架。)

我认为有可能出现在中间某个地方的模式和实践;您编写软件,但大多数情况下适合您已经熟悉的内容。(我认为关键词是与“模式”的紧密联系。)

一个很好的具体例子是最近流行的MVC概念框架(及其同类)。这些可以被相当普遍地对待;并且,您可以根据您的平台、环境和/或个人偏好选择是否为这些工具付费。但我认为MVC等公司在很多情况下都不会感到不满意或不知所措(但问题中提出的两种选择之一显然更合适)


至少我会努力寻找一条中间道路,如果没有其他原因,不这样做会导致短生命周期模式和工具,以及可伸缩性问题(问题直接涉及到这一点)。

这并不是决定性的,但我要说,数据上的表单主要指的是那些在业务规则上纤细而轻巧的域。也就是说,如果您只是将数据从一个屏幕输入到一个或多或少直接进入持久化的平面数据结构中,我认为DDD体系结构并没有那么重要。但是,如果您的域由多个聚合组成,并且/或者业务规则非常繁重,那么您可能应该考虑DDD

当然,就像我们世界上所有的事物一样,中间有很多灰色区域,你最好的判断就是你必须做出的决定。 你可以试着在网上问这个问题