DDD入门
文章平均质量分 96
在我工作将近10年的那段时间,我开始总结自己先前所参加过的所有软件项目。虽然我一直工作于一家对代码质量很是讲究的软件公司,然而遗憾的是在我所参加过的项目中,没有一个是我满意的。我开始思索这里面的原因,总结下来至少有以下几点:
软件项目通常都是团队项目,其中每个开发者的思路可能是不同的,导致后进者无
飞奔的大土豆
今天最好的表现是明天最低的要求
未来早已到来,只是还未普及
展开
-
ddd扬帆
读取了一篇“”较为清晰了解了:领域驱动设计,整洁架构和事件驱动架构的架构思想落地实践,特做记录读后感,可以直接跳到正文阅读原文。原创 2023-09-24 16:13:48 · 71 阅读 · 0 评论 -
1:DDD入门
既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术,为此让我们先从业务上了解一下贯穿本文章系列的案例项目 ——码如云(不是马云,也不是码云)。如你已经在本系列的其他文章中了解过该案例,可跳过。码如云是一个基于二维码的一物一码管理平台,可以为每一件“物品”生成一个二维码,并以该二维码为入口展开对“物品”的相关操作,典型的应用场景包括固定资产管理、设备巡检以及物品标签等。在使用码如云时,首先需要创建一个应用(App),一个应用包含了多个页面(Page),也可称为表单,一个页面又可以包含多个控件。原创 2023-09-24 16:16:27 · 86 阅读 · 0 评论 -
2:DDD概念大白话
既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术,为此让我们先从业务上了解一下贯穿本文章系列的案例项目 ——码如云(不是马云,也不是码云)。如你已经在本系列的其他文章中了解过该案例,可跳过。码如云是一个基于二维码的一物一码管理平台,可以为每一件“物品”生成一个二维码,并以该二维码为入口展开对“物品”的相关操作,典型的应用场景包括固定资产管理、设备巡检以及物品标签等。在使用码如云时,首先需要创建一个应用(App),一个应用包含了多个页面(Page),也可称为表单,一个页面又可以包含多个控件。原创 2023-09-24 16:18:03 · 151 阅读 · 0 评论 -
3战略设计
既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术,为此让我们先从业务上了解一下贯穿本文章系列的案例项目 ——码如云(不是马云,也不是码云)。如你已经在本系列的其他文章中了解过该案例,可跳过。码如云是一个基于二维码的一物一码管理平台,可以为每一件“物品”生成一个二维码,并以该二维码为入口展开对“物品”的相关操作,典型的应用场景包括固定资产管理、设备巡检以及物品标签等。在使用码如云时,首先需要创建一个应用(App),一个应用包含了多个页面(Page),也可称为表单,一个页面又可以包含多个控件。原创 2023-09-24 16:19:43 · 77 阅读 · 0 评论 -
4代码工程结构
既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术,为此让我们先从业务上了解一下贯穿本文章系列的案例项目 ——码如云(不是马云,也不是码云)。如你已经在本系列的其他文章中了解过该案例,可跳过。码如云是一个基于二维码的一物一码管理平台,可以为每一件“物品”生成一个二维码,并以该二维码为入口展开对“物品”的相关操作,典型的应用场景包括固定资产管理、设备巡检以及物品标签等。在使用码如云时,首先需要创建一个应用(App),一个应用包含了多个页面(Page),也可称为表单,一个页面又可以包含多个控件。原创 2023-09-24 16:20:26 · 146 阅读 · 0 评论 -
5请求处理流程
既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术,为此让我们先从业务上了解一下贯穿本文章系列的案例项目 ——码如云(不是马云,也不是码云)。如你已经在本系列的其他文章中了解过该案例,可跳过。码如云是一个基于二维码的一物一码管理平台,可以为每一件“物品”生成一个二维码,并以该二维码为入口展开对“物品”的相关操作,典型的应用场景包括固定资产管理、设备巡检以及物品标签等。在使用码如云时,首先需要创建一个应用(App),一个应用包含了多个页面(Page),也可称为表单,一个页面又可以包含多个控件。原创 2023-09-24 16:21:09 · 155 阅读 · 0 评论 -
6聚合根与资源库 #
既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术,为此让我们先从业务上了解一下贯穿本文章系列的案例项目 ——码如云(不是马云,也不是码云)。如你已经在本系列的其他文章中了解过该案例,可跳过。码如云是一个基于二维码的一物一码管理平台,可以为每一件“物品”生成一个二维码,并以该二维码为入口展开对“物品”的相关操作,典型的应用场景包括固定资产管理、设备巡检以及物品标签等。在使用码如云时,首先需要创建一个应用(App),一个应用包含了多个页面(Page),也可称为表单,一个页面又可以包含多个控件。原创 2023-09-24 16:22:19 · 194 阅读 · 0 评论 -
7实体与值对象 #
既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术,为此让我们先从业务上了解一下贯穿本文章系列的案例项目 ——码如云(不是马云,也不是码云)。如你已经在本系列的其他文章中了解过该案例,可跳过。码如云是一个基于二维码的一物一码管理平台,可以为每一件“物品”生成一个二维码,并以该二维码为入口展开对“物品”的相关操作,典型的应用场景包括固定资产管理、设备巡检以及物品标签等。在使用码如云时,首先需要创建一个应用(App),一个应用包含了多个页面(Page),也可称为表单,一个页面又可以包含多个控件。原创 2023-09-24 16:22:59 · 108 阅读 · 0 评论 -
8应用服务与领域服务
既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术,为此让我们先从业务上了解一下贯穿本文章系列的案例项目 ——码如云(不是马云,也不是码云)。如你已经在本系列的其他文章中了解过该案例,可跳过。码如云是一个基于二维码的一物一码管理平台,可以为每一件“物品”生成一个二维码,并以该二维码为入口展开对“物品”的相关操作,典型的应用场景包括固定资产管理、设备巡检以及物品标签等。在使用码如云时,首先需要创建一个应用(App),一个应用包含了多个页面(Page),也可称为表单,一个页面又可以包含多个控件。原创 2023-09-24 16:23:39 · 253 阅读 · 0 评论 -
9领域事件
既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术,为此让我们先从业务上了解一下贯穿本文章系列的案例项目 ——码如云(不是马云,也不是码云)。如你已经在本系列的其他文章中了解过该案例,可跳过。码如云是一个基于二维码的一物一码管理平台,可以为每一件“物品”生成一个二维码,并以该二维码为入口展开对“物品”的相关操作,典型的应用场景包括固定资产管理、设备巡检以及物品标签等。在使用码如云时,首先需要创建一个应用(App),一个应用包含了多个页面(Page),也可称为表单,一个页面又可以包含多个控件。原创 2023-09-24 16:24:15 · 141 阅读 · 0 评论 -
10CQRS
既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术,为此让我们先从业务上了解一下贯穿本文章系列的案例项目 ——码如云(不是马云,也不是码云)。如你已经在本系列的其他文章中了解过该案例,可跳过。码如云是一个基于二维码的一物一码管理平台,可以为每一件“物品”生成一个二维码,并以该二维码为入口展开对“物品”的相关操作,典型的应用场景包括固定资产管理、设备巡检以及物品标签等。在使用码如云时,首先需要创建一个应用(App),一个应用包含了多个页面(Page),也可称为表单,一个页面又可以包含多个控件。原创 2023-09-24 16:24:48 · 124 阅读 · 0 评论 -
11后端开发就是CRUD?没那么简单!
在文本中我们看到,哪怕是一个诸如“用户修改手机号”这样简单的需求,在整个实现过程中需要考虑的点也达到了将近30个,真实情况只会多不会少,比如我们可能还需要考虑性能、缓存和认证等众多非功能性需求等。因此,后端开发绝非CRUD这么简单,而是需要将诸多因素考虑在内的一个系统性工程,还是那句话,有讲究的编程并不是一件易事。原创 2023-09-24 16:25:39 · 555 阅读 · 0 评论 -
整洁架构能有多整洁?
整洁架构是一种非常值得采纳的编程思想,对于系统的解耦和维护有实实在在的指导价值,不过我们也没有必要教条式地追求100%的整洁架构,而是在这种思想的引导下,选择适合于自己的整洁架构方案。原创 2023-09-24 16:26:37 · 224 阅读 · 0 评论 -
DDD项目中使用Lombok的正确姿势
在本文中,我们对DDD中的各种对象使用Lombok进行了针对性的管控,从而减少了产生Bug的风险。当然,这些管控手段不见得适合于所有的项目,但是与这些实践手法本身相比,我们更希望传达的一个思想是:使用Lombok可以,但是要慎重。你得知道一个简单的Lombok注解可能给程序带来的风险,进而通过自己的手段进行规避,并形成一定的原则和套路,以让团队的所有成员通过一致的方式使用Lombok。原创 2023-09-24 16:27:27 · 248 阅读 · 0 评论 -
一份关于DDD的FAQ #
答:不变条件表示在聚合根中,那些具有业务互动性的业务逻辑,不变条件必须在同一个聚合根的公有方法中得到满足,否则容易导致业务逻辑的泄漏。答:应用服务和领域服务是很不一样的概念,应用服务是领域模型的门面,所有外部请求都由应用服务的调度编排后进入领域模型中,而领域服务是属于领域模型的一部分。答:架构师和程序员,请注意,这里的架构师是那些工作在前线,至少会参与软件模型设计的架构师,最好是依然参与代码编写工作。答:包含应用服务,聚合根,领域服务,实体,值对象,工厂,领域事件,资源库等。原创 2023-09-24 16:28:00 · 246 阅读 · 0 评论