DDD 基础知识扫盲篇

Posted go大鸡腿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DDD 基础知识扫盲篇相关的知识,希望对你有一定的参考价值。

前言

这段时间学习了一波ddd,整体下来的感受,现状是业务冗余,业务代码都写在一起很混乱,在复杂业务的时候不方便管理、扩展。
代码设计原则里面就有高内聚,低耦合的原则,ddd其实就是为了实现这想法的。

目的

ddd为了实现高内聚,低耦合的作用,减少每一层的耦合,这样不会互相影响,也方便后续扩展

概念

  1. 领域:领域是相对于业务领域,或者问题域,范围概念。一个领域会包含多个子域,比如说订单域,会有商品、订单等等子域
  2. 限界上下文:既然有范围,那么就有边界,领域之间靠context上下文来进行通讯
  3. 实体、值对象:实体对应PO,值对象,在实体基础上会加上其他属性
  4. 聚合,聚合根:对实体、值对象会进行聚合,聚合根,可以通过这个访问内部实体的东西,不会直接操作跟内部实体
  5. 防腐层 ACL:限界上下文处理外界上下文的时候,需要做业务处理

DDD分层


经典ddd分层的就四层:

接口层、应用层、领域层、基础层

接口层:面向接口,controller
应用层:面向用例,就是会管理各个领域的调用关系,比如说校验完->A领域->B领域
领域层:有领域服务,以及对应子域。处理该领域的业务逻辑
基础层:处理数据库、缓存、第三方等等

洋葱架构以及六边形架构,多了适配器

按照个人见解画的分层图

参考博客

  1. DDD 实战课
  2. 领域驱动设计在互联网业务开发中的实践
  3. DDD 领域驱动模型设计中的分层架构

以上是关于DDD 基础知识扫盲篇的主要内容,如果未能解决你的问题,请参考以下文章

前端知识扫盲VUE知识篇三(axios知识)

前端知识扫盲VUE知识篇三(axios知识)

100天精通Python丨基础知识篇 —— 03Python基础知识扫盲(第一个Python程序,13个小知识点)

C++快速扫盲(基础篇)

halcon视觉入门扫盲篇

基础扫盲篇--强化学习自动股票交易算法