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

33|分析模式初探:怎样解决更复杂的问题?

你好,我是钟敬。
学习完前面的课程,再经过一定的练习,相信你就有能力运用 DDD 来开发中等难度的系统了。不过,如果遇到更复杂的业务领域,还需要更深入的建模技能。
这节课,我们就来探索一个能帮你加强领域建模技能的利器——分析模式。
《分析模式》是 Martin Fowler 写的一本领域建模的专著。《领域驱动设计》一书的第 11 章也介绍了怎样通过分析模式建立深层次的领域模型。
如果你对分析模式还不了解,也没关系,还是老办法,我们回到迭代三的需求场景里,从解决需求开始,一步一步地理解到底什么是分析模式。

组织层级模式

这个迭代有几个“人员和组织管理”方面的需求,我们就从这里开始吧。
先回顾一下之前组织管理相关的模型。
为了和《分析模式》中的提法吻合,我把原来的组织类别改成了组织类型,意思并没有变。组织类型是可以灵活定义的。这是因为,“企业”“开发中心”等等,都可以定义在组织类型表里。
其实,这种结构已经是一种比较简单的分析模式了,称为“组织层级”(Organization Hierachies)模式,出自《分析模式》一书的 2.2 节。不过无法完全满足我们的需求。所以,我们来做一些进一步的扩展。
在这个模型里,有关组织层级的业务规则,比如说“开发组的上级只能是开发中心”,还不能通过表来定义,只能硬编码在程序里。这样的话,组织的层级关系仍然无法完全灵活定义,并不符合我们对 SaaS 应用的期望,所以,我们首先要解决的是灵活定义组织层级的关系
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

领域驱动设计(DDD)中的分析模式是解决复杂业务问题的重要工具。本文介绍了分析模式的应用,强调了非正式模型的重要性,以及知识层模式、参与方类型泛化模式、参与方模式等技术概念。作者还讨论了分层责任模式,展示了如何运用分析模式解决更复杂的问题。通过学习分析模式,读者可以掌握更高级的建模技能,理解领域建模的普遍原理和通用模式。文章提供了丰富的领域驱动设计知识,为读者提供了实际操作方法和思考题,引导他们在实践中推广DDD。通过本文的总结,读者可以快速了解分析模式的应用价值,以及在解决更复杂问题时的实际操作方法,为他们在领域驱动设计中应用分析模式提供了指导和启发。

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

全部留言(9)

  • 最新
  • 精选
  • 赵晏龙
    很巧,放了快一个月的《分析模式》昨晚上再次试图啃了一遍第二章,发现竟然有所突破了。突然就理解了知识层和操作层的区别。今天再读这篇,感觉更细致了。

    作者回复: 读书千遍,其义自见😃

    2023-03-14归属地:湖南
    3
  • Michael
    老师不然再开一个专栏讲讲《分析模式》这本书吧,😂

    作者回复: 关键这个比较冷门,要考虑一下受众范围。。。

    2023-02-28归属地:陕西
    3
    3
  • 6点无痛早起学习的和尚
    完犊子,这章读起来更费劲了

    作者回复: 加油

    2023-02-28归属地:北京
    2
    3
  • runmark
    组织类型上的父类型:子类型的1对多的关系,用组织类别结构就可以表示吧?为什么还要单独划出一条关联线来?感觉这样做复杂度又增加了。

    作者回复: 这是两种不同的关系: “组织类型结构”表示的上下级关系,例如:开发中心的上级是信息技术部 “组织类型上的父类型:子类型的1对多的关系”表示的是一种归类关系,例如:总公司信息技术部是总公司一级部门。 可以再仔细体会一下两者的区别。

    2023-08-08归属地:山东
    1
  • fangs
    这节课看了好几遍才有一点点明白

    作者回复: 继续努力 :)

    2023-04-27归属地:浙江
  • Geek_7d539e
    钟敬老师的本课程是否都包含了《领域驱动设计》、《分析模式》两边书的所有知识,如果没有,缺少了哪些部分的知识,这些“没有介绍的知识”为啥没有在本课程介绍呢?

    作者回复: 你好呀,其实没有任何一本书或一门课包含了这两本书的所有知识。之前没有,未来估计也不会有。这是因为每本书和每门课都有自己的侧重点。本课程侧重点是带大家入门DDD。没有包含的知识需要大家进一步努力。就《领域驱动设计》而言,本课程没有包含“精炼”和“大型结构”。就《分析模式》而言,原书中每一章都有大量的模式,这些不是本课程的重点,你可以在理解本课程的基础上,进一步找原书学习。学习中如果有困难,可以在微信交流群里继续讨论。

    2023-04-09归属地:广东
  • 赵晏龙
    另外,关于图,我和老师的观点一致,如果这个图能够帮助分析问题、传递知识,UML也好,非正式图也好,都是好猫。但如果团队中大部分人都无法理解UML,那还不如非正式图。

    作者回复: 两者结合起来,互相取长补短

    2023-03-14归属地:湖南
  • aoe
    本课插图很有科技感 看完出神入化的分析,虽然没看懂,但看到了掌握之后带来的光环

    作者回复: 起码前面60%能看懂吧?其实画那些非正规的图,就是想让大家看懂。以后我再结合一些别的办法,比如说把数据库表的内容都写出来,可能更容易理解。

    2023-03-03归属地:浙江
    2
  • Fredo
    抽象层级更高了。 一个员工属于多个组织,这个在一个 HR 系统中碰到过类似问题
    2023-03-02归属地:广东
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部