看了殷浩的 DDD 文章,觉得还挺好的,想问一下各位怎么看待 DDD ?
![]() | 1 libook 2021-11-17 10:15:13 +08:00 感觉这玩意还在炒作期,等到冷静期再说。 |
2 Rwing 2021-11-17 10:16:38 +08:00 DDD 落地还是挺多的,几年前就比较热了。 曾经实操过一个,感觉不错,但是前期比较花时间 |
3 xwayway 2021-11-17 10:21:20 +08:00 思想很重要,落地是另外一回事,符合自身的一套实践才是最有价值的。 |
![]() | 4 3country OP 思想觉得是不错,但是感觉站在公司的角度一般不会这么搞。。。毕竟现在还没有成熟 |
![]() | 6 RealJacob 2021-11-17 10:24:45 +08:00 做过的几个项目都是 DDD ,基本上大组里的项目也都是 DDD 思想了,但是领域到底多合理,也说不上来,感觉领域层设计也没有特别缜密的设计。用起来倒是感觉也还不错 |
![]() | 7 chendy 2021-11-17 10:35:03 +08:00 值得学习和参考 落地挺难的,需要所有人(包括客户)的水平都到位,而且资源充足 |
8 meteor957 2021-11-17 10:36:19 +08:00 自己玩玩还行,在公司推就算了 |
10 Rwing 2021-11-17 10:54:26 +08:00 ![]() @3country 公司项目,ddd 其实成熟好多年了,.NET 领域挺多的,主要是公司愿不愿意在前期付出较多的成本,再者项目够不够大 |
11 Jooooooooo 2021-11-17 10:56:43 +08:00 ddd 在于思路不在于怎么编码. |
![]() | 12 guanhui07 2021-11-17 11:00:14 +08:00 同意 需要所有人的水平都到位 不然挺难落地 |
![]() | 13 ericgui 2021-11-17 11:02:02 +08:00 文章呢? |
![]() | 15 soupu626 2021-11-17 11:17:12 +08:00 DDD 要一个能说上话的,思路清晰的好架构师,前期花时间分析规划,不然硬套只能徒增复杂度 |
![]() | 16 timethinker 2021-11-17 11:20:40 +08:00 ![]() DDD 里面确实有一系列指导程序编码的战术设计,但更多的是强调概念统一,减少翻译的层数,使得讨论的问题跟编码设计都能够一一对应上。 举个例子,就像一个游戏,五六个人站成一列,最后的那个人在前面那个人的背上写字,然后依次传递信息到第一个人上。人数越多,那么错误的概率也就越大。如果确实有人连字都不认识的话,那么即便只有两三个人也会导致这个问题。 DDD 就是告诉你,在一个建模的框架范围内,大家都具备这些框架的基础理论知识,然后基于这些建模框架构建出一套人人都能理解的模型,使其高度契合产品的业务需求,避免产生概念 /模型不一致的情况。 |
![]() | 17 cxe2v 2021-11-17 11:21:13 +08:00 ![]() 楼上说还在炒作期的是不是有点落后了,我 14 年写代码时就在用 DDD 了,还是个小公司 |
18 h82258652 2021-11-17 11:22:09 +08:00 难,没有领域专家。开发连业务流程都是懵的。 直接对着原型糊三层架构完事。 |
19 jackLoveDota 2021-11-17 11:53:01 +08:00 git 上有没有 ddd 练手的项目推荐下 |
20 2i2Re2PLMaDnghL 2021-11-17 11:55:44 +08:00 如果业务以中文沟通,那么变量函数 URL 用中文命名就实现了一半的 DDD |
21 q474818917 2021-11-17 12:52:58 +08:00 使用 ddd 指导业务开发,而不能照搬 ddd 模式去写代码 |
22 lian3204321 2021-11-17 13:22:15 +08:00 ddd 在我的理解里面就是在拆分和分析业务时非常有用,具体的代码实现,按照组内规范去做就好了。 |
23 fkdog 2021-11-17 13:47:25 +08:00 这东西跟 restful 一样,本身属于是一种架构设计风格。 他们最大的缺陷就是在于想象很美好,现实很骨感。 一旦落地到实际应用里,真按照规范来操作反而会异常的别扭。 所以我的建议是对这些规范适当借鉴吸取,而非全盘照搬。 我很讨厌那些没敲几年代码水平一般,但是整天把 restful 规范挂嘴上的人,一天到晚没事干跑到版面争论业务 code 和 http status code 要不要分开的问题。《狗头》 |
![]() | 24 kop1989 2021-11-17 13:59:17 +08:00 别的不说。这篇文档阅读性太差。 这文档光引言就说了 DDD13 次。通篇提及“DDD”21 次,也没解释什么是 DDD 。甚至连 DDD 的全称是什么都没写过。 让人心理极度不适。 |
25 Ib3b 2021-11-17 14:15:36 +08:00 ddd 不是老生常谈了吗,实际上用的还是 dao 、service 那套 |
26 LemonK 2021-11-17 14:16:33 +08:00 思想早就普遍应用了吧。完整规范太重了,全部照搬不合适,中小系统适当参考还不错。 |
![]() | 27 Brentwans 2021-11-17 14:28:34 +08:00 ![]() 落地了 Deadline-Driven Development 挺好的 |
![]() | 28 min 2021-11-17 14:52:45 +08:00 真落地的话,对开发团队和架构师的要求都很高,这点成本无脑搞 java 微服务产出更高不香么? |
![]() | 29 SmiteChow 2021-11-17 15:3:17 +08:00 ![]() 老瓶装新酒,DDD 往大了说山头主义,往小了说 OOP 里的封装而已。TDD 才是各位应该实践的真知。 |
![]() | 30 lasuar 2021-11-17 15:39:51 +08:00 用过 PDD |
![]() | 31 xhinliang 2021-11-17 16:01:11 +08:00 好多 DDD 教徒,我工作中接触过几个,发现都是形式大于内容的货色... |
![]() | 32 FreeEx 2021-11-17 16:11:13 +08:00 python 看了沉默,golang 听了摇头,php 直呼牛逼。 |
![]() | 33 ericls 2021-11-17 16:13:59 +08:00 via iPhone 解决什么问题 你有没有遇到同样问题? |
![]() | 34 cassyfar 2021-11-17 16:37:09 +08:00 别说落地。。。现在都只是在网上听说过。感觉根本就不是门槛问题,主要这东西学院味太浓,工业界不实用。 |
35 hailiang88 2021-11-17 16:49:02 +08:00 论如何写出优雅的业务代码 |
36 changz 2021-11-17 17:21:08 +08:00 加个层改个名字,DDD Done /狗头 |
37 locochen 2021-11-17 17:31:17 +08:00 via iPhone 云山新项目都走 ddd 了 |
![]() | 38 matrix67 2021-11-17 17:37:18 +08:00 |
39 flighter 2021-11-17 18:01:39 +08:00 新项目用 DDD , 老项目在往 DDD 重构中, 项目前期比较花时间,部分项目已落地,不能照搬 ddd 模式吧,按实际具体业务 |
![]() | 40 ktqFDx9m2Bvfq3y4 2021-11-17 18:04:41 +08:00 via iPhone @flighter #39 对的没必要照搬,就像 restful 。这个只要做到了业务拆清楚就已经帮助很多了。 |
![]() | 41 pengtdyd 2021-11-17 18:44:39 +08:00 国内大部分项目都是一锤子买卖,用 DDD 怕不是自己玩死自己,在国内做项目快速开发比较重要,然后钱收到了,谁爱维护谁维护去! |
![]() | 42 xuanbg 2021-11-17 19:37:37 +08:00 没有,这玩意思想是好的,但没法照本宣科去落地。当然,就领域的划分而言,用在微服务上面是极好的。 |
![]() | 43 snw 2021-11-17 19:41:07 +08:00 via Android .NET 看了一脸懵逼,这不是教科书式的常规操作吗,有啥特别的... |
![]() | 44 fuxkcsdn 2021-11-18 01:16:34 +08:00 上家公司有个项目组用 DDD ,开发了 3 年才成型(期间迭代了 3 个大版本,3 年是那个项目 leader 自己说的),好不容易熬出头了,疫情来了,公司(旅游相关)快倒闭了 |
![]() | 45 ericgui 2021-11-18 01:56:54 +08:00 如果你一个项目的寿命比超过 3 年,你搞什么 DDD 中国民营企业平均寿命 3.7 年,中小企业平均寿命 2.5 年 你们感受一下 |
![]() | 46 nicebird 2021-11-18 08:48:37 +08:00 说实话没太懂 DDD |
47 docker2018 2021-11-18 09:29:57 +08:00 我司有个项目组用的阿里巴巴的 DDD 框架 COLA 落地了项目了,整的还挺好的。 |
48 zydxt 2021-11-18 09:42:27 +08:00 ![]() DDD 和六边形架构要区分清楚啊,文章中这个上来就是代码一定不是 DDD 。 DDD 要梳理业务,划分上下文、聚合(一般是事件风暴法),最后得到一个业务模型,到这一步为止一行代码都没有。之后是用代码实现这个模型,六边形是常见但不是唯一的实现架构。 DDD 的核心就是这个建模过程,没有建模就上代码属于无源之水 |
![]() | 49 RubyJack 2021-11-18 10:17:57 +08:00 oop 搞明白就行了 |
![]() | 50 byte10 2021-11-18 13:42:42 +08:00 @Jooooooooo 好家伙,你搞明白了。领域编程,其实就是在乎思想。由于我们写方法 /函数 基本一定是 过程化编程,那么就会习惯性导致整个系统项目都是过程化编程,所以要整个项目都是面向对象编程其实很难。 @xhinliang 不仅仅是形式,太菜了,mad 。公司也有一些这样的人,也是有。 我一般推荐 ddd 在微服务上践行,单个服务就是一个领域,不管你用啥编程模型和语言。但是整个微服务作为一个系统,应该要符合 DDD 的思想,就是一个 DDD 设计出来的系统,符合 DDD 的基本规则规范。 |
![]() | 51 hst001 2021-11-18 13:50:08 +08:00 via Android DDD 落地很难,不理解 DDD 思想的人去看 DDD 架构的代码会觉得很多无法理解的奇怪行为,实际操作起来也确实比较麻烦和费事,好处是更新维护心理负担少了。 |
![]() | 52 timethinker 2021-11-18 15:20:24 +08:00 |
53 joeymao 2021-11-18 16:25:42 +08:00 DDD 开发差不多两年,目录结构照 ddd 模式套,实际上还是面相过程,仅仅做到的就是把 domian 贫血模型,改成充血,service 业务放入 domain 处理。 |
![]() | 55 BQsummer 2021-11-18 19:41:42 +08:00 @docker2018 cola 一年更新 4 个大版本,ali 有项目用这玩意儿我就倒立洗头 |
![]() | 56 risky 2021-11-18 22:27:24 +08:00 核心是要紧密贴合业务, 统一语言, 做专家系统 |
![]() | 57 fuxkcsdn 2021-11-19 01:01:07 +08:00 @qwe520liao 不是 |
58 docker2018 2021-11-19 09:56:17 +08:00 @BQsummer 这就不要杠了,人家问的是有落地与否,我只是说一下我司是落地了的。 |
59 dongsoso 2021-11-19 17:54:42 +08:00 ![]() 目前我司正处于使用 DDD 完全重构所有服务的尾声。附一篇个人觉得好的文章 https://mp.weixin.qq.com/s/PjNc7YLKT5JX_Obg2815Bg |