分布式金融架构课
任杰
eBay 支付账务系统负责人,前蚂蚁金服架构师
19876 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
开篇词 (1讲)
分布式金融架构课
15
15
1.0x
00:00/00:00
登录|注册

04 | 领域驱动设计(上):如何设计金融软件顶层架构?

你好,我是任杰。这节课我想和你聊一聊如何设计顶层金融软件架构。
通过前面三节课的学习,你应该感觉到金融业务比较复杂,对应的金融软件也很复杂。那想让业务和架构设计良好配合,就是一个非常有挑战性的事情了。这也是软件工程要解决的问题。
软件工程的教材里一般不会写项目怎么成功,而是记录项目怎么失败。金融行业对信息化要求很高,那在实际解决问题时,金融行业自然也会经历很多失败的软件项目。
幸运的是,错的次数多了也渐渐总结出一些比较好的方法论,本世纪初出现的领域驱动设计就是其中一个。一些大型的金融公司已经用这个方法,从战略上重新设计了顶层框架和运作机制,也取得了不错的效果。
想更好地掌握这种方法,你就要搞清楚它的适用范围以及整体思路,这样才能在后续实践中更好地使用。话不多说,接下来我会从三个角度入手,带你理解领域驱动设计理论中的核心知识点。

领域驱动设计侧重点

顾名思义,领域驱动设计(Domain Driven Design,简称 DDD)指的是针对特定领域进行定制化的设计。
空间上来讲,它看到的是整个行业或者整个领域。从时间上来讲,它看到的是软件从发生、发展到消亡的整个生命周期。从角色上来讲,它看到的是业务、产品、开发和运维等所有参与人员的合作。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

领域驱动设计(DDD)在金融软件顶层架构设计中的应用方法和思路是本文的重点。文章从侧重点、人员组织架构和系统组织架构三个角度深入探讨了领域驱动设计的方法和思路。强调了领域驱动设计的注重投资回报比和长期优化,特别强调了金融软件作为领域驱动设计的标志性应用场景。从人员组织架构的角度分析了软件开发过程中不同角色之间的沟通问题,并提出了领域驱动设计取消垂直沟通方式,转为小组沟通方式的解决方案。最后,介绍了领域驱动设计对系统组织架构的思路,将业务领域划分为核心领域、通用领域和支持型领域,提供了分解问题的思路和不同领域的处理态度。通过本文的总结,读者可以快速了解领域驱动设计的核心思想和适用范围,以及在金融软件顶层架构设计中的具体应用方法,为实际项目中的架构设计提供了有益的参考和指导。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式金融架构课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • tt
    我也觉得是选项2,因为不同的领域属于不同的业务。如果直接传输领域模型: 一个会带上很多目的领域不需要的数据; 第二个划分不同领域的目的是为了解耦,如果直接传输领域模型相当于违背了这个初衷。

    编辑回复: 给你的学习热情和思考点赞~这里小小剧透一下,第一模块的参考答案下一期会公布的。

    2020-12-28
    2
  • Jerry Wu
    我说下自己的一些经历吧~ 在人员组织架构上,领域驱动设计要求太高,不适合大部分公司。金融行业可以用领域驱动设计,一个重要的原因是,这些企业能招到足够的人才。 文中提到,领域驱动设计取消了垂直沟通,而是变成小组沟通。这虽然能提高沟通效率,但对开发人员表达和理解能力是个考验。 我身在小公司,表达和理解能力算过得去,在产品会议上也愿意表达。但我发现自己既孤独又没话语权,当业务方、产品经理、开发人员聚在一起时,开发人员往往在一脸懵逼中,沉默到底。直到会议结束后,开发人员才去问产品经理:我该做些什么? 因此,垂直沟通并不是没道理的,表达和理解能力确实稀缺,必须要有人代为转述和翻译。当然,这也是个机会,善于表达理解的程序员往往是团队核心。
    2020-12-31
    3
    24
  • 楼下小黑哥
    领域模型将会包含自身领域的业务逻辑,,不应该暴露给其他领域,否则就会形成不同领域之间的系统耦合。 所以应该选择 2,对外只传输简单数据类型,业务逻辑还只是在自身领域内实现
    2020-12-29
    4
  • Geek_b17612
    选项2,不同领域之间通过简单对象进行交互。既然区分了领域,那就意味着两个不同领域的内容不应该强依赖。他们内部的处理逻辑也不应该暴露出来,那么也就没有必要暴露出领域模型。
    2021-01-12
    1
  • 江湖小虾
    选项2,因为领域模型会根据业务逻辑经常变化,容易造成不同系统之间的耦合,使用不带有业务逻辑的简单数据类型,不带有业务逻辑,适合接口的版本的管理
    2020-12-28
    1
  • 可观测性无声笛
    求微信群
    2022-09-11归属地:广东
  • webmin
    传输数据可以采用模型语言(IDL)定义好模型后,根据模型通过生成器生成不同的编程语言和RPC协议的Server和Client的stub。
    2021-01-14
  • Geek_74107b
    选json或者protobuf这种通用的 业务无关的 语言无关的数据类型
    2020-12-28
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部