Domain driven design 贫乏的模型或事务脚本对于微服务是否足够好?

Domain driven design 贫乏的模型或事务脚本对于微服务是否足够好?,domain-driven-design,microservices,Domain Driven Design,Microservices,当我们一直在谈论贫血模型是反模式的时候,我在想它是否足够好用于微服务 正如许多人所提到的,Martin Fowler称之为贫乏的modelor事务脚本实际上适用于小型应用程序。虽然采用单片结构是可以理解的,但我们必须使用更复杂的结构来处理复杂性 然而,使用微服务,我们不太可能在一个服务中包含太多的逻辑。相反,服务通常只包含单个域中的相关逻辑,这通常很容易理解和处理。在这种情况下,在microservice中使用事务脚本模型完全合适吗?Martin Fowler的企业应用程序架构模式可能是一个合理

当我们一直在谈论贫血模型是反模式的时候,我在想它是否足够好用于微服务

正如许多人所提到的,Martin Fowler称之为贫乏的modelor事务脚本实际上适用于小型应用程序。虽然采用单片结构是可以理解的,但我们必须使用更复杂的结构来处理复杂性

然而,使用微服务,我们不太可能在一个服务中包含太多的逻辑。相反,服务通常只包含单个域中的相关逻辑,这通常很容易理解和处理。在这种情况下,在microservice中使用事务脚本模型完全合适吗?

Martin Fowler的企业应用程序架构模式可能是一个合理的起点

如果您有涉及验证、计算和派生的复杂且不断变化的业务规则,那么您可能需要一个对象模型来处理它们。另一方面,如果您有简单的非空检查和几个要计算的和,那么事务脚本是更好的选择

另一个启发式的考虑是这个特定的微服务是否有助于你的公司竞争优势。如果您正在构建您更愿意购买的东西,那么在领域建模方面的大量投资就没有多大意义

另一方面,如果您希望生活在这段代码中,直到它获得灾难性的成功,并且您都退休到某个海滩上,那么领域建模就变得更加引人注目


马的课程。

您好,这取决于项目,请记住,我们需要在ddd方法中使用丰富的模型,因为这些具有领域方法的项目的性质是丰富的,我们需要在这些项目中使用丰富的领域,现在在没有ddd方法的项目中,我的意思是数据驱动的项目是丰富的。我们也有贫血模型来回答我们的工作。 因此,这取决于项目和该项目所采用的方法。 以下链接可以帮助您:

根据经验,我并不觉得域模型对于简单用例的实现更慢。我很确定,如果您已经是一名经验丰富的建模师,那么始终使用域模型是可行的。@plalx:对于一些简单的东西,例如显示基于数据库的日志中的一些聚合数据等。您不需要DDD,而简单的CRUD服务可以完成它的工作。它概括了涉及到多少业务逻辑,以及它对业务的重要性,如果您对微服务有错误的印象。仅仅因为它被称为微并不意味着它没有或几乎没有逻辑。微服务上下文中的DDD通常意味着,微服务=有界上下文。对于简单的CRUD应用程序,您不需要任何DDD等,例如从数据库获取日志或基于某些聚合生成报告。没错,我不希望服务真的是“微型的”。实际上,我已经使用微服务好几年了,我个人的经验是,我们应该尽可能避免拆分服务。因此,现在我们正在管理一些具有高达3万行Java代码的服务,而且还在增长。不幸的是,大多数逻辑仍然是纯脚本风格的,所以我只是想知道在开发的这个阶段完全采用DDD是否值得