当前位置: 首页 > article >正文

DDD领域驱动开发第2讲:领域驱动开发在货代订单业务的实践

领域驱动开发在货代订单业务的实践

本文是DDD领域驱动开发第2讲,先讲解当前业务存在哪些问题,什么是DDD,为啥需要使用DDD解决现有业务问题,DDD让技术主动理解业务,通过领域模型将可以描述各个业务领域之间的关系,最后讲解领域驱动开发在货代订单的实践。

文章目录

  • 领域驱动开发在货代订单业务的实践
    • 1、什么是DDD
      • 1.1、模型驱动设计
        • 1、实体(Entity)
        • 2、值对象(ValueObject)
    • 问题1:实体和值对象的区别?
        • 3、聚合(Aggregate)
        • 4、聚合根(Aggregate Root)
        • 5、界定上下文(Bounded Context)
        • 6、领域服务(DomainService)
        • 7、工厂(Factory)
        • 8、资源库(Repository)
    • 2、为什么要用DDD?
      • 2.1、DDD解决什么问题?
      • 2.2、DDD的优势
    • 3、如何实现DDD?
      • 3.1、战略设计
        • 1、领域划分
        • 2、四色建模
        • 3、事件风暴(Event Storming)
      • 3.2、战术设计
        • 1、分层架构
        • 2、事件驱动架构
        • 3、CQRS
        • 4、贫血模型/充血模型
    • 4、总结
    • 5、领域驱动开发在货代订单的实践
      • 5.1、划分领域
      • 5.2、提炼模型对象及行为
      • 5.3、梳理链路及改造
      • 5.4、改造难点
      • 5.5、DDD落地
    • 6、项目代码及测试用例
    • 参考

1、什么是DDD

DDD(Domain-Driven-Design)是一种强调将业务知识与软件设计紧密结合的一种软件设计思想,是一种适合构建复杂软件系统的思想及方法论,并不是一套现成的软件开发框架。

我的理解:用面向业务领域对象的思维构建代码,而不是传统的基于底层表结构来构建代码,核心是构建统一的业务领域模型,本质是面向对象(业务领域对象)的思想

为什么要建模

  • 在业务、运营、产品、开发、测试之间构建统一的业务语言,方便理解业务,降低沟通成本;
  • 将业务拆分成一个个小的,且相互关联的领域模型,能更好的应对业务的改变和扩展。

软件是对现实世界的建模


http://www.kler.cn/a/557955.html

相关文章:

  • kubernetes proxy中 发现长时间运行的tcp连接 如何处理invalid包 如果更优雅的解决需要修改哪个参数?
  • 透彻理解:方差、协方差、相关系数、协方差矩阵及其应用
  • HTML之JavaScript DOM简介
  • 激光雷达YDLIDAR X2 SDK安装
  • 微信小程序中将图片截图为正方形(自动居中)
  • C++ MFC添加RichEditControl控件后,程序启动失败
  • windows环境下用docker搭建php开发环境dnmp
  • 【Bluedroid】AVRCP 连接源码分析(一)
  • Nginx web服务器+uWSGI web服务器+Django生产环境部署
  • OpenCV卡尔曼滤波器使用详细教程
  • HarmonyOS 应用下载网络文件保存到本地公共目录
  • 计算机毕业设计hadoop+spark旅游景点推荐 旅游推荐系统 旅游可视化 旅游爬虫 景区客流量预测 旅游大数据 大数据毕业设计
  • 基于Python+Vue开发的反诈视频宣传管理系统源代码
  • [数据结构]栈详解
  • Java集合框架全解析:从LinkedHashMap到TreeMap与HashSet面试题实战
  • ai-financial-agent - 为金融投资打造的AI代理
  • 【无标题】云原生作业六
  • IDEA使用git不提示账号密码登录,而是输入token问题解决
  • 简识Spring创建Bean方式和设计模式
  • 嵌入式LINUX驱动开发(三)-设备树驱动led