领域驱动设计Domain Drive Design关于DDD的那些事儿

说明

李大成 架构师 分享内容,干货很多,整理为文章

架构师是一顶帽子,是一个角色,不是一个title,只要自己做的是架构设计相关的事情,自己就是一名架构师。

什么是DDD?

DDD是Domain Drive Design的缩写,直译的意思是领域驱动设计的意思。

DDD的概念大约十五六年前由Eric Evans 提出 , 《领域驱动设计》一书可以算作是Eric在DDD领域的的开山之作。

注意这本书的副标题: 软件核心复杂性应对之道。 大家还记得李老师给我们讲课的时候,反复强调的一个观点吗? 就是做架构师,一定要搞清楚要解决的问题是什么。采用某一个架构模式或者技术方案的前提,一定是要正确的识别当前遇到的问题是什么?你的方案,是否适合用来解决自己遇到的核心问题?

领域驱动设计的目的,是为了解决软件的复杂性的。而这个复杂性的主要的着眼点,主要是业务层面的复杂性。

所以说, DDD主要是面向复杂业务的,比较适用的场景,一般都是业务逻辑极其复杂的场景(To B场景居多,例如ERP,CRM, 等等,当然,现在to C领域,例如电商也有很多适合DDD发挥作用的场景,现在的互联网已经进入深水区,除了对高并发高可用高性能的追求,业务的复杂性也是越来越高)

说这么多,就是希望同学们在打算进入DDD领域学习之前,想一想自己在工作中遇到的核心问题是不是业务复杂性带来的问题?带着问题来学习,才会有代入感,才能更好 的理解DDD中繁杂的概念和思想,并给你的工作带来一些好的解决问题的思路。

除了上面这本书以外,其他经典书籍:《实现领域驱动设计》《领域驱动设计精粹》等等

DDD社群

国内DDD社群:http://ddd-china.com/ 此网站干活也很多,建议收藏

国内社区内比较活跃的人物:Thoughtworks的 王威,肖然, 张逸(前thoughtworks员工)这些大佬们的PPT和近年来在DDD峰会上的演讲视频录制材料在ddd-china网站上能够搜索得到。
如果大家感兴趣,也可以考虑报名下一次的DDD峰会, thoughworks组织的还是很不错的。

19年录播链接:https://www.itdks.com/Act/apply?id=3188&from=search

18年录播链接:http://www.ddd-china.com/look-back-2018.html

另外,在极客时间上也有适合DDD入门的技术专栏:欧创新 的 DDD实战课 https://time.geekbang.org/column/intro/23

适合进阶深入学习的技术专栏:张逸 的 领域驱动设计实践(战略+战术)https://gitbook.cn/gitchat/column/5cdab7fb34b6ed1398fd8de7

战略设计和战术设计

DDD的理念,从高层次的角度来看,主要分两大块:战略设计和战术设计。
我觉得可以把这两个大的概念映射到传统软件设计上:

战略设计 对应着 概要设计
战术设计 对应着 详细设计
战略设计

统一语言

而战略设计,主要涉及如下几个概念: 第一: 统一语言

统一语言体现在两个方面:

【名词】:统一的领域术语。尽量基于业内通用标准。而且要尽量给出英语的统一术语。以便于指导代码的类和包命名。
【动词】:领域行为描述。需要满足以下要求:
从领域的角度而非实现角度描述领域行为
若涉及到领域术语,必须遵循术语表的规范
强调动词的精确性,符合业务动作在该领域的合理性
要突

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值