谁有 ddd(领域驱动设计的相关案例项目)? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
17lian
V2EX    程序员

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

  •  
  • &nbs; 17lian 2022-09-16 15:32:15 +08:00 3519 次点击
    这是一个创建于 1151 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    13 条回复    2022-09-17 12:56:57 +08:00
    nothingistrue
        1
    nothingistrue  
       2022-09-16 15:41:50 +08:00   1
    不公开的实践项目会很多,但是公开并且规模还足够到可以学习的案例项目,不可能有,别找了。

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

    复杂性与概念完整性,

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

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

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

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

    DDD 只是可以帮助你去理解概念的完整性,并没有办法让你做的更好,
    因为目前国内的情况就是 大量的人都是从事历史悠久的事务脚本开发,模块化都没做好,
    何谈用 DDD 来维护概念完整性,我有的时候跟别人讲,你别复制代码,这是给别人在埋雷,
    听都没人听,国内大环境的情况下,在这些人为带来的复杂性未得到根治前,
    使用 DDD 去管理因为业务本身逻辑带来的复杂性,可以说是毫无意义。
    aviator
        13
    aviator  
       2022-09-17 12:56:57 +08:00
    @ExiFeng ok ,感谢感谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4666 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 09:54 PVG 17:54 LAX 01:54 JFK 04:54
    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