Giter Site home page Giter Site logo

xtoon-boot's Introduction

xtoon-boot

基于DDD领域模型并支持SaaS平台的开发脚手架.

ApiAdmin ApiAdmin ApiAdmin

为何选择xtoon-boot

  • 解决编写过程式和事务代码,造成后期维护逻辑混乱、维护成本高的痛点;
  • 抛弃MVC框架,拥抱更适合复杂业务的开发框架;
  • 网上基本讲的都是DDD的理论很少有讲怎么落地,xtoon-boot提供了完整落地方案和实践;
  • 可以快速开发,框架提供了系统管理和组织架构等核心模块;
  • 支持多租户的SaaS平台;

为何开源

工作中一直有个困恼:为什么身边很多项目后期维护时业务逻辑变的混乱不堪,service层代码变的庞大难以修改,维护成本也越来越高,有没有好的解决方式的?
后来接触到Eric Evans的DDD(Domain-Driven Design 领域驱动设计),发现这正是为了解决复杂业务而提出的**。 但后来并没找到一套基于DDD应用的开源框架,因此决定自己从0开始投入研发。
现在1.0版本终于上线了,我们把这套框架开源出来想跟大家探讨并一起维护,希望今后有更多的项目和产品能使用这套框架。

PS

由于本人并不擅长前端,因此前端项目还比较简陋,多多谅解,后续会跟上!
大家多点 ⭐Star 支持下。

技术选型

  • Springboot
  • Apache Shiro
  • Mybatis-plus
  • Alibaba Druid
  • Element-ui

PS

对于DDD模型是独立于外部技术的,这不是重点!

主要模块

  1. 登录注册:账号、手机号验证登录,租户注册;
  2. 用户管理:用户新增,分配角色,禁用等;
  3. 角色管理:角色新增,查看,维护菜单等;
  4. 菜单管理:树形菜单管理,可配置菜单和按钮权限等;
  5. 租户管理:租户列表,禁用等;
  6. 操作日志:系统操作日志记录和查询;

项目结构

xtoon-boot
├─db     数据库SQL脚本
│ 
├─src      管理后台
│    │ 
│    ├─java  模块
│    │    ├─application 应用层
│    │    │    └─impl      应用接口实现
│    │    ├─domain 领域层(核心)
│    │    │    ├─exception      自定义异常
│    │    │    ├─factory        工厂
│    │    │    ├─model          领域模型
│    │    │    ├─service        领域服务
│    │    │    ├─Repository     资源接口
│    │    │    ├─shared         共享类
│    │    │    ├─specification  规格校验
│    │    │    └─util           工具包
│    │    ├─infrastructure 基础设施层
│    │    │    ├─common         通用类
│    │    │    ├─persistence.mybatis           mybatis持久化类(应该都熟悉就不展开了)
│    │    │    └─util           工具包
│    │    └─interfaces 接口层
│    │         ├─common         通用类
│    │         └─sys            系统管理
│    │             ├─facede     门面类
│    │             └─web        Controller类
│    └─resources 
│        ├─static.swagger       swagger文件
│        ├─application.yml      全局配置文件
│        └─logback-spring.xml   日志配置文件
│       

核心**

  • 六边形理论

2005年Alistair Cockburn提出了六边形架构,又被称为端口和适配器架构。观察上图我们发现,对于核心的应用程序和领域模型来说,其他的底层依赖或实现都可以抽象为输入和输出两类。组织关系变为了一个二维的内外关系,而不是上下结构。每个io与应用程序之前均有适配器完成隔离工作,每个最外围的边都是一个端口。基于六边形架构设计的系统是DDD追求的最终形态。

相关文档

技术交流

如果有什么问题或建议可以 提ISSUE 或 加群(QQ:130950009),交流技术,分享经验。
如果你解决了某些bug,或者新增了一些功能,欢迎 贡献代码,感激不尽~

维护者

版权声明

Apache-2.0 license

本软件基于 Apache-2.0 协议进行分发和使用,更多信息参见 协议文件

xtoon-boot's People

Contributors

haoxin963 avatar xtoon 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.