6.7 贡献流程与代码规范
贡献流程与代码规范
欢迎社区贡献!无论是 Bug 修复、新功能还是文档改进,都请遵循以下流程,以便代码能顺畅合并。
分支策略
master/main:对外发布分支,保持随时可发版develop:集成分支,所有新功能先进这里feature/xxx:功能分支,从develop拉出fix/xxx:修复分支,紧急修复可从master拉出
提交代码前的检查清单
-
go build ./...编译通过 -
go test ./...全部通过 -
go test -race ./...无数据竞态 -
gofmt -s -w .已格式化 -
go vet ./...无警告 - 新功能配套单元测试
- 敏感信息(密码、Token、真实数据)未提交
- 更新相关文档(README / mdoc / 接口示例)
提交信息规范
推荐使用 Conventional Commits:
<type>(<scope>): <subject>
[body]type 常见值:
| type | 用途 |
|---|---|
feat |
新功能 |
fix |
Bug 修复 |
docs |
文档变更 |
refactor |
重构(无功能变化) |
test |
测试相关 |
chore |
构建、工具、CI 等杂项 |
perf |
性能优化 |
示例:
feat(short_link): 支持批量导入 Excel 格式
fix(ab_test): 修复权重为 0 时分流异常
docs(v1.0.0): 新增开发指引章节PR / MR 流程
- Fork 仓库(或在 CNB 上拉分支)
- 基于
develop创建feature/xxx分支 - 本地开发、跑测试
- 推送后发起 PR / MR,目标分支
develop - 标题简明、描述补全:背景、改动点、测试方式、影响面
- 等待 Code Review,按反馈迭代
- 合并后删除分支
代码规范
Go 语言约定
- 遵循 Effective Go
- 使用
gofmt -s和goimports格式化 - 优先用标准库,谨慎引入第三方依赖
- 错误处理:不要吞掉错误,要么处理要么向上返回
- 避免全局变量,依赖通过 Helper 注入
- 日志不要打印敏感信息(密码、完整 Token、身份证等)
SQL 与 GORM
- 索引:高频查询字段加索引
- 避免
SELECT *,显式指定字段 - 大事务拆小,避免锁竞争
- 使用
gorm.io/gorm/clause做 upsert,不要拼 SQL
前端(admin-webui)
- 独立仓库维护:
cnb.cool/mliev/open/dwz-admin-webui - 使用 Vue 3 + TypeScript + Ant Design Pro
- 提 PR 时同步说明对应的后端改动
社群与帮助
- GitHub Issues:https://github.com/muleiwu/dwz-server/issues
- CNB Issues:https://cnb.cool/mliev/dwz/dwz-server/-/issues
- QQ 群:1021660914(木雷坞开源家)
- 官方文档:https://www.mliev.com/docs/dwz
许可证
本项目可二次开发用于商业用途,但禁止发布衍生版本,具体条款以仓库根目录 LICENSE 为准。贡献代码即视为同意按相同许可证分发。