关于领域驱动架构DDD思考
一个高大上的概念领域驱动架构就这样展开。
开发了多年的软件,一直以来的习惯是拿到产品的需求 对照UI的图纸然后就干干干 碰到问题大不了找人沟通再次定义问题,最后交付。其实最后也能把一件事情完成 但如果碰到很大型的项目,面对里面的各个模块 你会感觉无从下手,甚至都无法创造,理不清种种,有冲动想画画在纸上 又无从下手。
如果一开始能从更高层面的角度去设计系统 一步一步 那之后的事情 其实只是填充代码了,其实这种能力往往比编码更重要。
涉及到几个概念:心智建模 数据建模
心智建模一般还停留在会议层次上,做一个产品 一开始产品 开发一起讨论这个新产品1期功能有哪些 开完会后大家有一个初步印象 1.0我们到底需要完成哪些功能 时间节点是什么
之后数据模型就显现了我们开始关心把它实际化。
DDD模型:
UI层
应用层
领域层
基建层
UI层和基建层不难理解 一个负责展示一个负责存储
应用层和领域层的区分
领域层负责实体对应的增删改查,比如订单库存的扣减,商品的下架等
应用层涉及粒度比较粗 比如下单,购物车 商品 支付等
按照DDD定义 领域模型应该捕获“业务规则”或“领域逻辑”
应用层应该捕获“应用逻辑”
领域模型
1)显性的专业知识:下单扣除库存,买东西要付款等
2)提纯 通用的规则,期间突出一个”合规“概念;下单成功的单子不可能商品被删除或库存是0等等...
最后领域模型以”界面“(接口实现)
参考https://www.zhihu.com/question/25089273
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?