首页 > 其他分享 >字节面试:领域、子域、核心域、通用域和支撑域怎么划分?

字节面试:领域、子域、核心域、通用域和支撑域怎么划分?

时间:2024-04-15 10:14:27浏览次数:26  
标签:通用 字节 核心 业务 领域 面试 子域 支撑

领域驱动设计(DDD)里面有一堆专业术语,比如领域、子域、核心域、通用域、支撑域等等,听着是不是觉得挺吓人?别怕,我来带你轻松搞懂它们。

如何理解领域和子域?

领域是指一定的业务范围或问题域。在解决业务问题时,DDD 会将业务领域进行细分,将问题范围限定在一定的边界内,在这个边界内建立领域模型,用代码实现这些领域模型,解决相应的业务问题。实际上,核心思想就是分而治之。

领域可以进一步划分为子域,每个子域对应一个更小的问题域或业务范围。

DDD 本质上是一种处理复杂领域的设计方法,它试图通过不断的细分,使业务从复杂变得简单,更容易理解,技术实现也更容易。

就像一个公司里面有不同级别的部门一样。例如,一家互联网创业公司,有产品研发部、市场营销部、客户服务部等。

领域相当于公司中的一个大部门,比如产品研发部。这个部门负责产品的设计与研发,确定公司的主要业务方向和策略。

子域就像是大部门下的小团队,例如在产品开发部下,可能会有产品团队、前端团队、后端团队、测试团队等。每个子域团队专注于更具体的任务,但都是为了支撑上级部门的目标而设立的。

通过这样的分级,公司可以确保每个部门、每个团队甚至每个小组都有明确的责任和目标,让公司的运作更加有序和高效。

同样,在DDD中通过划分领域、子域,可以帮助软件研发团队更好地理解和处理复杂的业务需求,每个层级关注不同的细节,但共同协作完成整个系统的开发。这样不仅提高了开发效率,还能确保软件能够准确地满足业务需求。

如何理解核心域、通用域和支撑域?

在领域划分的过程中,子域可以根据其重要性和功能属性划分为核心域、通用域和支撑域。

核心域决定产品和公司核心竞争力,通用域是被多个子域使用的通用功能域,支撑域是支撑业务的运转而存在,但不能决定产品和公司核心竞争力,也不包含通用功能。

划分核心域、支撑域和通用域的主要目标是聚焦关键事项,通过领域划分,区分不同子域在公司内的重要性,让公司更有效地分配资源和关注度,确保能在激烈的市场竞争中保持优势。

例如,以电商领域为例,常见的子域包括:商品子域、订单子域、用户子域、支付子域、物流子域、客服子域、数据分析子域。

在电商领域,核心域是直接与业务的核心价值和主要收入相关的领域。通常包括:

  • 商品子域:管理商品信息,包括商品展示、分类、搜索和推荐等,是电商平台的基础。
  • 订单子域:处理订单的创建、修改、查询和状态管理等,是完成交易的关键环节。
  • 支付子域:处理支付事务,包括支付方式管理、支付状态跟踪、支付渠道对接等,是完成交易的另一个关键环节。

通用域是支持业务运作的领域,它的能力可以在多个业务领域中使用:

  • 用户子域:管理用户信息,包括用户注册、登录、资料编辑等。虽然用户管理在很多系统中很重要,但在电商系统中,它更多地是支持核心业务流程。

支撑域是指那些为核心域和通用域提供支持的领域,通常涉及基础设施、运营管理、不直接关联收入的领域:

  • 物流子域:处理商品的配送,包括物流公司管理、配送状态跟踪等,是确保商品成功送达消费者的关键环节。
  • 客服子域:提供客户支持,包括咨询、投诉处理等,帮助解决用户在使用过程中遇到的问题。
  • 数据分析子域:分析业务数据,包括用户行为分析、销售数据分析等,支持决策制定和业务优化。

总结

领域的核心思想是将问题域逐级细分,降低业务理解和系统实现的复杂度。

核心域、通用域和支撑域则是子域的进一步分类。核心域是产品和公司的核心竞争力,通用域是被多个子域使用的能力,支撑域是支撑业务运转的领域。这种划分有助于理解和处理复杂的业务需求,提高开发效率,确保软件满足业务需求。

标签:通用,字节,核心,业务,领域,面试,子域,支撑
From: https://www.cnblogs.com/tangshiye/p/18135241

相关文章

  • 翻译|指针很复杂,或者说:字节里究竟有什么?
    本文原作者:RalfJung,原文地址:https://www.ralfj.de/blog/2018/07/24/pointers-and-bytes.html今天夏天,我再次完全使用Rust开发,并致力于(除其他事项外)为Rust/MIR开发一个“内存模型”。不过,在谈论我今年的想法之前,我终于要花点时间打破“指针很简单:他们只是一些整数”的神话了。......
  • LeetCode 面试经典150题---006
    玩了一天多,两天没写了,下次绝对不摆了(最多摆一天)。####42.接雨水给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。n==height.length1<=n<=2*1040<=height[i]<=105不用头想都知道这个题肯定只能用线性复杂度做,至于怎......
  • 上海携程java高级面试题(一)
    一、JVM加载Class文件的原理机制?在面试java工程师的时候,这道题经常被问到,故需特别注意。Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式......
  • 面试官:实战中用过CountDownLatch吗?详细说一说,我:啊这
    写在开头在很多的面经中都看到过提问CountDownLatch的问题,正好我们最近也在梳理学习AQS(抽象队列同步器),而CountDownLatch又是其中典型的代表,我们今天就继续来学一下这个同步工具类!CountDownLatch有何作用?我们知道AQS是专属于构造锁和同步器的一个抽象工具类,基于它Java构造出了......
  • C# 面试 wpf .net 面试准备
    杂项介绍下自己时间一分半以内提炼自身优点,优势、亮点、基本情况言简意赅、语言精炼,控制时间和应聘岗位相关的经历(和招聘要求相关)为什么能够胜任岗位为什么要应聘该岗位~求职动机不能只介绍学校和专业,注意:重点介绍满足岗位要求的三个优势和亮点。表现出对岗位的理解和......
  • Python面试
    Py生成器send的应用场景Py如何动态创建类socket如何解决粘包socket断点续传如何解决进程间通讯有哪些方式如何排查数据库慢的原因如何优化慢查询语甸ngnix为何单线程可数万并发?前端sonp跨域方案原理Python服务热更新方案......
  • 【面试准备】测试策略—— KIMI & GPT3.5
    附上两位老师的回答KIMIUser:mysql迁移到oracledatabase,作为测试经理,应该制定怎样的测试策略?Kimi:作为测试经理,制定一个全面的测试策略是确保MySQL迁移到OracleDatabase成功的关键。以下是一些关键的测试策略和考虑因素:1.需求分析和规划理解业务需求:与利益相关者沟通,了......
  • 大公司的Java面试题集
    找工作要面试,有面试就有对付面试的办法。以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM,E*Trade,Siebel,Motorola,SUN, 以及其它大小公司。面试是没什么道理可讲的,它的题目有的不合情理、脱离实际。有在纸上写的,有当面考你的,也有在电话里问的,给你IDE的......
  • [Java SE] 经典问题:超出Java Long型(8字节/64位)的二进制比特流数据如何进行大数的数
    0问题描述经典问题:超出JavaLong型(8字节/64位)的二进制比特流数据如何进行大数的数值计算?近期工作上遇到了这个问题:需要将一个无符号数、且位长>=8字节(等于8字节时,首位bit为1,其他bit不全为0)的二进制字符串转为Java****对象(原始整数),进行整型运算、或浮点数运算浮点运算......
  • 【面试准备】窗口函数学习
    昨天面试,技术问的比较简单,甚至没有问算法。业务的话,应该是我没有过面的主要原因,后续展开分析#技术:唯一难倒我的是一个sql##题目:员工表找出每个部门员工年龄最大的两个员工。在MySQL中,你可以使用窗口函数来查询每个部门年龄最大的两名员工。MySQL8.0及以上版本支持窗口函数。以......