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