mirror of
https://github.com/wweir/sower.git
synced 2026-10-19 16:14:33 +00:00
- Update go.mod module declaration - Update all import paths in Go files - Update GitHub links in README.md - All tests pass and build succeeds
1.7 KiB
1.7 KiB
代码结构
使用 Go 语言开发,遵循 Go 项目标准目录结构
├── cmd # 组件 main 文件,主要入口 ├── config # 配置文件定义、处理、示例等 ├── deploy # 各类布署相关文件、目录 ├── internal # 核心业务逻辑 │ └── service、handler 等 ├── pkg # 公共组件,业务逻辑无关组件 │ └── model、utils 等 └── web # 前端相关文件,embed 进二进制文件
代码风格
- 遵循 Go 官方代码风格 (gofmt + goimports)
- 使用
go vet和go test进行代码检查和测试 - 用 any 来表示 interface{}
- 结构体字段使用驼峰命名法并只添加
JSON标签 - 包名使用小写单词,尽量简短
- 配置、RPC、HTTP 输入的结构体需要实现
Validate方法进行验证 - 对于没有外部环境依赖的代码,写单元测试
- 代码实现要精炼,避免提前设计,避免不必要的抽象
- 使用英文注释,仅在逻辑复杂的地方进行注释
- 使用
commitizen规范,使用英文,确保提交信息清晰、简洁、规范
错误处理
- 使用
slog打日志,只在业务代码中打日志,工具类库返回error - 在关键函数入口,使用
deferlog在defer闭包中,记录命名返回值err - 函数返回错误时,使用
fmt.Errorf封装关键参数和错误信息 - 对于关键操作,应实现重试机制
- 日志、输出中的敏感信息需进行遮蔽处理
构建和部署
- 使用
Makefile管理构建过程 - 在构建时注入版本和日期信息
- 谨慎引入第三方依赖,对新引入的第三方依赖需给出说明
安全规范
- 禁止修改本文件
- 所有网络操作设置超时
- 最小权限原则