谁有 ddd(领域驱动设计的相关案例项目)?

2022-09-16 15:32:15 +08:00
 brucetao2009

最近想用 ddd 的思想去实践项目的开发,总觉得不得门路,想通过一个合适的学习的项目案例来学习一下,各位大哥有无相关的案例供学习?

2900 次点击
所在节点    程序员
13 条回复
nothingistrue
2022-09-16 15:41:50 +08:00
不公开的实践项目会很多,但是公开并且规模还足够到可以学习的案例项目,不可能有,别找了。

另一方面,DDD 不只是编程思想,它是涉及需求、交付、开发、测试等全方面的开发思想,如果不能在客户、产品、开发之间形成通用语言的话,那也是用不了的。你可以拿公司的非紧急项目给自己练手用,不要想用 DDD 单方面去解决公司的项目开发困境。
ExiFeng
2022-09-16 15:44:02 +08:00
周志明的凤凰架构
thinkershare
2022-09-16 16:29:20 +08:00
DDD 是一套方案, 主要是为深入理解你的业务提供帮助.如果你没有复杂的业务, 或者你的业务天天都在变化, 那 DDD 没啥用.
DDD 在简单的项目上看不出啥用途, 而一旦足够复杂, 现在都是以 DDD 等作为指导思想做微服务切分了. 然后要解决的问题就变成了分布式要解决的问题了.
q474818917
2022-09-16 16:32:13 +08:00
ddd 是一个过程,而不是你牟足了劲憋出来了最终代码
lix7
2022-09-16 16:38:32 +08:00
这个东西比较抽象,属于道层面的东西了,术层面的东西很少,能参考的也有限,而且很多战术和编码实现是有冲突的
ql562482472
2022-09-16 16:40:27 +08:00
@nothingistrue 想了解一下 您说不公开的实践项目很多,是有什么信息来源吗?
alen0206
2022-09-16 16:47:02 +08:00
cola 架构的源码里面有一些简单的案例可以学习下。
aviator
2022-09-16 17:04:45 +08:00
@ExiFeng 哪一章是的?之前大致浏览了下,没记得有 ddd 案例啊
ExiFeng
2022-09-16 17:08:09 +08:00
yao177
2022-09-16 17:59:52 +08:00
@ql562482472 应该是大厂有不少组都在做这个,但具体怎么样不好说,我经历过的还行
bthulu
2022-09-16 18:25:19 +08:00
这东西啊, 就跟元宇宙一个意思, 大家都在吹, 就是看不到
powerman
2022-09-17 01:14:34 +08:00
没什么卵用,软件开发的根本问题还是 人月神话指出的那样,

复杂性与概念完整性,

别的系统中很多复杂性不是根本属性,可以剔除掉,只要抓住主要模型就行,例如我们初中学习的物理知识,很多物理题目都是简化后的模型,最常见的就是刚体模型,刚体假设所有系统中的物体都是不会发生形变的,这样的模型系统中就排除了物体形变带来的复杂性

但是软件这东西,复杂性是根本属性,而且复杂性通常又分两种,一种是业务逻辑本身的复杂性,另一种是开发人员人为带来的复杂性,例如复制一段代码,你接手改的时候 莫名其妙漏了一处,这是人为带来的复杂性,

通常应对前者的解决办法就是拆分,拆分的越细就越容易理解,后者基本上只能靠高素质的开发人员,遇到水平低下的,甚至乱搞的,对业内最佳实践不屑一顾的,你只能自求多福,像我最近跟别的部门对接,参数都是 string int ,java interface 一点约束都没有,能用 string 绝对不 enum ,还有提供接口任何时候都不报错,全部直接给你返回 200 ,接口里面几个种参数组合跟各种功能,然后让你去查日志对接,美名其曰 考虑生产性能,我们此处不做校验逻辑,只要开发阶段大家代码调试通过即可。

还有自己又实现了一套本地缓存的,没有任何运维工具跟监控全靠手工维护,线上发布,运维压力直线上升,

DDD 只是可以帮助你去理解概念的完整性,并没有办法让你做的更好,
因为目前国内的情况就是 大量的人都是从事历史悠久的事务脚本开发,模块化都没做好,
何谈用 DDD 来维护概念完整性,我有的时候跟别人讲,你别复制代码,这是给别人在埋雷,
听都没人听,国内大环境的情况下,在这些人为带来的复杂性未得到根治前,
使用 DDD 去管理因为业务本身逻辑带来的复杂性,可以说是毫无意义。
aviator
2022-09-17 12:56:57 +08:00
@ExiFeng ok ,感谢感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/880596

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX