05 | 领域驱动设计(下):如何设计统一的金融业务模型?
任杰
你好,我是任杰。这节课我想和你聊一聊怎么设计统一的金融模型。
上节课我带你了解了,如何通过领域驱动设计的方法来设计金融软件的顶层架构。我们知道了金融软件的核心原则之后,今天我们来学习实际的金融架构设计和建模,看看金融行业的一些通用的软件设计和分析方法。
这节课会涉及到一些英文专有名词。我用表格形式做了梳理,你可以在进入正文之前先了解一下:
金融业务背景假设
在上节课我们说过领域驱动设计的过程非常耗时耗力,所以从性价比角度考虑的话,尽量只用这个方法来解决复杂金融业务的问题。
那么这节课,我要先选择一个既容易让你理解,又足够复杂的金融业务例子。
也许你还记得,我们在第 3 节课里给你说到了很多金融业务。其中交易类业务和场内交易业务都相对简单。所以我们如果想要找复杂的例子,就需要定位在场外交易的产品类型。场外交易最简单的类型就是期权(Option),所以我们可以选择债券期权(Bond Option)这个金融业务的例子。
正式分析系统架构之前,我们先来看看需要解决的金融业务细节。
债券期权本身也是一个期权(Option)。你购买了期权之后就有了一个选择的权利。在期权到期日那天,你可以选择用期权规定的价格来购买债券。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了如何通过领域驱动设计方法来设计金融软件的顶层架构,以及金融业务模型的设计。文章以债券期权为例,详细介绍了金融业务的细节和建模逻辑。通过讨论实体和值对象的概念,以及它们在金融业务中的应用,强调了领域驱动设计在解决复杂金融业务问题中的重要性。此外,文章还介绍了领域服务的特点和在金融行业中的应用。总的来说,本文通过具体的金融业务案例,向读者展示了如何利用领域驱动设计方法来解决金融软件设计和建模中的挑战。 文章还介绍了聚合的概念,以及如何划分聚合、聚合之间的关系和存储原则。此外,还讨论了工厂的作用和仓库在领域驱动设计中的重要性,强调了它们在业务对象的创建和存储中的作用。最后,文章提出了思考题,引发读者对金融业务中的实际问题进行思考和讨论。 通过本文的阅读,读者可以深入了解领域驱动设计在金融软件开发中的应用,以及如何通过该方法解决金融业务建模和设计中的挑战。同时,读者也可以对聚合、工厂和仓库等概念有更深入的理解,为实际项目的设计和开发提供有益的参考和指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式金融架构课》,新⼈⾸单¥59
《分布式金融架构课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(9)
- 最新
- 精选
- Geek_9c3134老师 金额字段用什么类型存好 跨境介绍如何做
作者回复: 这位同学你好。金额在存储的时候会出现精度问题。所以一个常用的方案是把金额作为字符串存储,这样在存储和传输过程中不会出现精度问题。另外,系统在处理金额的时候也尽量用无限精度的数学库,这一点在进行外汇转换的时候会比较重要。 跨境支付比境内支付要更复杂,原因是你会面对不同国家的情况,所以在这里也无法给你介绍具体的做法。架构的大致思路和境内支付类似,你可以根据具体情况具体分析。
2020-12-3038 - Jerry Wu这两节的领域驱动设计有点难,毕竟大家很少接触过这方面内容,期权之类的业务更没碰过。 不过,我推荐王争老师的《设计模式之美》,其中第 11、12 节课也讲到“领域驱动设计”,上面以大家日常接触的虚拟钱包为例,我觉得理解起来更容易。2020-12-316
- tt到期发短信应该归属于领域服务,理由如下: 1.债券期权到期没有行权发送短信属于业务逻辑,归属领域服务; 2.业务对象由领域服务来使用。从编码逻辑上将,债券期权这一实体到期属于事件,债券期权实体无法自己触发这一事件,应该由领域服务触发并执行发短信的动作; 3.发短信涉及到多个实体,比如短信发给谁需要客户实体,涉及多个实体,需要领域服务参与; 4.债券实体可以提供接口以便领域服务判断是否到期。2020-12-304
- 宗凯设计为领域服务,因为实体只处理实体内部业务逻辑,不应该有外部依赖,应该由领域服务调用实体的行为判断是否到期,然后通知短信平台发送短信。 短信平台功能如果是基础设施,那么领域服务就可以直接本地调用短信发送接口。短信平台如果是另一个领域聚合,可以通过事件发布,由短信平台异步发送短信 功能的触发可以在日切批量排程新增一个作业,用于触发调用该功能。2021-02-193
- NierDaye看完这一节,没get到标题中的“统一”二字何解?2021-12-1912
- Vincent债券期权是一个领域实体,具有唯一标识对象, 债券期权的行权日属于债券期间的一个属性,值对象;但是和实体状态没有关系,所以不能实现为实体的内部逻辑。应该做成一个独立的领域服务,按照指定规则扫描满足条件的的债券期权通知客户,类似于一个批处理处理就好了2021-06-201
- 木剑客期权到期提醒可以通过cqrs监听期权发布事件,发送一个延时消息,到期自动提醒,主要是能捕获事件2022-07-05
- stonejianbu问题一:每天定时执行查询当前将要到期的债券期权,放入到消息队里,消息内容(债券期权id、归属用户id、到期日),由另一个方法进行订阅处理,在早上九点(十点...)进行通知(短信,邮箱) 问题二:领域服务。自动通知功能不是对实体的管理操作,而是基于实体属性(到期日)之上来进行业务处理(消息通知)2022-05-20
- trm0005”无状态指的是它内部没有维护全局状态,整个计算过程也不能有任何随机性” 请问这句话该如何理解?总感觉“内部没有维护全局状态”和“不能有任何随机性”像是两个互相矛盾的表述。没有全局状态,也就是不同地方的状态可能会有不同,这感觉似乎就有点像随机性了。请老师指点2021-10-311
收起评论