一套轻量级业务中台开发框架,以DDD思想为本,致力于业务资产的可沉淀可传承,全方位解决复杂业务场景的扩展问题,实现中台核心要素,赋能中台建设。
融合了前中台复杂生态协作方法论,充分考虑组织架构、技术债、学习门槛、可演进性、运维成本和风险而开发的,解决业务开发痛点,是中台架构的顶层设计和完整解决方案。
从业务中来,到业务中去!
核心特性:
- 以DDD架构思想为本,面向复杂业务场景架构设计
- 通过代码框架提供足够的约束和指导,让DDD不再仅停留在思想层面
- 只引入弱依赖的 IDomainModel,弱化其他概念,降低DDD上手门槛
- 提供 dddplus-archetype,直接生成最佳实践的脚手架代码
- DDD分层架构上增加一层
spec layer
,解决前中台协同问题
- 14个核心业务抽象(常用9个),勾勒出业务中台骨架
- 中台架构的顶层设计
- less is more,以不变应万变
- 研发专注于填空式开发,只需解决局部问题
- 全方位解决业务的不确定性
- 业务逻辑、流程、逻辑模型、数据模型的扩展、多态体系
- 框架本身支持再次扩展,便于被集成
- 抽象出独立的业务扩展包,框架底层通过
ClassLoader
机制进行业务隔离,支持热更新 - 平台容器包、平台业务包与业务扩展包:分离
- 支撑中台战略的复杂生态协作
- 前台、中台解耦
- 业务隔离,不同前台间业务隔离,前台和中台隔离
- 支持稳态、敏态双速应用
- InnerSource,生态合作协同机制
- 完整的解决方案
- 业务能力演化,业务测试,最佳实践,架构持续防腐,重构的导流验证,绞杀者落地方案等
- 提供 一套完整的Demo工程
- 演示 5分钟搭建一个仓储中台WMS,手把手真实场景教学
- DDDplus框架,始终保持简单性
Modules
dddplus
├── dddplus-spec - Specification of DDDplus
├── dddplus-runtime - Runtime implementation
├── dddplus-plugin - Plugin jar hot reloading mechanism
├── dddplus-unit - Extra unit test facilities
├── dddplus-enforce - Enforce expected evolvement of the business architecture
└── dddplus-test - Fully covered unit test cases
Key abstractions
Using DDDplus
已推送至Maven中央库,可直接引入。
Maven
<dependency> <groupId>io.github.dddplus</groupId> <artifactId>dddplus-runtime</artifactId> <version>1.1.0</version> </dependency>
Gradle
dependencies { ... compile 'io.github.dddplus:dddplus-runtime:1.1.0' }
Building from Source
git clone https://github.com/funkygao/cp-ddd-framework.git cd cp-ddd-framework/ mvn install
With dddplus-archetype
mvn archetype:generate \ -DarchetypeGroupId=io.github.dddplus \ -DarchetypeArtifactId=dddplus-archetype \ -DarchetypeVersion=1.1.0 \ -DgroupId=com.foo -DartifactId=demo \ -Dpackage=com.foo -Dversion=1.0.0-SNAPSHOT \ -B
For more, please visit dddplus-archetype project.
Demos
DDDplus Ecosystem
- dddplus-archetype
- a maven archetype that generates a complete DDDplus driven project skeleton
- dddplus-visualizer
- a CLI parsing DDDplus driven project Java AST with ANTLR and visualize your business artifacts