每一个模块都是作为一个项目组进行开发。
部署架构描述:
首先有一个 GateWay,所有请求都会先打到 GateWay 上面。
GateWay 做一些限流、基本的权限认证。
GateWay 下面是一个 Web 层,Web 层可以分为多种 Web:
- web 发票系统
- web 支付管理平台
Web 的职责是聚合应用层,有权限控制。
权限控制包括数据权限和操作权限。
- 数据权限:类似于 SQL 加上一个 WHERE
- 操作权限:
下层就是 Service 层,职责是领域服务层,处理业务逻辑。
Service 层与 Web 层的区别是:Service 层不做权限,而 Web 层处理权限问题。
Service 层提供的是领域服务,例如:订单服务、用户服务。
命名都是基于这种部署特点。
命名规则如下,以 auth 模块为例,它被分为 3 个子模块:
- auth-web
- auth-center-api
- auth-center
目前都是以后缀作为区别。
最终效果是我们会写出一些通用的领域服务,可以适配于多种场景。
我们的项目是如何快速开发的。
我们会抽象出几个概念:
- Service 这层会使用一个代码生成器,它的特点是不需要考虑权限问题+只考虑领域建模,目前我们会基于一套脚手架。
op-archetypes 工程下给出了所有模板,也就是说模板已经都写好了,并处理了兼容性问题。
使用 live template 快速生成 User 类。
同时,编译项目,生成所有的增删改查代码。
此时,开发一个项目速度就很快了,只需要对实体进行建模,就可以利用代码生成器生成其他通用操作代码。
