# 质量与命名规范

> Go 后端工具链检查与命名约定。

## 工具链(提交前必过)

- 提交前必须通过 `gofmt`/`goimports`、`go vet ./...`、`go test ./...`。
- 仓库有 `golangci-lint` 配置时以其为准。
- 依赖变更后运行 `go mod tidy`,`go.mod` 与 `go.sum` 一起提交。

## 命名

- 一律 MixedCaps,不用下划线;缩写词大小写保持一致:`ociConfigID`、`ParseURL`、`HTTPClient`。
- 包名小写单个词,不用 `util`、`common`、`base` 这类空泛名。
- 变量名长度与作用域成正比:循环变量可用 `i`、`c`,包级变量用完整单词。
- Getter 不加 `Get` 前缀:`user.Name()` 而非 `user.GetName()`。
- 方法接收者 1~2 个字母且同一类型内保持一致,如 `func (s *InstanceService)`。
- 错误变量:导出 sentinel 用 `ErrXxx`,包内用 `errXxx`;自定义错误类型以 `Error` 结尾。
