package包命名规范
一个包一个职责,包名保持统一格式
- shared:通用共享代码
- contracts:模块之间数据格式统一的包
- utils:工具函数包
- ui:公共UI组件
- hooks:公共hooks
| 包名 | 作用 | 常见内容 |
|---|---|---|
shared | 通用共享代码 | utils、constants、通用类型 |
contracts | 跨模块通信契约 | DTO数据传输对象、API 类型、事件、Schema |
types | 纯类型定义 | TS interfaces/types |
schemas | 数据校验定义 | Zod、JSON Schema |
utils | 工具函数 | format、parse、helper |
constants | 公共常量 | 枚举、固定配置值 |
config | 公共配置 | eslint、tsconfig、vite 配置 |
ui | 公共 UI 组件 | Button、Dialog、Form |
hooks | 公共 hooks | React hooks |
api | API 客户端封装 | fetch、axios、SDK |
sdk | 对外/内部 SDK | client、service 封装 |
core | 核心领域逻辑 | 核心算法、业务能力 |
domain | 领域模型 | entities、value objects |
services | 服务层 | service 封装 |
database | 数据库能力 | schema、repository、ORM |
db | database 简写 | drizzle/prisma 相关 |
auth | 鉴权能力 | token、session、permission |
logger | 日志能力 | logger 封装 |
errors | 错误体系 | 错误码、自定义 Error |
events | 事件系统 | event bus、事件定义 |
queue | 队列能力 | BullMQ、任务队列 |
storage | 文件/对象存储 | S3、R2、MinIO |
cache | 缓存能力 | Redis 封装 |
http | HTTP 通信层 | client、中间件 |
rpc | RPC 能力 | gRPC、tRPC 等 |
cli | 命令行工具 | CLI commands |
worker | 后台任务 | job、consumer |
testing | 测试公共能力 | mocks、fixtures、test utils |
contracts
- 用于统一不同模块之间通信数据格式的包。
- 常放如下内容
Request / Response 类型
DTO(数据传输对象)
事件格式
消息格式
错误结构
Zod / JSON Schema