|
|
||
|---|---|---|
| .. | ||
| cmd | ||
| configs | ||
| internal | ||
| README.md | ||
README.md
System Module
系统模块承载当前管理后台的完整业务边界。internal 顶层只保留有明确
生命周期或分层职责的包:
app:组合根、system 模块定义和任务/路由运行时组合biz:系统领域对象、用例和仓储接口conf:配置 proto 与运行时配置解析data:数据库生命周期、系统仓储、系统表和支付持久化initialize:数据库首次初始化和系统种子数据编排integration:Redis、邮件、对象存储、支付、WebSocket 和 EMQX 适配器security:后台 JWT 等安全实现server:Gin server 组合与生命周期;横切 HTTP 代码按子包维护:server/handler、server/middleware、server/router、server/httpxservice:应用服务、DTO 与领域对象转换和路由元数据;DTO 集中在service/dto,根包中的dto_aliases.go只负责兼容旧调用方worker:定时任务执行与调度
目录代表边界,模块文件按资源命名。DTO、handler、中间件、路由和 HTTP
响应工具分别放在独立子包中,避免 service/server 根目录堆积几十个
文件,同时不把只有一两个文件的业务逻辑再拆成新包。单文件的 module
定义并入 app,JWT 实现集中在 security,protobuf JSON 统一使用
pkg/protoutil。
internal/app 只有 catalog.go 和 definition.go 是有意保留的组合根:
前者组装模块 catalog、任务注册和运行时,后者声明 system 的迁移、管理面
和定时任务。它们不是可以下沉到 service 或 data 的业务文件。
系统表统一使用 sys_ 前缀;业务表应由新业务模块自行命名和迁移,不要混入
本目录。
system 通过 Definition() 提供迁移、支付菜单/API 和默认任务,通过
worker.TaskMethods 提供依赖系统用例的任务实现,通过 server/router.Routes 提供
路由。应用组合根消费这些公共协议;新增业务不需要修改 system 的初始化、
worker、路由或数据层。