惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
H
Help Net Security
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
The Register - Security
The Register - Security
U
Unit 42
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
IT之家
IT之家
云风的 BLOG
云风的 BLOG
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
Docker
T
The Blog of Author Tim Ferriss
Recorded Future
Recorded Future
月光博客
月光博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
罗磊的独立博客
G
Google Developers Blog
Jina AI
Jina AI
P
Proofpoint News Feed
J
Java Code Geeks
I
InfoQ
博客园 - 司徒正美
D
DataBreaches.Net
博客园 - 叶小钗
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
Google DeepMind News
Google DeepMind News
L
LangChain Blog
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - Franky
人人都是产品经理
人人都是产品经理
V
V2EX
F
Full Disclosure
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
V
Visual Studio Blog

博客园 - Rickie

DeepSeek-V3 解读:优化效率与规模 一步一步构建RAG智能问答系统 Milvus向量数据库入门实践 LangChain轻松入门和开发实践 Hugging Face 轻松入门 PyTorch深度学习零基础入门 Spring Security OAuth2+JWT开发实践 Spring Security开发实践 Redis 7.x 入门和开发实战 RedisInsight :Redis 官方可视化工具 Hadoop v3.1 大数据技术快速入门 《Apache RocketMQ 深入浅出》系列文章 Kafka v2.3 快速入门与实践 Apache Doris 轻松入门和快速实践 一步一步编译最新版Apache Doris 0.15版本的详细过程 阿里开源COLA 4.0源码编译和部署过程 Java实体映射工具MapStruct 与BeanUtils性能比较 阿里DDD项目最佳实践-COLA 架构总览 Java实体映射工具MapStruct详解
COLA 4.x和DDD项目实践精粹
Rickie · 2021-10-30 · via 博客园 - Rickie

在《COLA 4.x架构入门和项目实践》专栏基础之上,对项目开发实践进行了提炼和总结;同时,针对其中的一些知识点进行扩展和延伸。

专栏介绍

领域驱动设计(Domain Driven Design - DDD)起源于2003年Eric Evans出版《领域驱动设计》。

领域驱动设计DDD最大的好处是将业务语义显现化,把原先晦涩难懂的业务算法逻辑,通过领域对象、统一语言将领域概念清晰的显性化表达出来。

如果整个系统都采用DDD进行领域建模,不仅代码的可读性和系统的可维护性会大大提升,系统之间的边界和交互也会更加的清晰。

COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”,是来自阿里技术专家的开源项目。COLA 4.0本质就是:代码规范+可复用组件+充血领域模型。

本技术专栏在《COLA 4.x架构入门和项目实践》基础之上,对基于COLA架构的项目开发实践进行了提炼和总结;同时,针对其中的一些知识点进行扩展和延伸,包括COLA架构、CQRS模式、代码落地实践和建议规则、领域事件多种实现方式、聚合根工厂模式、MapStruct实体映射工具开发实践等等。

专栏大纲

本专栏中首先总结了COLA分层架构和CQRS架构模式在DDD项目落地实践中的一些经验分享和建议规则;然后重点介绍了基于Guava EventBus、Spring框架中事件机制、以及Kafka消息中间件,实现领域事件的发布订阅功能;最后,还分享了聚合根工厂模式的必要性和开发实践,以及推荐MapStruct实体映射工具在DDD-COLA项目中应用等等。

专栏主要内容如下:

  • 阿里开源COLA架构中模块职责分析和建议包结构参考模型;

  • COLA分层架构、CQRS架构模式和业务调用时序图;

  • 领域驱动设计DDD和COLA架构各模块代码落地实践;

  • 领域驱动设计DDD和COLA架构落地实践建议规则;

  • 基于Guava EventBus实现领域事件落地实践-事件总线入门;

  • 基于Guava EventBus实现领域事件落地实践-创建领域事件和发布器;

  • 基于Guava EventBus实现领域事件落地实践-创建Guava领域事件发布器;

  • 基于Guava EventBus实现领域事件落地实践-发布领域事件;

  • 基于Guava EventBus实现领域事件落地实践-订阅并处理领域事件;

  • 基于Guava EventBus实现领域事件落地实践-监听领域事件并发送邮件;

  • 基于Spring ApplicationListener和ApplicationEvent实现领域事件落地实践;

  • 基于Spring @EventListener注解实现领域事件落地实践;

  • 基于消息中间件Kafka实现领域事件落地-配置kafka主题和生产者;

  • 基于消息中间件Kafka实现领域事件落地实践-创建领域事件发布器和领域事件;

  • 基于消息中间件Kafka实现领域事件落地实践-处理领域事件;

  • 领域驱动设计DDD开发实践-为什么需要引入工厂模式?

  • Order聚合、聚合根和OrderFactory工厂的详细实现;

  • 分层架构、数据模型、转换器和MapStruct实体映射工具;

  • MapStruct实体映射工具在COLA应用项目中的开发实践;

  • COLA 4.x和DDD项目实践精粹:示例项目介绍;