DDD 是不是已经死了? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容 #Wrapper { background-color: #e2e2e2; background-image: url("/static/img/shadow_light.png"), url("//cdn.v2ex.com/assets/bgs/circuit.png"); background-repeat: repeat-x, repeat-x; } #Wrapper.Night { background-color: #1f2e3d; background-image: url("/static/img/shadow.png"), url("//cdn.v2ex.com/assets/bgs/circuit_night.png"); background-repeat: repeat-x, repeat-x; background-size: 20px 20px, 162.5px 162.5px; }
xing4576
V2EX    程序员

DDD 是不是已经死了?

  •  
  •   xing4576 5 小时 28 分钟前 4652 次点击

    最近在重构老项目,想问一下现在还有没有必要用 DDD 那套来重构呢? go 语言加 DDD 配合 ai 变成会不会有意想不到的效果?

    第 1 条附言    4 小时 9 分钟前
    感觉好像确实没必要为了复杂而复杂,虽然 ai 可以生成很多东西
    47 条回复    2026-03-20 15:04:53 +08:00
    imesrdfi8dzs
        1
    imesrdfi8dzs  
       5 小时 17 分钟前
    最近都是 AI AI AI,好久没听过 DDD 一词了.
    gy0624ww
        2
    gy0624ww  
       5 小时 10 分钟前
    有 AI 应该利好 DDD ,TDD 这种
    因为麻烦的测试用例不用你写了,DDD 分层也不用你写了
    Desdemor
        3
    Desdemor  
       5 小时 7 分钟前
    这是一种架构方式啊,跟 ai 有啥关系,这俩可以重合。ai 做好 TDD 是真的方便
    weixind
        4
    weixind  
       5 小时 2 分钟前
    我之前的看法是:“领域优先( Domain-First )+ 自包含( Self-contained )的组织方式大概率会取代传统分层架构。”

    现阶段的 AI 生产力下,这个演进方向应该没啥问题,AI 再快速发展一两年,可能就不太适用了。
    sky3hao9
        5
    sky3hao9  
       5 小时 2 分钟前
    我现在认为 DDD 是一种编程思想, 跟有没有 AI 没多大关系, 会的仍然会使用, 我个人来说开发个新东西, 会先从实体和领域角度考虑, 按照业务扩展领域方法, 所依赖的都由接口约定. 最后去实现这些接口, 最后才会到建表,字段这些东西. 我觉得这种开发模式非常清爽
    liuzimin
        6
    liuzimin  
       5 小时 2 分钟前
    我还以为是恶魔的破坏
    hrzlvn
        7
    hrzlvn  
       5 小时 0 分钟前
    ddd 反而是最好的方案吧,面向过程贫血的代码以后都会是个坑,可惜你要用 go ,否则有个 tocoai 原生支持 ddd ,不过他们只出了 java 版
    rocmax
        8
    rocmax  
       4 小时 59 分钟前 via Android
    怎么可能利好 ai 编程,ddd 一堆中间层得给 ai 搞迷糊了,运行时注入的框架都没法跳转到定义你让 ai 怎么理解代码。
    lujiaosama
        9
    lujiaosama  
       4 小时 58 分钟前
    我也在重构项目, 拷打了 AI N 遍之后, AI 让我用 分层架构 + 轻量 DDD. 复杂业务建模使用轻量 DDD. 纯 MVC 太容易整出一坨胖 SERVICE 了.
    hrzlvn
        10
    hrzlvn  
       4 小时 56 分钟前
    @rocmax 看项目规模,太小了用啥都一样,有些架构不是为了当天的易读,不过的确也没有免费的架构,都是有代价的
    midsolo
        11
    midsolo  
       4 小时 46 分钟前
    正在用公司内部的 DDD 框架:"菱形架构 + 南北网关 + case 编排 + 全局适配",一个对象在不同的层级被转来转去,复杂的业务流程中要复制十几个,AI 都被绕晕了
    putaozhenhaochi
        12
    putaozhenhaochi  
       4 小时 35 分钟前
    就没活过
    zhuanggu
        13
    zhuanggu  
       4 小时 33 分钟前
    现在是 SDD
    Ketteiron
        14
    Ketteiron  
       4 小时 29 分钟前
    在 java 之外的语言强行上 DDD 只能说是没事找事嫌业务不够复杂。
    vincentWdp
        15
    vincentWdp  
       4 小时 28 分钟前
    我老了, 天然排斥没见过的模式, 所以我认为 ddd 就没活过
    Nzelites
        16
    Nzelites  
       4 小时 27 分钟前
    ddd 这种罗里吧嗦的模式最适合 ai 去生了 不是说 ddd 不好 是虽然维护的时候好很多 但是写起来确实麻烦 心智负担重一些
    jackOff
        17
    jackOff  
       4 小时 25 分钟前
    现在老大要求禁止过度设计模式,意思就是代码不能写太抽象,必须新人能看懂,啥意思大家都明白
    lologame
        18
    lologame  
       4 小时 24 分钟前
    DDD 本身就是伪科学,倒果为因,实现驱动设计,纯扯淡
    xing4576
        19
    xing4576  
    OP
       4 小时 10 分钟前
    @Nzelites 我也感觉是这样的
    junwind
        20
    junwind  
       4 小时 10 分钟前
    @jackOff 禁止你们防御性编程。
    xing4576
        21
    xing4576  
    OP
       4 小时 8 分钟前
    @lujiaosama 现在的业务就是 mvc ,service 一大坨
    arthas2234
        22
    arthas2234  
       4 小时 6 分钟前
    谁说 DDD 不适配 AI 的,我让 AI 帮我加个字段,好家伙从 client 层一直扫到 infrastructure 层,花了我不少 token ,AI 厂家笑嘻了。建议所有厂家都给自家 AI 训练成用 DDD 开发
    leegradyllljjjj
        23
    leegradyllljjjj  
       4 小时 4 分钟前 via iPhone
    DDD 本来就是为微服务设计的,微服务诞生以后 DDD 才发挥出真正的意义,之前一直都是一种建模工具,对实际的架构设计屁用没有
    beiyanpiki
        24
    beiyanpiki  
       3 小时 45 分钟前
    AI 还是 DDD 好,MVC 一大坨 service 找上下文都困难
    luobingit
        25
    luobingit  
       3 小时 45 分钟前
    只知道现在有 AI 后 岗位 JD 上面基本没出现 DDD 了 都是 vibe coding
    zhady009
        26
    zhady009  
       3 小时 45 分钟前
    KISS 模块内聚才是王道,DDD 纯给大家找麻烦
    darksword21
        27
    darksword21  
    PRO
       3 小时 30 分钟前
    面条代码才是最好的!
    bololobo
        28
    bololobo  
       3 小时 29 分钟前
    https://soulhacker.me/posts/good-code/


    通过以上的分析,我们可以得到如下判断:
    软件开发的基本范式还没有大的变化,软件工程中的核心问题(渐进式定义、复杂度控制、测试与验证)依然是我们面对的主要挑战。
    本文前半部分的定义和定理体系仍然成立,只在一些具体细节上需要进行新的解读。
    进入 Coding Agent 时代后,通过良好的代码架构来控制复杂度仍然非常重要,仍是最具效率的最佳实践;代码可读性和文档化的要求甚至高于过去;而对软件系统的测试与验证是亟待创新与突破的领域。
    如此看来,在这个新的时代,好代码的标准并没有太大的变化;未来可能最大的变化是通过更可靠、高效的测试验证系统取代细致的代码评审,从而可以在软件系统总体复杂度受控的前提下忽略对代码细节的追求。


    既然 "良好的代码架构来控制复杂度仍然非常重要", 那么达成这一目的的 DDD 自然也仍然非常重要.
    thtznet
        29
    thtznet  
       3 小时 19 分钟前
    个人观点,AI 的最终形态将覆盖掉任何的设计模式。因为设计模式的产生本身就是为了人能更好的编写和测试代码,而 AI 对解决问题的代替作用,将逐步迁移到人类只需要关注 AI 解决问题的结果,中间过程,包括所谓的设计模式,都无关紧要,除非某些解决问题的过程中,仍然需要有人工协作,才可能保留一部分所谓的"设计模式"。
    kakki
        30
    kakki  
       2 小时 44 分钟前
    真以为 AI 不需要抽象层啊?直接写二进制.
    Gilfoyle26
        31
    Gilfoyle26  
       2 小时 31 分钟前
    有 Ai 了,还要什么 DDD ,直接 Ai 一把梭,早下班不好吗
    karmaisbitch
        32
    karmaisbitch  
       1 小时 58 分钟前
    凉了
    momo2789
        33
    momo2789  
       1 小时 49 分钟前
    感觉从来没活过,领域有很多形式可以表达
    doodle123
        34
    doodle123  
       1 小时 47 分钟前 via iPhone
    @jackOff 增加每个人的可替代性
    lmmlwen
        35
    lmmlwen  
       1 小时 45 分钟前
    DDD 和微服务已经被时代所淘汰
    doodle123
        36
    doodle123  
       1 小时 45 分钟前 via iPhone
    DDD 是为人服务的,不是为机器服务的,以后 ai 主导编程,人类参与变少,自然也不需要 DDD 了
    irrigate2554
        37
    irrigate2554  
       1 小时 42 分钟前
    感觉 TDD 还挺适配 AI 的,DDD 就拉到吧,本来就没啥用的东西。
    rossroma
        38
    rossroma  
       1 小时 37 分钟前
    现在应该是 ADD ,AI Driven Design
    lujiaxing
        39
    lujiaxing  
       1 小时 33 分钟前
    我个人认为是的. 什么 D 不 D 的, 在 AI 面前都属于废话. AI 生成代码就是突出一个糙猛快. 而且我们之所以用各种那个设计模式各种设计思想, 归根结底还是方便人类去维护. 但是现在都是 AI 去搞了, 屎不屎山的关我开发屁事? 屎山也是 AI 去爬不是我爬. 我管你那么多呢. AI 想怎么写就怎么写, 怎么快怎么来. 只要能实现功能, 把所有代码都写在一个文件里都 OK.
    JoeSmith
        40
    JoeSmith  
       1 小时 8 分钟前
    还以为你说的是这个古董 https://www.gnu.org/software/ddd/

    不过人家古董 2026 年还在更新
    zhuhaohenry
        41
    zhuhaohenry  
       55 分钟前
    DDD 对于 AI 有天然的优势啊, 层级清晰,足够单一职责,有上下文约束。AI 可以用极少的上下文就知道怎么去修改代码了,再加上 TDD, 就是绝配。
    SoviaPhilo
        42
    SoviaPhilo  
       51 分钟前
    除非做好了每个迭代重新全量生成的准备,否则 DDD 应该还是现在 LLM context length 有限的情况下的一个比较可行的解决方案。至于什么时候更新一个版本就全量重做, 我估计还很远,因为这个 token 还蛮贵的,多的 token 多写一些稳定的业务不行吗
    hrzlvn
        43
    hrzlvn  
       49 分钟前
    看了楼上很多说 ai 找不到 ddd 字段的,你们去翻翻 tocoai 这个玩意,有点启发的,我也是醉了,这年头关键是找工具,倒不是说理论适不适合,你写一坨让 ai 去找,他又不是神仙。如果你说平血+过程也能跑的很好,而且你也是大系统,就当我没说哈哈,你的 ai 比较牛逼
    hrzlvn
        44
    hrzlvn  
       46 分钟前
    @lujiaxing 你牛,反正明年又是一个新公司,新项目
    hrzlvn
        45
    hrzlvn  
       44 分钟前
    应该这样问,22 世纪了,有 ai 了,是不是 100 张表放在一个模块,同一个文件最好,因为上下文长度有 1G 了:)
    MelodYi
        46
    MelodYi  
       16 分钟前
    VibeCoding 感觉上是利好 DDD 的。
    但是说实话,“软件工程”相关的东西,感觉新时代都要大换血,会不会有别的不好说。
    unused
        47
    unused  
       8 分钟前
    以后 AI 提需求出结果就行了,不需要 drive ,更不需要 design
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5364 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 07:13 PVG 15:13 LAX 00:13 JFK 03:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86