# dorive **Repository Path**: digital-engine/dorive ## Basic Information - **Project Name**: dorive - **Description**: 🔥🔥🔥dorive是一个轻量化、渐进式、领域驱动式开发框架,帮助开发者,开发可持续演进的复杂应用。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 21 - **Forks**: 3 - **Created**: 2021-12-17 - **Last Updated**: 2025-11-01 ## Categories & Tags **Categories**: database-dev **Tags**: 领域驱动设计, ddd, ORM, 快速开发 ## README

Dorive

轻量化、渐进式、领域驱动式开发框架

license release commit


### 🎁简介 🔥🔥🔥dorive是一个轻量化、渐进式、领域驱动式开发框架,帮助开发者,开发**可持续演进的复杂应用**。 dorive = domain + driven 或 do + driven ,是原公司项目沉淀后的开源库。 “do”表明了一种态度,只有付诸行动,才能有所收获。 ### 🧱领域驱动 领域驱动是一种软件开发方式。 解决痛点: - **腐化**(代码组织混乱,逻辑互相渗透) - **僵化**(直接依赖过多,修改困难) 实施方法: - 通过**业务划界**,理清业务之间的关系。 - 通过**业务建模**,表达真实的业务逻辑。 核心: - **高内聚** - **低耦合** ### 🏗️架构实现 领域驱动的几种架构实现方式: - 分层架构(Layered Architecture) - 六边形架构(Hexagonal Architecture) - 清洁架构(Clean Architecture) - 事件驱动架构(Event-Driven Architecture, EDA) - CQRS(命令查询职责分离) - 微服务架构(Microservices + DDD) - **3M架构(Microservices + Module + Model)** ### 3️⃣3M架构 一种新的架构实现。在分层架构、微服务架构的基础上,提出将项目**模块化、模型化**,从而达到业务自由组合,灵活定制的效果。 - 逻辑架构图:[logic.png](https://gitee.com/digital-engine/dorive/blob/3.5.2/doc/img/logic.png) - 物理架构图:[physical.png](https://gitee.com/digital-engine/dorive/blob/3.5.2/doc/img/physical.png) ### 📦模块化(module) 一个应用系统由一个或多个模块组成。 模块应具有以下特性: - 每个模块都具备独立运行的能力。 - 每个模块都能单独测试。 - 允许同个模块不同版本,同时存在。 - 模块之间配置、命名空间隔离。 - 模块与模块的配置、脚本等生命周期一致。 - 模块可选择向外暴露的bean。 - 模块之间不直接依赖,可通过接口与事件进行交互。 ### 🛠️模型化(model) 同个领域内的多个模块共享一个边界上下文。 边界上下文的作用: - 以参数的形式,影响模型的行为。 模型应具有以下特性: - 由仓储负责查询业务数据。 - 由工厂负责构建模型实例。 - 模型的持久化行为,能够被监听。 - 查询行为与存储引擎解耦。 ### 💯推荐理由 dorive开发框架实现了模块化、模型化的全部特性,你可以有选择性地使用。 模块化、模型化的优势: - 多人协同,效率高。 - 升级或回退,影响小。 - 调用简单,易维护。 - 无缝迁移,复用性好。 - 面向对象,拓展性好。 - 事件驱动,耦合度低。 - 持续演进,技术负债低。 - 代码生成,开发快。 ### 🚅快速开始 Maven引入: ```xml com.gitee.digital-engine dorive-spring-boot-starter 3.5.3 ``` ### 💡项目案例 项目地址:[dorive-example](https://gitee.com/digital-engine/dorive-example) ### 📝说明文档 文档地址:[Gitee wiki](https://gitee.com/digital-engine/dorive/wikis/pages) ### 🌿版本说明 例如:3.5.1(格式A.B.C) - A-架构版本:架构重构时增加,不保证兼容性。 - B-特性版本:新特性引入时增加。 - C-迭代版本:功能优化、bug修复时增加。 ### 💬依赖项 | 依赖库 | 版本 | 说明 | | ------------------------- | ------ | ------------------- | | spring-boot-starter-web | 2.7.18 | spring boot web集成 | | spring-tx | 5.3.31 | spring事务管理 | | hutool-all | 5.8.25 | 工具库 | | mybatis-plus-boot-starter | 3.5.7 | 数据库框架 | ### 🤝兼容性 | 模块 | 说明 | 模块 | 适配Spring Boot版本 | | -------------------------- | ---------------- | ------ | ------------------- | | dorive-api | 框架规范 | | | | dorive-module | 模块化核心实现 | 模块化 | 2.7.18 | | dorive-test | 测试插件实现 | 模块化 | 2.7.18 | | dorive-core | 模型化核心实现 | 模型化 | 2.2.2 - 2.7.18 | | dorive-event | 事件通知实现 | 模型化 | 2.2.2 - 2.7.18 | | dorive-query | 关联查询实现 | 模型化 | 2.2.2 - 2.7.18 | | dorive-ref | 仓储引用实现 | 模型化 | 2.2.2 - 2.7.18 | | dorive-sql | 动态查询实现 | 模型化 | 2.2.2 - 2.7.18 | | dorive-mybatis-plus | mybatis-plus适配 | 模型化 | 2.2.2 - 2.7.18 | | dorive-web | web开发适配 | 模型化 | 2.2.2 - 2.7.18 | | dorive-autoconfigure | 自动配置实现 | | | | dorive-spring-boot-starter | 启动器 | | | ### 🐞bug反馈与建议 提交问题反馈请说明正在使用的JDK版本、dorive版本,以及依赖库版本。 页面地址:[Gitee issue](https://gitee.com/digital-engine/dorive/issues) ### 🙏🏻特别感谢 - [hutool](https://gitee.com/dromara/hutool/tree/v5-master/) - [mybatis-plus](https://gitee.com/baomidou/mybatis-plus/tree/master/)