Domain driven design 为膳食计划应用程序识别有界上下文

Domain driven design 为膳食计划应用程序识别有界上下文,domain-driven-design,microservices,bounded-contexts,Domain Driven Design,Microservices,Bounded Contexts,我正在设计餐饮计划应用程序。我希望它有: 带有食谱的典型烹饪书(用户可以将食谱添加到烹饪书中,其中包含根据配料计算的配料量、份量、卡路里量的列表,配料可以添加到购物清单中,食谱本身可以添加到用餐计划中)。食谱可以通过一些过滤器来搜索,如烹饪类型等 膳食计划-每个工作日可修改的食谱列表 成分目录-可以通过过滤器搜索成分,每个成分都有一些值,例如卡路里。也许它会有计算器来测量(比如一勺面粉有多少克) 购物清单-从配方中添加或由用户手动添加的成分清单,可以删除这些成分并修改其数量 至于架构,我希望

我正在设计餐饮计划应用程序。我希望它有:

  • 带有食谱的典型烹饪书(用户可以将食谱添加到烹饪书中,其中包含根据配料计算的配料量、份量、卡路里量的列表,配料可以添加到购物清单中,食谱本身可以添加到用餐计划中)。食谱可以通过一些过滤器来搜索,如烹饪类型等
  • 膳食计划-每个工作日可修改的食谱列表
  • 成分目录-可以通过过滤器搜索成分,每个成分都有一些值,例如卡路里。也许它会有计算器来测量(比如一勺面粉有多少克)
  • 购物清单-从配方中添加或由用户手动添加的成分清单,可以删除这些成分并修改其数量
至于架构,我希望它是基于微服务的应用程序。我读过一些书,比如构建微服务、快速领域驱动设计以及一堆文章和教程。然而,我不知道如何对域进行切片以识别有界上下文,这些上下文将是微服务。 我脑子里想的都是分工,比如我指出的烹饪书、计划书、配料目录、购物清单,但我不确定这是否是在我的应用程序中设计模型的良好开端。我是个新手,我想从设计这类东西的人那里得到一些建议或想法

我正在设计餐饮计划应用程序。 至于架构,我希望它是基于微服务的应用程序

服务往往侧重于做而不是做。出版烹饪书是一个工作流程,膳食计划是另一个工作流程,依此类推

服务业的一个重要理念是,它们应该是。有许多不同的方式来理解自主性,但我觉得有帮助的是考虑我们将数据从生产者复制到消费者,这样即使生产者不可用,消费者也可以继续做有用的工作。 例如,膳食计划需要一本出版的食谱。但它不一定需要今天的食谱——一本昨天的食谱就可以了。如果我们有一些异步消息传递,将信息的副本从一个服务传递到另一个服务,我们就可以实现这一点

然而,我不知道如何对域进行切片以识别有界上下文,这些上下文将是微服务

正确-这是最困难的部分,尤其是当您在该领域没有足够的经验来了解不同的流程、它们共享哪些活动数据、共享哪些过时数据等等时

好消息是,如果你还不知道答案,那可能是因为你现在需要处理的信息量很小,你可以一起处理。换句话说,首先关注在一个整体中部署您的域模型,并在其中自治模块的边界上迭代—特别注意哪些进程需要共享相同数据的实时副本,哪些进程可以使用过时的数据副本

设计您的持久性模型,使功能永远不需要查看其他人的表(信息是复制的,而不是共享的)。确保模块之间的通信满足要求,以便在其他地方移动组件不会破坏世界