求“领域驱动设计“ Java 项目教程?已全网搜索无果

2021-04-05 14:55:31 +08:00
 shubiao

听闻了 DDD(领域驱动)的牛,想实践一下。

已看完《领域驱动设计精粹》、看了 50%《实现领域驱动设计》,手头上还有《领域驱动设计》

想找个从搭建项目、分包、建领域模型的视频项目教程学一下真实的编码(不是讲 PPT 概念的),最好是 java

已在 B 站、google 、网易课堂、慕课、腾讯课堂等搜索后无果,这一块国内是不是还属于"蓝海",教人做项目的视频已经一大堆了

在 github 上找到了一个可能符合预期的,张逸大佬的收费 199,有点小贵。 https://github.com/agiledon/eas-ddd

5272 次点击
所在节点    Java
28 条回复
zwx327634
2021-04-05 15:13:10 +08:00
极客时间也有 DDD,但是我没看过
shubiao
2021-04-05 15:52:32 +08:00
@zwx327634 去看了一下目录,应该也是概念大于代码的。不过真是奇怪,有 1w+的人学习,DDD 这么火嘛,在网上也没很大的“声音”啊
Jooooooooo
2021-04-05 16:00:22 +08:00
DDD 是业务驱动的, 大公司的复杂业务才会走到这一步.
zjlin1984
2021-04-05 16:25:12 +08:00
没必要刻意去追求 DDD 吧,解决实际问题就好。
agdhole
2021-04-05 16:58:29 +08:00
接触的项目里面没有一个项目的规模够得上 DDD
shubiao
2021-04-05 17:03:45 +08:00
@zjlin1984 看了下 DDD 的概念还是非常好的,在解决项目的复杂性 /不可维护性问题
wshcdr
2021-04-05 17:05:58 +08:00
看那个 ddd_cargo 啊,
shubiao
2021-04-05 17:06:36 +08:00
@agdhole 我看了这几天了,理论上来说只要是个企业级的项目,就值得上 DDD
passerbytiny
2021-04-05 18:15:39 +08:00
再认真看一下《实现领域驱动设计》,你就会发现不可能有可以模仿着做的项目教程。DDD 是一种设计思路,并不是方法学。《实现领域驱动设计》本身已经在用真实案例在做演示了,但是你却没法照着模仿,因为业务不一样。
passerbytiny
2021-04-05 18:19:11 +08:00
另外提醒一下,《实现领域驱动设计》作者的主语言是 .NET ,虽然有目的的用 Java 做演示,但是在有些编码习惯上是有出入的。
shubiao
2021-04-05 20:20:04 +08:00
@wshcdr 嗯嗯,又去翻了翻 github 看到了。阿里的这个系列也能落地,https://developer.aliyun.com/article/716908
shubiao
2021-04-05 20:23:45 +08:00
@passerbytiny 嗯嗯 谢谢。话说看《 IDDD 》真的会一不小心就陷入技术细节里面~ 我是想找一个师傅领进门的项目,把理论实践一下。找到了一两个可以落地的项目了,虽然还是没有详细讲解。链接我上一条贴了,就不重复贴了。
hantsy
2021-04-05 21:05:58 +08:00
Eric 的 DDD 原书有写代码地址,原来在 sf.net 后也搬到 Github: https://github.com/citerus/dddsample-core/

实话说,国内的能用 DDD 来做项目的,真的少,可以在 V 站问一下,大部分都是会认为不适合,脱离不了数据库思维,做毛线 DDD 。
chendy
2021-04-05 21:20:23 +08:00
DDD 需要强力专业团,至少需要水平高一些的产品经理,否则就是瞎玩然后玩死
hantsy
2021-04-05 21:31:14 +08:00
上面链接中的 DDD 原书例子(Cargotracker)是用 SpringBoot,Hibernate 写。

其实这个例子,已经被重写成各种版本(不同的语言,框架),Github 上大把。

Eclipse EE4J 官方 Jakarta EE(Java EE 继承者) 也维护了一个 JakartaEE 版本的 CargoTracker 。一个程序熟悉所有的 Java EE 规范(之后再写 Spring 也是不费用吹灰之力),熟悉 DDD 设计理念(完全抛弃数据为中心的设计)。

相比成熟规范和开源框架 Spring,Hibernate 等,这个完全是应用级别,难度系数极低。

https://github.com/eclipse-ee4j/cargotracker

我的 Fork:

https://github.com/hantsy/cargotracker
charlie21
2021-04-05 21:34:57 +08:00
hantsy
2021-04-05 21:35:15 +08:00
@shubiao 指望一个例子搞定 DDD,不可能,DDD 更多的是实践经验,不是一套死模式。如果你软件开发多年,时常会思考怎么去实现更好,我想经过多年经验下来,你根本就不需要 DDD 来指导了。相反,如果仅仅是为了完成任务,跳出结果 ,就是工作 10 年 20 年,看再多的 DDD 书也不会有用。
hantsy
2021-04-05 21:39:07 +08:00
@chendy 我实在不懂国内的产品经理是做什么的,都是一些无脑的人瞎 JB 想问题, 然后就是要实现。
而 DDD 需要的是 Domain Expert,需要将问题域的来龙去脉分析的清清楚楚(边界,实体,领域事件等),国内的公司好像根本就没有这个职位。
crclz
2021-04-05 22:10:46 +08:00
回答楼主:

thoughtworks 的一个 Java DDD 范例项目:
https://github.com/e-commerce-sample/ecommerce-order-service

微软官方的 ddd 教程项目(.Net ):
https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/
https://github.com/dotnet-architecture/eShopOnContainers
https://github.com/dotnet-architecture/eShopOnWeb
虽然是.Net ,但是 AspNet 和 SpringBoot 差别不大)

回复楼上那些说 DDD 不实际、DDD 只适合大公司的复杂业务等说法:
CRUD Boy 无法理解 DDD 属正常现象,但是如果轻视 DDD,那就注定只能当一个低级的 CRUD Boy 。
zjlin1984
2021-04-06 08:30:19 +08:00
概念好,并一定就是说,要那么做,毕竟只是概念。
开发过程完全可以忽略这个概念,实事求是解决问题。

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

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

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

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

© 2021 V2EX