项目命名
对于live后端底层服务使用live-xxx-service的对项目进行命名
项目模块命
| live-xxx-api | 对外暴露的接口定义 |
|---|
| live-xxx-start | 程序主入口 |
| live-xxx-app | 应用层;提供简单的应用服务 |
| live-xxx-domain | 领域层;业务核心逻辑 |
| live-xxx-infrastructure | 基础设施层; |
包结构定义
api
| package | package | 说明 |
|---|
| com.live.service | | 服务提供RPC接口定义:1. 命名规范XxxRemoteService,比如:AnchorRemoteService 2. 接口返回值需要使用Response进行包装,Response泛型必须指定返回类型;3. 写接口必须使用@CommonExecutor注解打印参数; |
| |
| com.live.common | enums | 对外暴露的枚举类包 |
| constants | 对外暴露的常量类包 |
| utils | 对外暴露的工具类包 |
| com.live.request | | RPC接口的请求参数 XxxRequest |
| com.live.dto | | XxxDTO,API接口返回模型 |
start
| package | package | 说明 |
|---|
| com.live.service | impl | RPC接口的实现,输出Response |
app
| package | package | 说明 |
|---|
| com.live.app.appservice | | 参数校验,提供简单的应用服务XxxAS |
| com.live.app.convert | | 请求参数转成,领域对象转换成API返回模型XxxConvert |
domain
| package | package | 说明 |
|---|
| com.live.domain | aggr | 聚合 XxxAggr |
| entity | 实体XxxEntity |
| valueobject | 值对象XxxVO |
| factory | 工厂 XxxFactory |
| repository | 仓储XxxRepository |
| service | 领域服务定义XxxService |
| service.impl | 领域服务实现XxxServiceImpl |
| com.live.external | | 定义需要依赖外部接口XxxService |
| com.live.event | | 定义领域事件消息 XxxEvent |
| com.live.convert | | 请求参数转成,领域对象转换成API返回模型XxxConvert |
infrastructure
| package | package | 说明 |
|---|
| com.live.domain.convert | | 数据库对象转成领域对象 |
| com.live.domain.external | | 定义外部接口的实现,封装对RPC的调用 |
| com.live.domain.config | | 数据库,redis,Apollo等配置 |
| com.live.domain.dal | mapper | MyBatics mapper |
| dataobject | DB映射模型 |
| com.live.domain.repository | | 数据仓库的实现 |