Code Monkey home page Code Monkey logo

cp-ddd-framework's Introduction

Mavenn Central Requirement CI Code Quality: Java Maintainability Coverage Status

Mentioned in Awesome DDD TODO Gitter chat

Table of content

Table of content


What is DDDplus?

DDDplus, originally cp-ddd-framework(cp means Central Platform:中台), is a lightweight flexible development framework for complex business architecture.

一套轻量级业务中台开发框架,以DDD**为本,致力于业务资产的可沉淀可传承,全方位解决复杂业务场景的扩展问题,实现中台核心要素,赋能中台建设。

融合了前中台复杂生态协作方法论,充分考虑组织架构、技术债、学习门槛、可演进性、运维成本和风险而开发的,解决业务开发痛点,是中台架构的顶层设计和完整解决方案。

从业务中来,到业务中去!

Current status

Used for several complex critical central platform projects in production environment.

多个复杂的中台核心项目生产环境下使用。

Quickstart

Please visit Quickstart.

Features

  • Based on DDD, but beyond DDD
  • 14 key business abstractions cover most complex business scenarios
  • Full layered extensibility
  • Empowers InnerSource
  • Provide maven archetype that generates a DDDplus integrated project
  • Total solutions oriented
  • Covers business assets full lifecycle

核心特性:

  • 以DDD架构**为本,面向复杂业务场景架构设计
    • 通过代码框架提供足够约束,让DDD不再仅停留在**层面
    • 只引入弱依赖的 IDomainModel,弱化其他概念,降低DDD上手门槛
    • 提供 dddplus-archetype,直接生成最佳实践的脚手架代码
    • DDD分层架构上增加一层spec layer,解决前中台协同问题
  • 14个核心业务抽象(常用9个),勾勒出业务中台骨架
    • 中台架构的顶层设计
    • less is more,以不变应万变
    • 研发专注于填空式开发,解决局部问题
  • 全方位解决业务的不确定性
    • 业务逻辑、流程、逻辑模型、数据模型的扩展、多态体系
    • 框架本身支持再次扩展
    • 抽象出独立的业务扩展包,框架底层通过ClassLoader机制进行业务隔离,支持不重启热更新
  • 支撑中台战略的复杂生态协作
    • 前台、中台解耦
    • 业务隔离,不同前台间业务隔离,前台和中台隔离
    • 支持稳态、敏态双速应用
    • InnerSource,生态合作协同机制
  • 完整的解决方案
  • 覆盖业务资产的全生命周期
    • 开发,测试,发布,运维,业务运营

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

Reference documentation

Please visit Javadoc.

Using DDDplus

已推送至Maven**库,可直接引入。

Maven

<properties>
    <dddplus.version>1.0.2</dddplus.version>
</properties>

<dependency>
    <groupId>io.github.dddplus</groupId>
    <artifactId>dddplus-runtime</artifactId>
    <version>${dddplus.version}</version>
</dependency>

Gradle

dependencies {
    ...
    compile 'io.github.dddplus:dddplus-runtime:1.0.2'
}

Building from Source

git clone https://github.com/funkygao/cp-ddd-framework.git
cd cp-ddd-framework/
mvn install # will run all test cases

With dddplus-archetype

mvn archetype:generate                          \
    -DarchetypeGroupId=io.github.dddplus        \
    -DarchetypeArtifactId=dddplus-archetype     \
    -DarchetypeVersion=1.0.2                    \
    -DgroupId=com.foo -DartifactId=demo         \
    -Dpackage=com.foo -Dversion=1.0.0-SNAPSHOT  \
    -B

For more, please visit dddplus-archetype project.

The Demo

Please visit 使用该框架搭建订单履约中台的例子.

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
  • lineage
    • programmatically discover business lineage in Microservice Architecture

FAQ

Please visit FAQ.

Landscape of Central Platform

业务中台建设全景图。

Contribution

You are welcome to contribute to the project with pull requests on GitHub.

If you find a bug or want to request a feature, please use the Issue Tracker.

For any question, you can use Gitter Chat to ask.

Release Planning

Interested on when the next release is coming? Check our release planning document for details.

Licensing

DDDplus is licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

cp-ddd-framework's People

Contributors

funkygao avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.