如何基于COLA架构快速实现一个CRUD操作
时间:2021-07-21
本文章向大家介绍如何基于COLA架构快速实现一个CRUD操作,主要包括如何基于COLA架构快速实现一个CRUD操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
COLA 是 Clean Object-oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”,是来自阿里技术专家的DDD开源项目。COLA是一套用于帮助开发人员快速实践DDD落地的项目架构。目前COLA已经发展到COLA 4.0。
在COLA架构中,比如我们想创建一个User,一套完整的调用链大概如下图所示:
1. 前端发起Command请求,经过CommandBus分发给对应Command命令处理程序(在COLA 4.0版本中,CommandBus已经移除了);
2. 应用层服务接收Command请求,进行参数逻辑校验;
3. 调用领域层中调用领域对象UserE的create方法;
4. 在create方法中调用infrastructure层中的gateway实现类,进行数据持久化。
下图是领域对象Customer的方法,其中的create方法实现机制基本一致。
在COLA 4.0架构,更多的时候是在Command Executor(命令处理程序)中调用gateway实现类,完成数据的持久化操作,而不是调用领域对象的create方法。也就是说,create方法直接由gateway实现类提供。
关于COLA 4.0应用项目入门实践、代码落地和源代码下载,可以参考《COLA 4.x架构入门和项目实践》技术专栏。内容由浅入深,收获满满。
《COLA 4.x架构入门和项目实践》技术专栏首先介绍了COLA框架的使用入门,以及与IDEA开发工具的集成等等;然后基于COLA架构,创建DDD经典示例项目-货物运输系统,详细介绍了DDD领域建模、适配层、应用层、领域层和基础设施层的代码开发、防腐层(ACL)设计与实现、领域事件(Domain Event)入门实践、以及基于Kafka消息中间件的消息发布和订阅等等。内容由浅入深,从开发实战出发,逐步掌握基于COLA架构和DDD领域建模思想构建复杂业务应用系统。
原文地址:https://www.cnblogs.com/rickie/p/15039026.html
- sqlalchemy和flask-sqlalchemy几种分页操作
- 一个 tflearn 情感分析小例子
- 前端js,后台python实现RSA非对称加密
- 运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist
- ODL应用开发之MD-SAL中级教程
- Sql参数是一个list的最佳实践
- MyBatis 配置输出日志,不输出SQL问题解决
- lombok让你提高代码整洁度的神器附教程及原理分析
- mvn编译的时候一个破错误,google只有3个结果maven : Failed to install metadata project Could not parse metadata maven-
- 读书|《Mastering Machine Learning with Python in Six Steps》
- 几种简单的文本数据预处理方法
- Fiddler中显示IP方法
- readlink: command not found 解决方案
- Java 并发编程系列: CountDownLatch (上厕所的案例)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- asp.net web api集成微信服务(使用Senparc微信SDK)
- asp.net web api添加统一异常处理
- .NET HttpClient扩展
- md5和base64加密解密
- asp.net web api添加自定义认证
- 代理模式实例
- FastDFS.Client操作文件服务器
- Oracle触发器实现监控某表的CRUD操作
- asp.net web api返回图片至前端
- sql模糊匹配中%、_的处理
- Dapper关联查询
- Vue2.0 + Element-UI + WebAPI实践:简易个人记账系统
- java获取时间整点工具代码
- MyBatis预编译机制详解
- ActiveMQ NMS使用过程中的一点经验