最近面试有被问到 DDD ,个人对这个不是很理解,应该要从什么方向去了解这个东西,然后回答的时候应该答到哪些点呢?
1
810975 2023-03-23 17:13:45 +08:00
DDD 的关键点,如何落地,落地阻力,落地实践,如何细分领域,怎么判断哪些是核心域 哪些是支撑域 哪些是通用域,如何分层,每层都改做什么,什么是充血模型,充血模型与贫血模型的区别是什么。
以我了解的 DDD 和落地经验,目前国内的市场很难落地 DDD 首先 DDD 的开发效率完全没有敏捷开发。 其次 DDD 最核心的优势是 可以通过定义通用语言实现产品跟技术无障碍沟通,不会出现产品定义了需求,开发出来的结果与产品的需求不一致,也可以要求产品定义需求的时候,按照领域来划分需求 尽量少的出现 由于某个需求太扯淡 导致模型堆屎 单从代码角度 其实差别并不大,充血模型可以稍微借鉴一下,代码分层跟现在区别也不大 ,领域的定义从概念上讲更多的是根据业务去定义,也并不是一个领域对应一个项目这么简单的对应。 我目前呆过的公司 有几家都试着落地 DDD 从根本上讲 都不得善终 |
2
urnoob 2023-03-23 17:29:37 +08:00
TDD 已抬走,下一个抬走的会是 DDD 吗?
|
3
waytodelay OP @810975 感谢,大概有一个思路了。麻烦大佬帮忙看下我理解的对不对?
1. 产品和研发都需要有 DDD 的思维,就是业务领域划分的时候模型尽量少重叠,各个领域尽量是专精 2. 微服务拆分的时候不是单单一个服务就是一个业务领域,而是灵活变动 3. 代码层面,要下沉通用方法,分层要明确每一层大概是做什么,业务层和数据层要明确 |
4
810975 2023-03-24 10:00:30 +08:00
@waytodelay 差不多是这个意思吧 我也是个人理解 看了一些书 都很飘渺 没有落地实践。。 我觉得不太适合目前的开发环境。。就没再深入研究了
|