REST与DDD
10
16541
12
4K
之前在为什么要使用MVC+REST+CQRS架构我曾经提出DDD是核心,REST是壳的观点,我想在这里详细谈谈我的思路。今天正好看看到老外一篇博文Why REST is so important:按这.
之前在为什么要使用MVC+REST+CQRS架构我曾经提出DDD是核心,REST是壳的观点,我想在这里详细谈谈我的思路。今天正好看看到老外一篇博文Why REST is so important:按这.
Spring Boot DTO示例:实体到DTO的转换
10504
5
4K
在本教程中,我们将学习如何在Spring Boot应用程序中创建DTO(数据传输对象)类,以及如何使用ModelMapper库将实体转换为DTO,反之亦然。数据传输对象设计模式是一种经常使用的设计模式.
在本教程中,我们将学习如何在Spring Boot应用程序中创建DTO(数据传输对象)类,以及如何使用ModelMapper库将实体转换为DTO,反之亦然。数据传输对象设计模式是一种经常使用的设计模式.
依赖注入与事件编程
14
10557
20
2K
依赖注入或者称反转Ioc,通过第三方框架将你需要依赖的类主动注入进来,依赖注入随着Spring和JavaEE6普及,已经成为大家习惯的一种默认处理类关系的方法。我将依赖注入和事件编程进行联系比较,是源.
依赖注入或者称反转Ioc,通过第三方框架将你需要依赖的类主动注入进来,依赖注入随着Spring和JavaEE6普及,已经成为大家习惯的一种默认处理类关系的方法。我将依赖注入和事件编程进行联系比较,是源.
从CRUD编程切换到事件溯源和区块链编程
2
6036
19
2K
CRUD是增删改查的简称,其中增删改都属于一种变动操作,而新增和删改分别属于两种不同类型的变动,如果以记账来类比,新增等同于多了一笔金额,而删改等同于减少了一笔金额。下面以文档的增删改查从记账角度看看.
CRUD是增删改查的简称,其中增删改都属于一种变动操作,而新增和删改分别属于两种不同类型的变动,如果以记账来类比,新增等同于多了一笔金额,而删改等同于减少了一笔金额。下面以文档的增删改查从记账角度看看.
用事件风暴分解单体设计微服务 - capital
5109
10
4K
作为软件工程师和架构师,我们经常面临为遗留系统创建目标微服务架构的挑战。这些系统通常是已经存在多年的大型单体应用程序,通常具有很多依赖性,并且通常在您的公司中没有一个人了解这一切。在这些情况下,一群领.
作为软件工程师和架构师,我们经常面临为遗留系统创建目标微服务架构的挑战。这些系统通常是已经存在多年的大型单体应用程序,通常具有很多依赖性,并且通常在您的公司中没有一个人了解这一切。在这些情况下,一群领.
Rust Web框架列表
21350
4
2K
由于Rust生态系统还处于早期阶段,因此框架有很多选择。每个人都有自己的优点和缺点,没有明显的赢家。RocketRocket是一个十几岁的框架 - 比其他许多框架更发达,但仍然不太成熟。它的特殊功能是.
由于Rust生态系统还处于早期阶段,因此框架有很多选择。每个人都有自己的优点和缺点,没有明显的赢家。RocketRocket是一个十几岁的框架 - 比其他许多框架更发达,但仍然不太成熟。它的特殊功能是.
In-Stream大数据处理模式
10
10228
19
来自In-Stream Big Data Processing一文总结了当前大数据实时处理的通用设计和模式,主要是Storm, Cassandra, Kafka组合,也包括LinkedIn的Samza.
来自In-Stream Big Data Processing一文总结了当前大数据实时处理的通用设计和模式,主要是Storm, Cassandra, Kafka组合,也包括LinkedIn的Samza.
两个领域事件驱动的开源项目介绍
8936
13
基于DDD的EventSroucing事件溯源和CQRS的项目正在迅速发展,这里介绍两个开源项目:flowing-retail和scalable-coffee-shop。它们都是基于Apache Ka.
基于DDD的EventSroucing事件溯源和CQRS的项目正在迅速发展,这里介绍两个开源项目:flowing-retail和scalable-coffee-shop。它们都是基于Apache Ka.
使用依赖注入实现聚合根之间调用的逻辑悖论
17
11707
17
DDD中如果有两个聚合根调用,如何解决?如果还是使用依赖注入,就会发生聚合根嵌套的可笑事情发生。以代码为例子:有两个聚合根类AggregateRoot1 AggregateRoot2,Aggregat.
DDD中如果有两个聚合根调用,如何解决?如果还是使用依赖注入,就会发生聚合根嵌套的可笑事情发生。以代码为例子:有两个聚合根类AggregateRoot1 AggregateRoot2,Aggregat.
让ChatGPT为你生成室内装修图
3526
5
这里有一个一段的ChatGPT提示,您可以使用它生成无限的室内设计/建筑照片,与Middroute中的提示具有90%以上的一致性。要求ChatGPT:请创建一个表格,将室内建筑照片构图分解为以下关键要.
这里有一个一段的ChatGPT提示,您可以使用它生成无限的室内设计/建筑照片,与Middroute中的提示具有90%以上的一致性。要求ChatGPT:请创建一个表格,将室内建筑照片构图分解为以下关键要.
你的SOA已经使用了EDA和CQRS吗?
21
14642
13
来自2013年4月底的 IDDD Tour 演讲:你的SOA已经使用了EDA和CQRS吗?(What SOA do you have (with extended EDA and CQRS mater.
来自2013年4月底的 IDDD Tour 演讲:你的SOA已经使用了EDA和CQRS吗?(What SOA do you have (with extended EDA and CQRS mater.
幽默:为什么DDD的Bounded Context翻译为"有界上下文"?
5562
10
随着DDD普及发展,DDD的各种名词涌现而出,DDD的难点在于其术语抽象模糊,但模糊而不含糊,模糊是因为位置站得高,站在业务和技术两个领域高度,高屋建瓴;不含糊则是看似模糊的表面背后有深刻的含义。DD.
随着DDD普及发展,DDD的各种名词涌现而出,DDD的难点在于其术语抽象模糊,但模糊而不含糊,模糊是因为位置站得高,站在业务和技术两个领域高度,高屋建瓴;不含糊则是看似模糊的表面背后有深刻的含义。DD.
ddd-crew/ddd-starter-modelling-process:DDD设计入门建模流程
10455
6
10K
如果您是DDD的新手,并且不确定从哪里开始,则此流程为您提供了逐步指南,帮助学习和实际应用域驱动设计的各个方面:从围绕组织的业务模型定位到编码域模型。使用此流程将指导您完成设计具有DDD思维方式的软件.
如果您是DDD的新手,并且不确定从哪里开始,则此流程为您提供了逐步指南,帮助学习和实际应用域驱动设计的各个方面:从围绕组织的业务模型定位到编码域模型。使用此流程将指导您完成设计具有DDD思维方式的软件.
为什么我再也不使用MVC框架了?
2
19000
7
7K
该文通过作者亲身设计思考经历,从遭遇MVC使用问题开始,然后引入函数式Reactive响应式编程,重新设计了前端架构,最后颠覆了基于OO范式的传统MVC模式。以下是原文大意翻译:这些天我的最糟糕工作是.
该文通过作者亲身设计思考经历,从遭遇MVC使用问题开始,然后引入函数式Reactive响应式编程,重新设计了前端架构,最后颠覆了基于OO范式的传统MVC模式。以下是原文大意翻译:这些天我的最糟糕工作是.
在Spring Cloud中使用OPENFEIGN技巧与最佳实践
1
16879
5
13K
与单片应用程序相比,分布式系统中的服务在多台计算机上运行。为了让这些服务相互交互,我们需要某种进程间通信机制。在OpenFeign的帮助下,我将解释如何启动对另一个服务的同步调用。 OpenFign是.
与单片应用程序相比,分布式系统中的服务在多台计算机上运行。为了让这些服务相互交互,我们需要某种进程间通信机制。在OpenFeign的帮助下,我将解释如何启动对另一个服务的同步调用。 OpenFign是.
JDK 21:Java 21 中的新特性
5482
2
7K
Java Development Kit (JDK) 21 将于 9 月作为 Oracle 标准 Java 实现的下一个长期支持版本发布,现在正式为其提议了 16 个特性,最近几天又增加了三个特性。 .
Java Development Kit (JDK) 21 将于 9 月作为 Oracle 标准 Java 实现的下一个长期支持版本发布,现在正式为其提议了 16 个特性,最近几天又增加了三个特性。 .
基于Vert.x和SpringBoot实现响应式开发
21712
6
8K
Vert.x是作为一个事件总线的设计,以保证应用中不同部分以一种非堵塞的线程安全方式通讯,其原理来自于Erlang和Akka,它是能充分利用多核处理器性能并实现高并发编程的需求。所有Vert.x 的V.
Vert.x是作为一个事件总线的设计,以保证应用中不同部分以一种非堵塞的线程安全方式通讯,其原理来自于Erlang和Akka,它是能充分利用多核处理器性能并实现高并发编程的需求。所有Vert.x 的V.
到底什么是事件驱动架构EDA?这篇文章讲得比较清楚。
1
11865
9
7K
通过事件进行应用程序的设计是自20世纪80年代后期以来的一种实践。我们可以在前端或后端的任何地方使用事件。当按下按钮时,某些数据发生更改或执行某个后端动作。但是事件究竟是什么呢?我们什么时候应该用它呢.
通过事件进行应用程序的设计是自20世纪80年代后期以来的一种实践。我们可以在前端或后端的任何地方使用事件。当按下按钮时,某些数据发生更改或执行某个后端动作。但是事件究竟是什么呢?我们什么时候应该用它呢.
微服务
7
15212
11
Martinfowler的这篇微服务文章引发了软件架构方面的热烈讨论,“今天在软件架构方面,除了微服务这个名称没有什么新的”。现大意翻译如下:微服务,是另外一个在软件体架构这个拥挤的街道上冒出的新名词.
Martinfowler的这篇微服务文章引发了软件架构方面的热烈讨论,“今天在软件架构方面,除了微服务这个名称没有什么新的”。现大意翻译如下:微服务,是另外一个在软件体架构这个拥挤的街道上冒出的新名词.
免费开源的速度测试软件:openspeedtest
3217
7
Speed Test by OpenSpeedTest 是一种免费的开源 HTML5 网络性能评估工具,使用 Vanilla Javascript 编写,仅使用内置 Web API,如 XMLHtt.
Speed Test by OpenSpeedTest 是一种免费的开源 HTML5 网络性能评估工具,使用 Vanilla Javascript 编写,仅使用内置 Web API,如 XMLHtt.
基于线程与基于事件的并发编程之争
12914
12
3K
Java和Node.js可以说分别是基于线程和基于事件的两个并发编程代表,它们互相指责瞧不起对方,让我们看看各种阵营的声音:基于事件的粉丝认为线程是一个坏主意,原因有是:1. 你得显式的协调共享数据的.
Java和Node.js可以说分别是基于线程和基于事件的两个并发编程代表,它们互相指责瞧不起对方,让我们看看各种阵营的声音:基于事件的粉丝认为线程是一个坏主意,原因有是:1. 你得显式的协调共享数据的.
Spring Boot的@Configuration和自动配置有什么区别?
7645
12
2K
我们都知道springboot的这个原理@SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentS.
我们都知道springboot的这个原理@SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentS.
如何在 Rust 项目中读取 JSON、YAML 和 TOML 文件
8620
2
13K
在本教程中,您将学习如何从外部源读取 JSON、YAML 和 TOML 文件,以便在您的 Rust 项目中使用。使用 Rust 编程语言读取 JSON 文件、YAML 文件和 TOML 文件。处理文件.
在本教程中,您将学习如何从外部源读取 JSON、YAML 和 TOML 文件,以便在您的 Rust 项目中使用。使用 Rust 编程语言读取 JSON 文件、YAML 文件和 TOML 文件。处理文件.
为什么组合好于继承?
9
8350
18
2K
本文使用亲身案例形象说明了软件设计领域为什么组合Composition要好于继承(包括接口继承),只有需求分析域的问题分解,才有设计编程的组合应用。来自游戏公司GameSys的Yan Cui发表了博文.
本文使用亲身案例形象说明了软件设计领域为什么组合Composition要好于继承(包括接口继承),只有需求分析域的问题分解,才有设计编程的组合应用。来自游戏公司GameSys的Yan Cui发表了博文.
Vue.js比jQuery更容易学习
1
7649
16
3K
普遍认为jQuery是适合web初学者的起步工具。许多人甚至在学习jQuery之前,他们已经学习了一些轻量JavaScript知识。为什么?部分是因为jQuery的流行,但主要是源于经验开发人员的一个.
普遍认为jQuery是适合web初学者的起步工具。许多人甚至在学习jQuery之前,他们已经学习了一些轻量JavaScript知识。为什么?部分是因为jQuery的流行,但主要是源于经验开发人员的一个.
java-callgraph:为Java程序生成静态和动态调用依赖图
3089
8
一套用于在Java中生成静态和动态调用图的程序。 javacg-static。从jar文件中读取类,沿着方法体走,并打印出一个调用者-被调用者的关系表。 javacg-dynamic。作为一个Java.
一套用于在Java中生成静态和动态调用图的程序。 javacg-static。从jar文件中读取类,沿着方法体走,并打印出一个调用者-被调用者的关系表。 javacg-dynamic。作为一个Java.
正好一次(Exactly-once)消息传递在Kafka中已经完全支持
11783
9
8K
本文是来自Kafka的创始人Jay Kreps的一篇博文,回答了世面上怀疑Kafka是否支持正好一次(Exactly-once)的消息传递,从而说明了Kafka能支持分布式事务,保证微服务事务的完整性.
本文是来自Kafka的创始人Jay Kreps的一篇博文,回答了世面上怀疑Kafka是否支持正好一次(Exactly-once)的消息传递,从而说明了Kafka能支持分布式事务,保证微服务事务的完整性.
什么是事件网格? - solace
2174
22
事件网格是一个可配置的动态基础设施层,用于在解耦的应用程序、云服务和设备之间分发事件。它使事件通信能够得到管理、灵活、可靠和快速。事件网格是通过互连的事件代理网络创建和启用的。换句话说,事件网格是一个.
事件网格是一个可配置的动态基础设施层,用于在解耦的应用程序、云服务和设备之间分发事件。它使事件通信能够得到管理、灵活、可靠和快速。事件网格是通过互连的事件代理网络创建和启用的。换句话说,事件网格是一个.
uber/cadence:Cadence是一种分布式,可扩展,持久且高度可用的流程编排引擎
11394
6
5K
定位类似zeebe、activiti之类工作流引擎,高级别的区别在于zeebe是基于BPMN的,Cadence支持使用Java或Go等普通编程语言编写编排代码。大多数复杂程序都不是使用可视化编程编写的.
定位类似zeebe、activiti之类工作流引擎,高级别的区别在于zeebe是基于BPMN的,Cadence支持使用Java或Go等普通编程语言编写编排代码。大多数复杂程序都不是使用可视化编程编写的.
Spring Boot如何生成swagger.json?
11721
7
使用java spring boot框架创建REST api,可以在maven中导入“springfox-swagger2和springfox-swagger-ui”来生成swagger文档,可以使用.
使用java spring boot框架创建REST api,可以在maven中导入“springfox-swagger2和springfox-swagger-ui”来生成swagger文档,可以使用.