DDD的优势(5)

简介: DDD的优势(5)

image.png


在得到骨干之后,我们需要丰富这个模型,使它可以更好地描述业务概念。这时我们需要补充一些实体对象,通常实体对象有3类,即人-事-物(Party,Place or Thing),如图7-18所示。


image.png


在这个基础上,我们可以进一步抽象,将这些实体参与到各种不同的流程中去,这时就需要用到角色(Role),如图7-19所示。


image.png


最后,把一些需要描述的信息放入描述(Description)对象,如图7-20所示。


image.png


这样,我们就得了应用四色建模方法建立的一套领域模型。简要回顾一下上面的过程,不难发现此次建模的次序和重点。


(1)首先以满足管理和运营的需要为前提,寻找需要追溯的事件,或者称为关键业务时刻。


(2)根据这些需要追溯,寻找足迹以及相应的关键业务时刻对象。


(3)寻找“关键业务时刻”对象周围的“人-事-物”对象。


(4)从“人-事-物”中抽象出角色。


(5)把一些描述信息用对象补足。


由于在第一步中我们就将管理和运营目标作为建模的出发点,因此整套模型实际上是围绕“如何有效地追踪这些目标”而建立的,这样可以保证模型能够支撑企业的运营。


编后语:张建飞说过,他最希望将《代码精进之路》推荐给职场新人看,因为如果在你初入职场的时候,就有一个人教你怎么写好代码,那一定是一件很幸运的事情。


“种一棵树最好的时间是在十年前,其次是现在”。我不相信什么“35岁做不了程序员”,也不相信什么“年纪大了,精力不够”。我只知道有些人在持续学习,有些人过早地享受安逸。


愿你在新的一年可以快乐,也能有所收获。

相关文章
|
JavaScript Shell 程序员
Electron如何调用.exe文件并传递参数
Electron如何调用.exe文件并传递参数
1609 0
Electron如何调用.exe文件并传递参数
|
8月前
|
监控 供应链 安全
SentinelOne零信任架构(ZTA)介绍
随着网络威胁日益复杂,传统安全模式面临挑战。零信任架构(ZTA)以“永不信任,始终验证”为核心,通过持续验证、最小权限、微分段等原则,提升企业数据安全,尤其适应远程办公与云环境。本文详解其核心原则、优势、实施难点及行业应用,助力企业构建更强安全防线。
842 0
|
11月前
|
人工智能 Docker 容器
AI思维导图工具跨领域学习的好帮手
AI思维导图工具跨领域学习的好帮手
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
401 3
|
Java 应用服务中间件
面对海量网络请求,Tomcat线程池如何进行扩展?
【10月更文挑战第4天】本文详细探讨了Tomcat线程池相较于标准Java实用工具包(JUC)线程池的关键改进。首先,Tomcat线程池在启动时即预先创建全部核心线程,以应对启动初期的高并发请求。其次,通过重写阻塞队列的入队逻辑,Tomcat能够在任务数超过当前线程数但未达最大线程数时,及时创建非核心线程,而非等到队列满才行动。此外,Tomcat还引入了在拒绝策略触发后重新尝试入队的机制,以提高吞吐量。这些优化使得Tomcat线程池更适应IO密集型任务,有效提升了性能。
面对海量网络请求,Tomcat线程池如何进行扩展?
|
Ubuntu 关系型数据库 MySQL
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感
1039 1
|
机器学习/深度学习 人工智能 自动驾驶
【AI 现况分析】AI 大模型在自动驾驶中的应用分析
【1月更文挑战第27天】【AI 现况分析】AI 大模型在自动驾驶中的应用分析
|
机器学习/深度学习 人工智能 自然语言处理
深度学习-分享几个开源AI模型库
现在市面上有很多的深度学习预训练模型库,这些预训练库收集了不同AI任务的SOTA模型,有的还提供推理的SDK。这对于做AI应用和AI开发来说,是宝贵的开源资源。
5962 0
深度学习-分享几个开源AI模型库
|
移动开发 小程序 Java
良心分享:基于Java+SpringBoot+Netty+WebSocket+Uniapp轻松搭建在线互动问答程序
本文将详细介绍如何基于你自己的开源项目搭建一个在线互动问答程序,包括微信小程序和H5网页版。 该项目服务端主要使用了Java + Spring Boot + Netty + WebSocket等技术栈,聊天客户端使用的是UniApp来轻松搭建微信小程序和H5网页端。
366 1
|
存储 定位技术 图形学
Blender插件:GLTF 2.0 导入/导出工具
Blender插件:GLTF 2.0 导入/导出工具
801 0