领域驱动设计-《分布式金融架构课》笔记

一:是什么

领域驱动设计(domain driver design)是一种设计思路,而不是具体的实操过程。领域驱动设计解决的是复杂问题。
它可以从几个维度来理解:
1.空间:看的是整个行业或领域
2.时间:软件从发生,发展到消亡的过程。
3.角色:业务,产品,开发,运维等全部参与人员的合作。

有什么特点

领域驱动设计的务实主要体现在2个方面:
1.注重投资回报比
2.做长期优化

注重投资回报比

所谓注重投资回报比的意思就是DDD设计本身是一个很耗时耗力的过程,需要从多角度考虑问题,投入了大量的人力物力,就要能获得相应的回报,不然得不偿失,即要注重回报比。
适合使用领域驱动设计的系统需要具备这些特点:
1.系统组件多
2.业务逻辑足够复杂
3.软件生命周期足够长

做长期优化

软件的项目周期有时候比个人的项目周期还长,等软件真正出现问题的时候,维护人员也许已经换了,就有可能出现经验知识的传承问题。领域驱动设计尝试解决这些长期沟通问题,降低整个软件生命周期中的沟通成本,这样就能降低项目失败的可能性。

怎么做

人员组织架构

一般在解决问题的时候是先解决人再做事,那么应该先确定人员组织架构,再考虑如何设计系统架构。一般软件开发过程中涉及的人员有:业务方,产品经理,架构师,开发人员。
为了降低沟通成本,减少信息丢失,人员架构最好由传统的垂直结构变成小组结构。小组人员之间要相互理解对方的相关专业术语。

系统组织架构

一个复杂的软件系统也不是所有地方都复杂,各个组件的复杂度和重要程度都不一样。所以我们可以像庖丁解牛一样,对系统组件进行分解,然后把相同的归类,统一对待。
领域驱动设计将所有业务领域划分为三大类型:**核心领域、通用领域以及支持型领域**
核心领域:
 一个软件是否重要,取决于它所属的业务是不是核心业务,而业务是不是核心又取决于竞争对手,能比竞争对手有优势,能给公司带来行业内的竞争优势。而优势可以是不同方面的,需要审时度势,结合当下时代背景和宏观视角去分析,能赚钱,规避风险的基本能算核心领域。比如证券公司的交易系统,支付公司的支付系统等。
通用领域
顾名思义,通用领域是可以在不同行业通用的领域。比如我们前面提到的短信平台,不只是金融公司可以使用,物流公司也可以使用。类似的还有安全、日志、存储等等。所以当市场上存在多个类似的产品的话,我们要尽量采购相关服务或者产品,而不是自己研发。
支持型领域
支撑型领域是那些用来辅助核心领域正常运行的领域。支持型领域并非核心竞争力,但是缺了之后也无法正常开展业务。比如说会计系统、市场数据系统等等,一般属于支持型领域。处理思路就是,能买就买,没有合适的就看人工能否处理,人工能处理的就人工处理,实在不行就投入少部分的人力资源研发,也不需要研发质量多高,能用就行。

思维导图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值