领域事件和集成事件
领域事件(Domain Event) 是 DDD 中的概念. 是指在领域内部, 用来彼此同步状态的事件. 集成事件(Integration Event) 是微服务中的概念, 是指不同的微服务之间进行通信的载体. 这里以微软文档中的DDD示例程序eShop为例. 该案例中, Ordering 即订单部分采用了DDD的架构. 在Ordering.Domain中定义了领域模型, 其中包括两个聚...
领域事件(Domain Event) 是 DDD 中的概念. 是指在领域内部, 用来彼此同步状态的事件. 集成事件(Integration Event) 是微服务中的概念, 是指不同的微服务之间进行通信的载体. 这里以微软文档中的DDD示例程序eShop为例. 该案例中, Ordering 即订单部分采用了DDD的架构. 在Ordering.Domain中定义了领域模型, 其中包括两个聚...
深入理解DDD中的聚合根及其实践要点 领域驱动设计(DDD)是软件架构领域的重要思想工具,而聚合根则是其中最关键的概念之一。本文将围绕聚合根的生命周期、与Entity的区别、业务副作用、聚合根与仓储模式的配合等主题,结合实际开发经验进行梳理和扩展,加深对聚合这一模式的理解。 1. 聚合根的生命周期 聚合根的生命周期,通常要比分层架构中的Entity要长。这是因为聚合根承担着完整业务事务...
什么是 Jenkins jenkins是用java实现的自动化构建工具. 他可以单机部署, 也可以分布式部署. 使用过Github Pages的同学应该知道Github Action, 当我们创建一个新的提交后, Action会自动执行, 根据仓库中的 pipeline 文件, 执行自动打包和发布. jenkins也是类似的工具. 工作流程 Jenkins 可以配置触发规则, 通常来说, ...
在Vue中可以使用两个API来创建响应式变量: ref() reactive() 其中, reactive(a) 会返回一个 a 的代理对象(a是非基础类型). 而 ref(a) 会返回一个 RefImp<typeof a> 对象, 其中的 value(其实是_value的访问器) 是 a 的代理对象. 当 a 是一个基本类型时, 不能使用 reactive 来创...
在书写js代码时,语句末尾的分号是可以不写的.我最初以为,js解释器会自动将回车识别为语句的结束.但事实并不是这样. js拥有”自动分号插入机制”,简称ASI.而且,回车符在解释器眼中只是空白. 有关ASI的原则,这里简单列举一下 插入分号的情况 新行并入当前行将构成非法语句,自动插入分号. 在continue,return,break,throw后自动插入分号 ++、–后缀...
Vite Config 详解 小贴士 npm run xxx 实际是执行 npx 命令的一个简写, 实际执行的命令记录在 package.json 中. npx vite --debug 可以开启 vite 调试模式, 该模式会在终端输出当前的 vite 配置, 并输出调试信息. 动态生成配置文件 大多情况下, 我们需要在开发 生产过程中使用不同的配置文件, 可以给...
在IIS上部署Vite打包的静态项目, 各种原因需要在同一个IIS应用中要承载多个网页, 因此我的网站必须在公网地址加一个文件夹的子路径,像这样: http://xxx.cn/web 这时候需要在 Vite配置文件 配置 base 选项, 否则, 内部的构建路径都会出错. 顺便记录一个测试时前端解决CORS跨域问题的方案. 使用 Vite 的服务器代理, 在 Vite配置文件中 添加 se...
Vben Admin 源码解读 长期更新…… 为了提高编码能力和设计能力,并提高对Vue的理解,选择广受好评的 Vben Admin 项目进行学习。文章将 Vben 源码中涉及的Vue高级功能进行标注和解释,并对一些Vue组件设计思想进行解读。 本文不会涉及Vue基础内容 登陆 登陆动作有以下重点行为: 表单验证 - 组件行为,使用响应性完成 Form:rule ...
原文链接:阮一峰博客 本文总结一些关于非对称加密的要点,以及迷惑点。 公钥私钥效力相同,只是是否公开这一点不同。 公钥加密,私钥解密可以做到保密性,也就是不被监听。(加密过程请看原文) 私钥加密,公钥解密可以做到正确性,也就是不被篡改。(签名过程请看原文) 使用私钥将信息摘要进行加密,公钥解密后通过对比摘要的一致性来确保信息的正确性。这个过程叫做签名。 公钥有时需要...
转自某评论区解答 简单讲一下委托和回调,以及C#的泛型委托 回调和委托是两个概念。 委托是C#里对函数的类型的描述。是对函数的一种抽象。 举个例子: 声明一个int a,我们可以一直改变他的值,但他的类型一直是 int。 类比一下,我们声明一个函数 void func1(){},但是这个函数就不能变了,在编译器眼里,func1()就代表执行该函数,func1就代表该函数。...