## 命名规范 - **清晰优先**:名称应准确表达含义,避免歧义。 - **导出规则**:导出标识符首字母大写,未导出首字母小写。 - **包名**:小写单词,简短且描述职责(如 `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` 约定,避免多个布尔参数。