DDD初探
领域驱动设计(DDD)对开发者来说是面向对象设计的自然进化
总的来说DDD包括两个部分:
- 分析部分
分析部分通常是由开发人员去和领域专家沟通业务知识,但是开发人员和领域专家是有代沟的,
为了简化沟通成本,这时统一语言出场,统一语言是项目各方共同使用的词汇表,
在沟通业务知识,又或者叫沟通需求阶段,开发人员需要不断的完善这个词汇表,随着对需求的深入了解,
你发现某些名词存在多重含义,这种情况一般预示着多个子领域的出现,
(边界上下文)Bounded Context是DDD用来指代独立领域区域的术语,有一个子领域就有一个边界上下文,
边界上下文之间通常相互关联,这种关联关系在DDD里叫做上下文映射,它为正被设计的系统提供一个全面视图,
DDD里存在以下五种关联关系(防腐层,从属,客户供应商,搭档以及共享内核)。 - 策略部分
一旦分析部分结束,分析部分就可以产出多个边界上下文之间的映射关系(即上下文映射),有了这个系统的全局视图,
我们就可以为每个边界上下文确定合适的架构,是的策略部分的任务就是评估各种架构方案以及为每个边界上下文选择架构,
比如是使用web form ,asp.net mvc 还是分层的领域架构 又或者是简单的CRUD,
这里有一个通用的指导原则就是你要写的软件的使用期限,就是说如果你只是做一个辅助工具,而且只用一次,
那么你真的没有必要把他复杂化,相反如果你要做一个淘宝系统,那么还是考虑下DDD吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端