
運用領域模型——DDD
- 2022 年 11 月 30 日
- 筆記
模型被用来描述人们所关注的现实或想法的某个方面。模型是一种简化。它是对现实的解释 —— 把与解决问题密切相关的方面抽象出来,而忽略无关的细节。 每个软件程序是为了执行用户的某项活动,或是满足客户的某种需求。这些用户应用软件的问题区域就是 软件的领域 。 一些领域涉及物质世界,例如,机票预定程序的领域 …
Continue Reading
模型被用来描述人们所关注的现实或想法的某个方面。模型是一种简化。它是对现实的解释 —— 把与解决问题密切相关的方面抽象出来,而忽略无关的细节。 每个软件程序是为了执行用户的某项活动,或是满足客户的某种需求。这些用户应用软件的问题区域就是 软件的领域 。 一些领域涉及物质世界,例如,机票预定程序的领域 …
Continue Reading博主最近失业在家,找工作之余,自己动手写了个洋葱架构(整洁架构)解决方案,以总结和整理以前的项目经验,起名叫OnionArch,其目的是为了更好的实现采用DDD(领域驱动分析)和命令查询职责分离(CQRS)的洋葱架构。 什么是OnionArch OnionArch解决方案清晰的展示了程序各分层的职责 …
Continue Reading
博主最近失业在家,找工作之余,看了一些关于洋葱(整洁)架构的资料和项目,有感而发,自己动手写了个洋葱架构解决方案,起名叫OnionArch。基于最新的.Net 7.0 RC1, 数据库采用PostgreSQL, 目前实现了包括多租户在内的12个特性。 该架构解决方案主要参考了 NorthwindTr …
Continue Reading群里经常看到类似于“看了DDD之后就不会写代码了”的情况,趁最近学车的间隙,写写我的看法。 关于这个事儿,我是觉得:当没有DDD的时候,如果你知道怎么做,那就那么做好了,不要考虑DDD。 当然不是说学了不用,而是在无法直接与实际做对应的情况下,先不要对应,慢慢来。这是一套方法论,而不是具体的方法,它 …
Continue Reading背景 几年前我总结过DDD战术设计的一些落地经验 可落地的DDD(5)-战术设计 ,和 一次关于聚合根的激烈讨论 最近两年有些新的落地体验,回过头来发现,当初对这些概念的理解还是没有深入,这篇文章重新阐述下。 之前理解不到位的点有 战术设计的各个模块是的协作关系 哪些是问题空间问题,哪些是方案空间问 …
Continue Reading用例演示 - 创建实体 本节将演示一些示例用例并讨论可选场景。 创建实体 从实体/聚合根类创建对象是实体生命周期的第一步。聚合/聚合根规则和最佳实践部分建议为Entity类 创建一个主构造函数 ,以保证 创建一个有效的实体 。因此,无论何时我们需要创建实体的实例,我们都应该 使用那个构造函数 参见下 …
Continue Reading存储库 Repository 是一个类似于集合的接口,领域层和应用程序层使用它来访问数据持久性系统(数据库),以读写业务对象(通常是聚合) 常见的存储库原则是: 在领域层定义一个存储库接口(因为它被用于领域层和应用层),在基础设施层实现(启动模板中的EntityFrameworkCore项目) 不要 …
Continue Reading第一步我们可以先更新源(我所有的步骤都在root账户下操作的) sudo apt-get update 然后安装node sudo apt-get install nodejs 安装成功后可以查看版本是否成功安装 node - v nodejs -v 继续安装 npm sudo apt-get in …
Continue Reading
本文简要说明如何使用 Rafy 框架 中的领域控制器。 简介 领域控制器是 Rafy 框架中用于封装领域逻辑的主要方式。 在控制器中,开发者可以封装大量的业务逻辑,并向外暴露业务接口。内部的逻辑在实现时,往往调用一个或多个实体仓库的 CDUQ 方法来实现。 示例 以下代码为 Rafy.Account …
Continue Reading
PO模式是在UI自动化测试过程当中使用非常频繁的一种设计模式,使用这种模式后,可以有效的提升代码的复用能力,并且让自动化测试代码维护起来更加方便。 PO模式的全称叫page object model(POM),有时候叫做 page object pattern。最开始由马丁福勒提出,这个模式受到se …
Continue Reading