------Java中台项目,Web开发也能面向对象编程,拒绝面条代码。---------
预览
![565aff2680ef2d162d7372ae889c0781.png](https://i-blog.csdnimg.cn/blog_migrate/c8e196d34f1adb5bd8405e0edc5535a4.jpeg)
项目Github地址
https://github.com/wuda0112/foundation
数据库设计
- 目前已经有47个表
- 数据库源文件 DB-Design.mwb
https://github.com/wuda0112/foundation/blob/master/DB-Design.mwb
- 使用 MySQL Workbench 打开
包含的数据库表有用户体系,权限控制体系,店铺,商品,订单,消息通知体系,异步任务等等,持续更新中......
系统设计文档
- 系统文档源文件 System-Design.mm
https://github.com/wuda0112/foundation/blob/master/System-Design.mm
- 使用FreeMind或者XMind打开
包含数据库设计文档,系统约束说明,专有名词说明等等,持续更新中......
模块简介
- foundation-lang:定义了很多工具类,常用的与业务无关的基础类,比如,树形结构,Snowflake唯一ID生成器等等。没有数据库相关的维护。
- foundation-store: 维护店铺模块
- foundation-item: 维护Item模块,Item可以表示很多概念,比如最常见的商品
- foundation-commons:用于维护与业务无关,通用的数据库表,比如维护email,phone,通用的实体属性等
- foundation-user:维护用户体系,最主要的就是维护数据库表的完整性
- foundation-security:维护权限控制体系
- foundation-test:测试用例,前提是先根据数据库设计文档建立好数据库。比如测试添加用户接口,测试添加商品接口等等
- 未来还有订单体系,消息通知体系等等,持续更新中......
如何搭建完整系统
比如想做一个电商系统,则引入foundation-lang,foundation-commons,foundation-user,foundation-security,foundation-store,foundation-item等模块即可
推荐的优势
- 数据库中台项目,不耦合业务,基于这个中台可以发展出各种业务
- 像使用开源组件一样,100%面向对象编程,绝对不是dao,mapper这样一路下来的面条代码
- 数据库设计很抽象,不为特点业务开发,比如像权限体系,很多都是user-role这样的模式,而我们这里使用subject,target,action等这样的抽象概念,参考[JAAS](https://docs.oracle.com/javase/7/docs/technotes/guides/security/jaas/JAASRefGuide.html),几乎可以表示所有的权限体系。
- 丰富的文档,注释