28|限界上下文(上):怎样为更大的需求建模?
团队遇到的挑战
- 深入了解
- 翻译
- 解释
- 总结
领域驱动设计(DDD)中的限界上下文概念及其应用是本文的重点。文章首先介绍了团队面临的挑战,引出了对系统拆分的需求。限界上下文不仅是一种分而治之的手段,更重要的是维护概念一致性。在大型系统中,全局概念一致性是不可能的,因此需要将大系统分解成若干子系统,每个子系统对应一个领域模型,以实现局部的一致性。文章还详细解释了限界上下文的含义和其与传统方法的不同之处。通过划分限界上下文,可以解决大型系统中的概念一致性问题。另外,文章还介绍了上下文映射的概念,强调了不同上下文中的概念存在映射关系。通过本文,读者可以了解限界上下文的概念及其在软件系统设计中的重要性,以及如何通过限界上下文来解决大型系统中的概念一致性问题。文章内容深入浅出,通过实际案例和对话展示了限界上下文的应用,为读者提供了宝贵的实践经验。 总结:本文深入探讨了领域驱动设计中的限界上下文概念及其应用。通过分解大型系统、维护概念一致性以及上下文映射,读者可以了解如何应用限界上下文来解决大型系统中的概念一致性问题。文章通过实际案例和对话展示了限界上下文的应用,为读者提供了宝贵的实践经验。
《手把手教你落地 DDD》,新⼈⾸单¥59
全部留言(12)
- 最新
- 精选
- 衷培坤有个疑惑:我理解本文案例中项目管理和基础信息管理中的【员工】概念应该是一致的,否则就没必要用map from了吧?
作者回复: 看怎么理解“一致”这个概念。 如果“一致”指的是同一个事物,那么是的,两个上下文中的员工是“一致”的; 如果“一致”指的不仅是同一个事物,而且所有关注点都相同,也就是字段都一样,关系都一样,那么两个上下文的员工是“不一致”的。至少它们需要的字段数量不一样。 DDD里说的“一致”,主要指的是后者。
2023-04-02归属地:北京6 - 燃2)第九课讲过,应该放在适配层,建立一个wrapper做防腐和模型转换,将DTO转为模型内部的DO。原文如下——在六边形架构里,把由外向内的适配器叫做 driven adapter,我把它译作被动适配器;而由内向外的适配器叫做 driving adapter,可以译作主动适配器。准确地说,主动适配器的作用不限于访问数据库,而是访问所有外部资源。这里请求是外部进来的,应该放被动适配器包下
作者回复: 是这么个意思
2023-02-16归属地:浙江4 - 子衿有一点没有特别弄清楚,是不是说,同一个服务下,也可以拆成多个界限上下文,而不一定非要每个界限上下文一个服务 如果是这样的话,我理解,如果界限上下文,在同一个服务中,那么转换逻辑应该放在应用服务,如果不在同一个服务中,转换逻辑应该放在适配器层,当成一个外部访问
作者回复: 是的,一个服务里可以有多个限界上下文。对于这种情况,严格地说,转换逻辑也应该放在适配器,不过也可简化一点,放在应用服务。你可以权衡一下这两者各自的利弊。
2023-02-16归属地:浙江3 - 黑夜看星星请问老师通用域,核心域,支撑域与BC属于多对多关系?
作者回复: 是的
2023-08-30归属地:广东1 - aoe原来当系统规模过大,超过人类认知能力的时候,混乱就自然到来
作者回复: 是的,很多软件设计的问题,看起来是技术问题,其实是人的问题
2023-02-28归属地:浙江1 - py1. 沟通问题,说了半天对不上号。代码问题 同一类实体命名不一样,代码质量差 2. application层
作者回复: application 层是一种可行的思路,后面课程还介绍了一种通过适配器层的思路。
2023-03-09归属地:上海 - 赵晏龙1、竞争性考试的一个考生,在报名的时候、考试的时候、录用的时候都是不同的限界上下文。 2、这个转换我觉得我会在ApplicationService之间调用时以某种形式去做。
作者回复: 第2题,其实有多种方式,后面讲到的一种方法是利用适配器和防腐层。
2023-02-28归属地:湖南 - 邓西2. 适配层
作者回复: 不错
2023-02-27归属地:四川 - 6点无痛早起学习的和尚问题 2: 限定上下文之后,上下文映射是在上下文互相之间访问,应该放在适配器层。属于被动适配器层吧
作者回复: 是的,适配器层比较好
2023-02-27归属地:北京 - tt我是这么想的,界限上下文既然是一个“边界”,跨边界必然要经过接口,所以转换就在接口上,不论接口是不是跨系统
作者回复: 那么,接口属于DDD分层架构的那一层呢?
2023-02-16归属地:北京2