## 命名规范


- **清晰优先**：名称应准确表达含义，避免歧义。
- **导出规则**：导出标识符首字母大写，未导出首字母小写。
- **包名**：小写单词，简短且描述职责（如 `store`、`auth`）。
- **文件名**：小写（可下划线分隔），测试文件以 `_test.go` 结尾。
- **函数/变量/类型**：驼峰命名；导出使用 PascalCase（例如 `UserService`、`CreateUser`）。
- **接口**：以行为命名，常用 `-er` 结尾（如 `Reader`、`Store`），避免 `I` 前缀。
- **缩写**：统一大小写（例如导出使用 `ID`、`URL`；未导出使用 `id`、`url`）。
- **错误**：包级错误使用 `Err` 前缀（如 `ErrNotFound`）。
- **Context 与并发**：统一使用 `ctx` 作 `context.Context`，通道命名要有语义（如 `done`, `jobs`）。
- **构造函数/选项**：使用 `NewType` 与 `WithXxx` 约定，避免多个布尔参数。



