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
《手把手教你落地 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 - plimlipsDDD,分析模式,设计模式,微服务架构,这些如果能进大学课堂,就好推广了
作者回复: 是呀,学校教育加强就好了
2023-03-06归属地:重庆3 - 赵晏龙总的来说吧,其实就是从各方面的利益出发。 1、对于开发人员,你要告诉他,这是为了你将来少加班在努力; 2、对于产品,你要告诉他,东西不分析清楚,后期修改你也来跟着加班吧。 3、对于销售,你要告诉他,东西出不来,你也拿不到提成,反而扣绩效。 4、对于业务方,你要告诉他,这个绝对不会影响交付进度,反而会促进快速交付。 5、对于老板,你要告诉他,这对于公司来说是在节约成本。 当然,各方面用何种说辞,那是你的语言技巧问题。
作者回复: 再来一个热乎的,ChatGPT 这样的人工智能在不久的将来可能代替大部分普通的编程工作,但暂时无法代替领域建模。将来可能是人来建模,然后交给AI去实现。
2023-03-17归属地:湖南52 - 赵晏龙不得不说,你这个低配版DDD落地的总结实在是太好了,光是这一课就值回票价了。关于重点,没有真实的架构经验其实很难抓得住的。我的落地经验几乎和你的总结是完全一致的。
作者回复: 英雄所见略同 :)
2023-03-17归属地:湖南1 - Geek_36e6d4改造现有系统中的: 第三步,一般要把改进过程化整为零,请问如何化整为零? 第四步,最好基于敏捷软件开发方法,小步快跑地实施,请问如何小步快跑?能有具体步骤例子吗?经常听到敏捷,不知道具体的实施怎么做? 这两个问题请教下钟敬老师下,谢谢。
作者回复: 好问题,不过两个问题都不是一两句话能解释的。推荐几本书给你吧 化整为零的方法:代码层面看《重构》,架构层面看《演进式架构》; 敏捷:看《敏捷项目管理》《硝烟中的Scrum 和 XP》
2023-04-19归属地:福建 - aoe先来一个低配版的 DDD 这个建议非常好!虽然门槛低了,但也是 DDD !2023-03-02归属地:浙江2
收起评论