项目介绍:DDDplus
DDDplus 是什么?
DDDplus,之前名为 cp-ddd-framework(cp代表 Central Platform:中台),是一个轻量级的领域驱动设计(DDD)增强框架。它旨在支持前向和逆向的业务建模,帮助复杂系统架构的演进。
项目特点
-
补全 DDD 构建模块:它填补了 DDD 中缺失的概念,并增强了构建模块,帮助开发者在进行实际建模时克服常见障碍。
-
逆向建模 DSL:DDDplus 提供了一种逆向建模的领域特定语言(DSL),可以从代码中可视化完整的领域知识。
-
扩展点与路由机制:内置多种路由机制的扩展点,使其适用于复杂的业务场景,提供灵活的软件解决方案。
优势
- 通过详细的 Javadoc 和示例,它消除了频繁遇到的 DDD 理解误区,使整个软件开发过程(包括分析、设计、设计评审、实现、代码审查、测试)形成一个正反馈的闭环。
- 它连接前线开发者与架构师、产品经理、业务措施持有人及管理团队,使得领域模型的构建更加一致和高效。
当前状态
DDDplus 已被用于生产环境中多个复杂且关键的中台项目。
如何开始?
前向建模
要开始使用 DDDplus,可以在 Maven 项目中添加以下依赖:
<dependency>
<groupId>io.github.dddplus</groupId>
<artifactId>dddplus-runtime</artifactId>
</dependency>
并结合 SpringBoot 进行集成:
@SpringBootApplication(scanBasePackages = {"${your base packages}", "io.github.dddplus"})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
逆向建模
要使用逆向建模功能,请在项目中添加以下依赖:
<dependency>
<groupId>io.github.dddplus</groupId>
<artifactId>dddplus-spec</artifactId>
</dependency>
通过注释您的代码,DDDplus 将解析 AST 并生成领域模型的多种视图:
mvn io.github.dddplus:dddplus-maven-plugin:model \
-DrootDir=${colon separated source code dirs} \
-DplantUml=${target business model in svg format} \
-DtextModel=${target business model in txt format}
此功能假定代码库内的类名是唯一的。
架构守护
DDDplus 还提供了架构守护的功能:
mvn io.github.dddplus:dddplus-maven-plugin:enforce \
-DrootPackage={your pkg} \
-DrootDir={your src dir}
贡献与联系
欢迎通过 GitHub 上的 pull requests 投稿,如发现问题或想请求新功能,可使用 Issue Tracker。对于任何问题,可加入 Gitter Chat 社区进行交流。
开源许可
DDDplus 是基于 Apache License 2.0 协议开源的,用户需遵从该许可协议。