DDD(领域驱动设计)之领域(Domain)
我们来认识对象几个重要的特点:
标识唯一性(Identity):每个实体都具备独一无二的身份标识,这意味着即使两个实体的所有属性完全一致,它们仍然是可以区分的独特存在。正如个人可通过身份证号码来唯一标识一样。
独立性与隔离性:正如我们常强调的“高内聚、低耦合”原则,每个对象都如同一个自给自足的实体,它们各自独立存在。然而,通过精心设计的关联路径,这些对象能够相互连接,形成一个有机的整体。这就好比于人尽管每个人都是独立的个体,拥有自己的思想和生活,但我们通过家庭、朋友、工作等多重纽带,与周遭的人们建立起错综复杂的联系网络。
领域模型(Domain)领域(Domain)子领域(Subdomain)下述举一个简单的电商平台的例子,用来说明域与子域之间的关系:
领域(Domain)
核心域(SubDomain):它是一个独一无二且界定清晰的业务模型,它要求战略性资源投入,并在明确定义的边界内,用心雕琢共通语言以实现极致优化。这一领域被视为组织内的头等大事,是因为它构成了我们与竞争对手差异化的优势基石。鉴于任何组织都无法在所有领域达到顶尖水平,塑造并强化核心领域成为了构建组织核心竞争力的关键途径。这一决策过程深入且复杂,需要对核心领域有透彻的理解,而这离不开坚定的承诺、团队间的紧密合作以及不断的探索尝试。因此,核心领域成为了组织在软件开发中应当重点倾斜和投资的战略方向。
支撑子域(SupportingSubdomain):这部分内容虽与主营业务相关联,但也包含了一定程度的通用性。因此,针对这一领域,采取采购标准解决方案结合适度定制开发的策略显得尤为合适,毕竟市场上难以找到与自身业务完美契合的现成方案。对其的资源投入显然不能等同于核心领域,级别上存在明显差异。考虑到成本效益,采用项目外包的方式来构建这类界限上下文是一种明智选择,这样做有助于避免因误判其战略价值而过度投资。尽管如此,支撑子领域依然举足轻重,它是确保核心领域能成功不可或缺的一环。。
通用子域(GenericSubdomain):是指那些与特定业务关联较小,但却对系统整体运作至关重要的功能模块。它们大多涉及到系统的非功能性需求,例如日志记录、安全控制等。针对这些通用子域的处理,我们拥有多种策略选择:采纳市面上成熟的标准化产品、委托给外部专业团队进行项目开发,或者由企业内部团队自主实施。值得注意的是,相较于核心业务域,我们不必为通用子域配置同等水平的研发资源,其资源配置甚至可能少于支撑子域,这体现了我们在资源分配上的优先级考虑及效率优化。
子域与微服务划分最后下一篇,我将深入探讨DDD领域层的丰富内涵,剖析其中涉及到的关键概念,为您的DDD学习之旅铺设坚实的基石。
本文地址:https://yjs.zzxfkm.com.cn/901570597086.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
友情链接