优化结构
This commit is contained in:
@@ -1,31 +0,0 @@
|
||||
# Internal Architecture
|
||||
|
||||
本项目采用参考 Kratos beer-shop 的模块化单体结构:先按业务边界垂直拆分,再在
|
||||
模块内部保持 Kratos 的 `service -> biz <- data` 依赖方向。
|
||||
|
||||
```text
|
||||
internal/
|
||||
app/ 应用组合根,只决定启用哪些模块
|
||||
conf/ 运行配置
|
||||
logging/ 公共日志基础设施
|
||||
modules/
|
||||
system/ 稳定的后台系统能力
|
||||
biz/ 领域对象、用例、仓储接口
|
||||
data/ PO、仓储实现、系统持久化
|
||||
service/ DTO 与 DO 转换
|
||||
transport/ HTTP handler、router、middleware
|
||||
initialize/ system 首次安装编排
|
||||
integration/ 外部服务适配器
|
||||
worker/ system 后台任务
|
||||
platform/ 不含业务语义的跨模块机制
|
||||
database/
|
||||
module/
|
||||
task/
|
||||
```
|
||||
|
||||
依赖方向:`cmd -> app -> modules -> platform`。`platform` 不得引用业务模块;业务
|
||||
模块之间优先通过 `biz` 接口协作,不直接引用对方的 `data` 或 `transport`。
|
||||
|
||||
新增模块时,在 `internal/modules/<name>` 内完成自己的分层,并在
|
||||
`internal/app/catalog.go` 注册迁移、菜单/API、默认任务、任务实现和路由。组合根
|
||||
是唯一允许同时知道多个模块具体类型的位置。
|
||||
Reference in New Issue
Block a user