前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >领域驱动DDD 业务浅析

领域驱动DDD 业务浅析

原创
作者头像
北洋
发布2023-12-15 11:13:46
1190
发布2023-12-15 11:13:46
举报
文章被收录于专栏:北洋csdn北洋csdn

设计模式如何学习?

模式这个词的来源是建筑学,不同的建筑所采用的建筑模式也不一样,建筑模式是特定建筑领域中 设计优秀建筑的指南。

这个词后来引入到了软件设计领域,对于不同的软件设计问题,也有相对应的设计模式来指导如何设计是最佳的。

之前学的设计原则更像是公理,而设计模式更像是定理,是设计原则公理 在特定问题下的 最佳解决方案。

因此学习设计模式就像是学习定理一样,首先学习的就是这个模式解决的是什么设计问题,根据问题去学习对应的设计模式才是最好的方式

设计模式领域最早的书籍是《设计模式》:这本书提到了23个设计模式;但是天底下的设计模式不仅仅只有23种,随着人们认识到设计模式的重要性,越来越多的设计模式被发掘了出来。因此之后又出现了《企业应用架构模式》和一套5卷本的 《面向模式的软件架构》,这些书都值得学习。

DDD

以往人们不管是面向过程还是面向对象还是函数式编程,本质上都是在围绕数据进行设计。

面向过程是对数据的执行流程 ,按照分支条件 ,模式匹配 进行设计

面向对象 是对数据的功能,定义出发 重新组织数据,

ddd的根基:通用语言和模型驱动的设计

  1. 通用语言:这里的通用值得并不是技术领域的,而是技术领域和业务领域的通用语言。比如业务人员(关注业务领域)眼里看到的和技术人员(关注技术领域)看到的是截然不同的。
  2. 而软件设计是要在问题和解决方案中间打一座桥梁,好的设计要更接近问题这样才能提前识别更好应对业务需求的变化。 通用语言的出现就人为的打破了 技术人员 和问题之间的隔膜,让程序员可以更接近问题
  3. 如何建立起通用语言:事件风暴。之前的编程方式都是从数据出发,不管怎么设计都是为了更好的组织数据。而ddd要求 先从 领域中有哪些关键事件和结果出发;再从事件和结果出发 思考 做这个事情达成这个结果 要经历哪些行为哪些步骤;再去思考 这些步骤所涉及的概念实体有哪些。

这个步骤正好和面向对象的设计思想相反,面向对象针对的还是数据,但是ddd针对的是领域,领域会更加稳定。

2.模型驱动的设计:

ddd的模型驱动设计:

概念:模型驱动,在ddd里面的模型就是领域模型(一个个业务域),面向对象里面的模型就是对象模型。

组成:领域模型驱动设计,这里的设计有高层和底层设计,对应的就是战略设计和战术设计。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 设计模式如何学习?
  • DDD
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档