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

DDD领域驱动开发

1. 现象:

       软件设计质量最高的时候是第一次设计的那个版本。当第一个版本设计上线以后就开始各种需求变更,这常常又会打乱原有的设计。

2. 原因:

        软件的本质就是对真实世界的模拟。软件中业务逻辑正确与否的唯一标准就是是否与真实世界 一致。

      软件要做成什么样,既不由我们来决定,也不由用户来决定,而是由客观世界决定。

3.项目代码发展过程(0到1):

     最初只能认识真实世界中那些简单、清晰、易于理解的业务逻辑,把它们做到我们的软件里,还有很多不简单、不明了、不易于理解的业务逻辑没做到软件里。(项目刚上线时,先写最主要和常见的场景逻辑)

    后续变化:软件的业务逻辑会越来越接近真实世界,使得我们的软件越来越专业,同时业务逻辑就会变得越来越复杂,软件规模也越来越庞大。(项目上线后,可能增加多渠道,多场景的使用,要兼容复杂/少见/异常等场景)

小结:软件退化的根源不是软件变更,软件变更只是一个诱因。

4.如何解决:

要保持软件设计质量不退化,必须在每次需求变更的时候,对原有的程序结构适当地进行调整。

5.关键:

每次需求变更的设计,只有保证每次需求变更时做出正确的设计(由于时间人员资源等限制,通常很难完美实现),才能保证软件以一种良性循环的方式不断维护下去

6.常有的事:经历了多次变更,这些事情就想不清楚了,设计开始迷失方向

7.设计的原则

理想的逻辑:

总结:
软件发展的规律就是逐步由简单软件向复杂软件转变
DDD给了我们的思路: 
在每次变更的时候,先回到领域模型,基于业务进行领域模型的变更

相关文章:

  • 付费专栏·Python潮流周刊电子书合集(epub、pdf、markdown)下载
  • 木马查杀引擎—关键流程图
  • vue3搭建实战项目笔记四
  • Linux——数据库备份与恢复
  • ZYNQ笔记(二十一): VDMA HDMI 彩条显示
  • 机器学习第六讲:向量/矩阵 → 数据表格的数学表达,如Excel表格转数字阵列
  • 配置Hadoop集群环境-使用脚本命令实现集群文件同步
  • 皇冠CAD(CrownCAD)建模教程:配电开关
  • React Agent:从零开始构建 AI 智能体|React Flow 实战・智能体开发・低代码平台搭建
  • Docker私有仓库实战:官方registry镜像实战应用
  • -MAC桢-
  • 车联网大数据:从数据到场景的闭环实践
  • 配置文件介绍xml、json
  • 嵌入式软件开发常见warning之 warning: implicit declaration of function
  • 【RabbitMQ】应用问题、仲裁队列(Raft算法)和HAProxy负载均衡
  • 面试题 - Kafka、RabbitMQ、RocketMQ如何选型?
  • 运用数组和矩阵对数据进行存取和运算——NumPy模块 之五
  • 【prometheus+Grafana篇】基于Prometheus+Grafana实现windows操作系统的监控与可视化
  • 解决IDEA无法运行git的问题
  • WSL-Ubuntu 中安装 Git LFS 记录
  • 工人日报:“鼠标手”被纳入职业病,劳动保障网越织越密
  • 城事 | 重庆新增热门打卡地标,首座熊猫主题轨交站亮相
  • 何立峰:中方坚定支持多边主义和自由贸易,支持世界贸易组织在全球经济治理中发挥更大作用
  • 干部任职公示:陕西宁强、镇安两县县长拟进一步使用
  • 浙江省机电集团党委书记、董事长廉俊接受审查调查
  • 首映丨纪录电影《滚烫年华》:献给所有奋斗者