首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于聚合的激烈讨论

因为这是面向页面建模,不是面向领域建模,将微服务拆分和领域建模混为一谈了 于是我以聚合定义作为引子,结合组内在实践DDD过程中,聚合随着业务查询复杂而导致聚合不断膨胀的问题,提出借鉴CQRS读写分离的理念...结论 聚合 聚合代表的是一个领域边界 聚合的内容要保证数据一致性(这里的一致性指的不是数据持久化的事务一致性,而是业务数据的一致性,包含业务上的业务校验) 比如订单和订单详情,一个没有订单详情的订单是不完整的...聚合里面有多少个实体,由领域建模决定 永远不要删除聚合 聚合之间有引用,如果删除了聚合,会导致关联聚合的数据不一致 这边很容易和实体的生命周期从属于聚合搞混了。...这边的依赖是关联依赖,实体依赖聚合是has a 聚合引用聚合值id/或者id值对象 实体 实体一般从属于某个聚合,要不然就可以定义成聚合了 实体有自己的生命周期,他的生命周期从属于聚合...也就是聚合没有,实体也就没了 比如我可以对订单详情的数据进行编辑,删除。 聚合与实体的关系通常是1:N 因为如果是1:1,通常不需要定义实体了。直接放在聚合里面,不需要唯一id了。

68220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    堆的Java实现

    假设 i 为当前节点,那么 (i - 1) / 2 为父节点 根据大小排序可分为小堆和大堆,小堆即元素越小越在上方,大堆则相反。...小堆实现 内部操作有: 上浮:将小的元素往上移动、当插入元素时,将元素插入末尾,这样上移即可调整位置 下沉:将大的元素向下移动、当删除元素时,将首位交换,弹出尾部,首部下移即可调整位置 插入:添加元素...弹出:删除元素 主要是其插入弹出的思想,还有调整时注意下标,因为大小与下标相差1 package heap; // 小堆时间复杂度是O(1) ~ O(logn) // 默认O(nlogn) public...int index) { int father = (index - 1) / 2; while (father >= 0) { // 这里卡死一,...// 让元素和尾元素交换,让现在的元素下沉即可 public int pop() { swap(0, --size); fixDown(0);

    2.3K30

    【组合数学】递推方程 ( 递推方程求解过程总结 | 齐 | 重 | 非齐 | 特征为 1 | 指数形式 | 底为特征的指数形式 ) ★★

    文章目录 一、常系数线性齐递推方程求解过程 二、常系数线性齐递推方程求解过程 ( 有重下的通解形式 ) 三、常系数线性非齐递推方程 特解形式 ( n 的 t 多项式 | 特征不为...1 ) 四、常系数线性非齐递推方程 特解形式 ( n 的 t 多项式 | 特征为 1 ) 五、常系数线性非齐递推方程 特解形式 ( 非齐部分是指数 | 底不为特征 ) 六、常系数线性非齐递推方程...特解形式 ( 非齐部分是指数 | 底是特征 ) 递推方程求解 : 一、常系数线性齐递推方程求解过程 ---- 常系数线性齐递推方程求解过程 : 1 ....n 的 t 多项式 ; 如果齐部分 特征 为 1 , 重复度为 e , 则特解 H^*(n) 也 是 n 的 t + e 多项式 ; 提高的幂是 特征 1 的重复度...*(n) 使用上述解出的 特解 , 与递推方程 齐部分的通解 , 组成递推方程的完整通解 ; 六、常系数线性非齐递推方程 特解形式 ( 非齐部分是指数 | 底是特征 ) ---- 常系数线性非齐递推方程

    1.1K00

    记对某域的一渗透测试

    原文首发在先知社区 https://xz.aliyun.com/t/15026 前言 两个月之前的一个渗透测试项目是基于某网站域进行渗透测试,发现该项目其实挺好搞的,就纯粹的没有任何防御措施与安全意识所以该项目完成的挺快...步骤 拿到域,简单进行一个子域名收集,利用360quake搜索,发现大量gitlab服务,我猜测是蜜罐并且很难从这一点进行利用,所以只是简单的使了几个弱口令和CVE历史漏洞,发现没什么利用点就找下一个去了...而且这个cms版本是没有爆出过漏洞的,所以此处文件上传应该是比较难搞的 通过各种...发现七牛云存储的aksk泄露,这还得了,直接连上去看看是不是真的aksk啊,不仅发现能够连接,而且此云存储服务器还有此域下面的其他子域名的文件等信息

    11810

    Java基础——类与String类

    转眼间我们已经工作完一周了,这周开始阿Q要不定时更新知识了,先让我们来学习一下java中的Object与string类吧。...Object类 API:Application Programming Interface 应用程序编程接口,Java API就是Java提供给我们使用的类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的...Object:所有类都直接或者间接的继承自Object类,是类层次结构的类、 public int hashCode() 返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。...int indexOf(String str):返回指定字符串在此字符串中第一出现处的索引。...int lastIndexOf(int ch):从最后往前数返回指定字符在此字符串中第一出现处的索引。

    46120

    得到JAVA项目文件夹

    大家好,又见面了,我是全栈君 获得的相对路径 说明:相对路径(这并不说明什么时候相对谁)可以通过以下来获得(无论是一般java项目或web工程) String path = System.getProperty...(“user.dir”); E:\github\J2SE 上述相对路径中,java项目中的文件是相对于项目的文件夹 web项目中的文件路径 视不同的webserver不同而不同(tomcat是相对于...tomcat安装文件夹\bin) 类载入文件夹的获得(即当执行时某一类时获得其装载文件夹) 通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级文件夹) String...getResource(“/logback.xml”).getPath(); /E:/github/J2SE/target/classes/logback.xml 此方法必须以’/’开头 web项目文件夹的获得

    55010

    记对某域的一渗透测试

    朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把“亿人安全“设为星标”,否则可能就看不到了啦 原文首发在先知社区 https://xz.aliyun.com/t/15026 前言 两个月之前的一个渗透测试项目是基于某网站域进行渗透测试...步骤 拿到域,简单进行一个子域名收集,利用360quake搜索,发现大量gitlab服务,我猜测是蜜罐并且很难从这一点进行利用,所以只是简单的使了几个弱口令和CVE历史漏洞,发现没什么利用点就找下一个去了...而且这个cms版本是没有爆出过漏洞的,所以此处文件上传应该是比较难搞的 通过各种...发现七牛云存储的aksk泄露,这还得了,直接连上去看看是不是真的aksk啊,不仅发现能够连接,而且此云存储服务器还有此域下面的其他子域名的文件等信息

    10720

    【数据结构】大堆和小

    堆实现逻辑 从整棵树的最后一颗子树开始调整,每次都让节点和左右孩子去比较,如果节点比左右孩子的最大值要小,那么就将这两个值进行交换,然后此时这颗子树变成了大堆,再看下一颗树 然后对下一颗树进行相同的处理方法...,后面的子树依次交换: 当每棵子树都是大堆的情况下,那么这棵树也就是大堆了 每一交换的步骤为: 从最后一棵树开始调整 左右孩子的最大值和节点进行比较,如果大于节点,就交换 遇到的主要问题...第一组节点和左孩子节点的值在哪 既然调整要从最后一棵子树的节点开始,那如何确定最后一棵子树的节点在哪?...由于 c(child) 最先是指向左孩子的, 若左孩子节点 > 右孩子节点,继续进行交换 若左孩子节点 < 右孩子结点,则 child++,让 child 代表右孩子 这一切都是发生在每一准备进行交换的前一刻...,为将要交换的 child 和 parent 提供准确的数据 什么时候一轮交换结束 在每一进行交换操作的时候,什么时候代表交换结束呢?

    8610

    【组合数学】递推方程 ( 特征方程与特征 | 特征方程示例 | 一元二方程公式 )

    文章目录 一、特征方程与特征 二、特征方程与特征 示例 ( 重要 ) 一、特征方程与特征 ---- 常系数线性齐递推方程标准型 : \begin{cases} H(n) - a_1H(n-1)...: x^k - a_1x^{k-1} - \cdots - a^k = 0 该 1 元 k 特征方程 称为 原递推方程的 特征方程 ; 该 1 元 k 特征方程 有 k 个..., 就可以得到特征 , 一般都是一元二方程 ; 一元二方程形式 ax^2 + bx + c = 0 解为 : x = \cfrac{-b \pm \sqrt{b^2 - 4ac}}{2a}...二、特征方程与特征 示例 ( 重要 ) ---- 1 ....: 上述方程的解就是特征 , 一般都是一元二方程 ; x = \cfrac{1 \pm \sqrt{5}}{2} 参考 : 一元二方程形式 ax^2 + bx + c = 0 解为

    68900

    分区伸缩实验

    有些发型版本默认安装Linux没有支持LVM,或者用户在安装时没有选择LVM,导致 分区空间过大。...系统安装并没有详细的分区,所以我们自然就打起了分区的主意,想再分出一些空闲空间。下面就开始我们的实验吧。 想 要对分区操作的操作需要调整启动选项并使用U盘或光盘进入resecu模式。...删除之后千万 不能保存分区表,不然分区就找不到了,我们要重新创建一个近缩小版的sda2做为分区。...下面我们可以重新启动我们的系统,查看缩是否成功了,如果系统无法启动那就…… 下面是修改分区后的状况,可以看出我们成功从分区手里借出751MB空闲空间。 ?...因为是对文件系统的操作,所以一旦失败,数据丢失是肯定的,缩有风险,操作须谨慎!!!

    2.2K60

    GP TEE可信介绍

    这些安全事件背后都是系统安全性漏洞所导致的,为保护终端设备安全,GP作为一个全球通用标准组织在2017年发布了可信定义和需求规范,从芯片设计和造商、终端生产厂商,SE/TEE厂商都可以参考该规范中来设计自己的产品...下面是GP定义的可信框架: ? 一台设备可能会有一个或多个平台,每个平台包括计算引擎、可执行代码、数据/密钥和可信。可信包括iRoT和eRoT。...iRoT是初始化可信,是设备厂商在终端制造时植入的,用于系统的安全启动、 平台镜像文件执行时的验证等等。...eRoT是增强可信,是设备在运行阶段生成的,由iRoT来验证生成eRoT镜像的可信,eRoT的生成是安全认证、安全验证、更新下载授权等业务场景的需要而存在的。

    3.7K100
    领券