08 2021 档案
摘要:
Axon 框架是基于JVM平台的开源产品,由Allard Buijze于2009年创立。2017年7月,成立了一家独立公司AxonIQ,专门与Axon产品合作。
Axon 框架的程序遵循基于领域驱动设计(DDD)思想、命令查询职责分离 (CQRS)、事件驱动架构(Event Driven Architecture,EDA)的架构模式。这些原则的结合,使基于Axon的应用程序更加健壮、适应性更强。
阅读全文

摘要:
针对Java程序员而言,开发服务器端程序,程序的运行环境是Linux,在Mac OS X这个Unix上面开发,其实很方便。
本技术专栏帮忙Java程序员,搭建工作环境,如JDK、Maven、IntelliJ IDEA、Docker、虚机、以及各种常用工具等等,轻松体验在macOS上日常开发工作。
阅读全文

摘要:
针对于刚刚学习编程的同学来说,Java编程的过程中,会有很多的括号,而且括号还必须得成对出现,那么这个时候对于很多初学者来说,可能会经常出现多括号或者少括号的问题,而且当代码稍微复杂一点点的时候就更容易出现这种问题了,尤其是编程习惯不是很好的同学,没有严格的缩进,各种俄罗斯套娃式的括号简直让人心碎,那么这个时候如果出现了这些问题就是非常脑阔疼的。
针对这个问题,本文将介绍在IDEA开发工具中使用Rainbow Brackets 插件,也就是彩虹括号,各种鲜明颜色的括号。
阅读全文

摘要:
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”,是来自阿里技术专家的开源项目。目前COLA已经发展到COLA 4.0。
COLA既是架构,也是框架。COLA框架继承了DDD的设计思想。
阅读全文

摘要:
技术专栏首先介绍了COLA框架的使用入门,以及与IDEA开发工具的集成等等;然后基于COLA架构,创建DDD经典示例项目-货物运输系统,详细介绍了DDD领域建模、适配层、应用层、领域层和基础设施层的代码开发、防腐层(ACL)设计与实现、领域事件(Domain Event)入门实践、以及基于Kafka消息中间件的消息发布和订阅等等。内容由浅入深,从开发实战出发,逐步掌握基于COLA架构和DDD领域建模思想构建复杂业务应用系统。
阅读全文

摘要:
在领域驱动架构中,通常会将查询和命令操作分开,我们称之为CQRS(命令查询职责分离Command Query Responsibility Segregation)。这张图是来自Martin Fowler大师的文章CQRS(https://www.martinfowler.com/bliki/CQRS.html)。
上图中读模块Query Model和写模块Command Model只是逻辑分离,物理层面还是使用了同一个数据库。我们可以进一步将数据库改成读库和写库做到物理分离,这时候就需要同步读写库。
阅读全文
