手把手教你落地 DDD
钟敬
Thoughtworks 首席咨询师、数字化转型与运营团队 DDD 负责人
19697 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 45 讲
AIGC特别策划 (2讲)
结束语&结课测试 (2讲)
手把手教你落地 DDD
15
15
1.0x
00:00/00:00
登录|注册

34|落地经验:怎样在实际项目中推广DDD?

你好,我是钟敬。
前面我们学习的主要是 DDD 本身的技能。我们以此为基础,进一步精进,就可以向 DDD 专家迈进了。然而,即使你已经成为 DDD 专家,也不意味着你可以自然而然地在组织里顺利推广 DDD。
这节课,我把我在不同企业中推广 DDD 的一些心得分享出来,相信会对你有所帮助。

怎样寻找 DDD 的切入点

在准备推广 DDD 的时候,你的公司一般已经有了自己的一套业务、系统、团队和开发流程。那么,怎么把 DDD 切入到现有的研发体系中呢?

DDD 的切入场景

我们讨论 3 种最常见的切入 DDD 的场景。
第一种是新建系统。也就是说现在刚好有一个新项目,可能是要开发一个全新的系统,也可能是为现有系统新增或重写一个比较大的模块。这时候,领导希望保证质量,降低风险,觉得需要方法学的支持,因此要引入 DDD。
第二种是改造现有系统。常见的情况是,某个对公司很有价值的系统,已经维护了很多年,系统架构和质量日益腐化,很难维护,不能满足快速变化的业务需求。这时候希望引入 DDD 对系统进行比较大的重构,使系统重新“焕发青春”。另一种情况是企业要进行服务化改造,把一些现有的单体应用拆分成微服务。
第三种是改进现有研发流程。公司未必想专门花一大笔预算新建或者改造系统,但领导已经意识到目前的研发流程有种种不足,如果再“野蛮生长”下去,会有很大的隐患。因此希望通过引入 DDD 等方法,提高研发水平和效能。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

推广领域驱动设计(DDD)是一项具有挑战性的任务,本文分享了在不同企业中推广DDD的经验和心得。首先介绍了推广DDD的切入点,包括新建系统、改造现有系统和改进现有研发流程。其次,强调了选择试点项目和团队的关键因素,以及在改造现有系统和改进研发流程中需要注意的问题。文章还提到了选择精益切片的重要性,以及合理的资源和时间安排。此外,文章还探讨了如何降低DDD的难度,提出了推广“低配版”的DDD的建议。最后,为了保证DDD顺利落地,团队还要加强一些基本的开发技能,包括整洁代码、面向对象设计、代码重构、自动化测试,持续集成、持续交付,以及进一步的DevOps等等。总的来说,本文为正在推广DDD或有意了解DDD推广经验的读者提供了实用的经验分享,对于快速了解DDD推广的技术特点具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手教你落地 DDD》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • 6点无痛早起学习的和尚
    热乎着呢,追更了 思考题: 1. 困难就是:给 leader 讲新的技术改进,但是呢,当然自己也没有 100% 掌握(可能是掌握了 70%啥的),给 leader 讲了一圈,leader 又不去做技术调研/细细研究我的技术改进 idea,就完全靠自己的过往经验(吃老本)否定我的技术改进 idea,否定我的 idea,但是他又说不出来具体理由,完全就是靠过往经验,这样也造成了我的内心不服气,谁也不服气 针对这个困难,一方面我自己也可以改进, 1. 把技术改进掌握 100%,再跟他谈 2. 针对他提出来否定的理由,找到一些解决方案丢给他,说:你提的这些否定是可以解决的 3. 如果做了以上这些,leader 还是否定,说实话,我虽然也是不服气,但是依然还是得听leader的,那就不改进了。但是我内心可能还是不服气,有点抵触。 针对学了 DDD,准备在团队推进,我会先尝试推进领域模型、领域逻辑写在领域对象里,通过应用服务编排领域逻辑,先尝试落地这个编码的一些点。

    作者回复: 可以多关注一下Leader自己有什么痛点不好解决(比如他的上级想要什么),如果你的方法能解决他的痛点,他可能会愿意。另外,有些东西不光是技术问题。。。

    2023-03-02归属地:北京
    8
  • plimlips
    DDD,分析模式,设计模式,微服务架构,这些如果能进大学课堂,就好推广了

    作者回复: 是呀,学校教育加强就好了

    2023-03-06归属地:重庆
    3
  • 赵晏龙
    总的来说吧,其实就是从各方面的利益出发。 1、对于开发人员,你要告诉他,这是为了你将来少加班在努力; 2、对于产品,你要告诉他,东西不分析清楚,后期修改你也来跟着加班吧。 3、对于销售,你要告诉他,东西出不来,你也拿不到提成,反而扣绩效。 4、对于业务方,你要告诉他,这个绝对不会影响交付进度,反而会促进快速交付。 5、对于老板,你要告诉他,这对于公司来说是在节约成本。 当然,各方面用何种说辞,那是你的语言技巧问题。

    作者回复: 再来一个热乎的,ChatGPT 这样的人工智能在不久的将来可能代替大部分普通的编程工作,但暂时无法代替领域建模。将来可能是人来建模,然后交给AI去实现。

    2023-03-17归属地:湖南
    5
    2
  • 赵晏龙
    不得不说,你这个低配版DDD落地的总结实在是太好了,光是这一课就值回票价了。关于重点,没有真实的架构经验其实很难抓得住的。我的落地经验几乎和你的总结是完全一致的。

    作者回复: 英雄所见略同 :)

    2023-03-17归属地:湖南
    1
  • Geek_36e6d4
    改造现有系统中的: 第三步,一般要把改进过程化整为零,请问如何化整为零? 第四步,最好基于敏捷软件开发方法,小步快跑地实施,请问如何小步快跑?能有具体步骤例子吗?经常听到敏捷,不知道具体的实施怎么做? 这两个问题请教下钟敬老师下,谢谢。

    作者回复: 好问题,不过两个问题都不是一两句话能解释的。推荐几本书给你吧 化整为零的方法:代码层面看《重构》,架构层面看《演进式架构》; 敏捷:看《敏捷项目管理》《硝烟中的Scrum 和 XP》

    2023-04-19归属地:福建
  • aoe
    先来一个低配版的 DDD 这个建议非常好!虽然门槛低了,但也是 DDD !
    2023-03-02归属地:浙江
    2
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部