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

DDD领域驱动开发

1. 现象:

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

2. 原因:

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

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

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

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

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

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

4.如何解决:

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

5.关键:

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

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

7.设计的原则

理想的逻辑:

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

http://www.dtcms.com/a/185705.html

相关文章:

  • 付费专栏·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 记录
  • 力扣HOT100之二叉树:104. 二叉树的最大深度
  • 力扣-138.随机链表的复制
  • Aware和InitializingBean接口以及@Autowired注解失效分析
  • linux-驱动开发之设备树详解(RK平台为例)
  • 《Python星球日记》 第58天:Transformer 与 BERT
  • 快解析为TPDDNS用户提供免费替换服务
  • 2025年SDK游戏盾技术深度解析:AI赋能下的DDoS/CC攻击防御革命
  • 《Effective Python》第1章 Pythonic 思维详解——深入理解流程控制中的解构利器match
  • Baumer工业相机堡盟工业相机在使用光源时如何选择蓝光还是红光
  • Lynx-字节跳动跨平台框架多端兼容Android, iOS, Web 原生渲染