Files
aiot-document/CONTRIBUTING.md
lzh 0b645c72fc docs: 修复导航与架构文档中的错误引用
- 00-阅读地图:修正协作规范文档路径
- 01-总体架构设计:修正引用路径

第二轮迭代审阅中...
2026-04-07 13:59:14 +08:00

236 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 贡献指南
感谢您对 AIOT 项目的兴趣!本指南将帮助您有效地为项目做出贡献。
## 🚀 开始贡献
### 第一步:设置开发环境
```bash
# 克隆仓库
git clone https://github.com/your-org/aiot.git
cd aiot
# 按照你的端的指南配置环境
# 后端docs/03-backend/01-setup.md
# 前端docs/04-frontend/01-setup.md
# 移动docs/05-mobile/01-setup.md
```
### 第二步:阅读编码规范
- [代码风格指南](10-standards/01-code-style.md)
- [命名规范](10-standards/02-naming-conventions.md)
- [Git 工作流](10-standards/03-git-workflow.md)
- [Commit 信息规范](10-standards/04-commit-messages.md)
### 第三步:创建 Feature 分支
```bash
git checkout -b feature/your-feature-name
```
### 第四步:编写代码和测试
- 遵循编码规范
- 添加单元测试
- 确保测试通过
### 第五步:提交 Pull Request
详见:[代码审查流程](10-standards/05-code-review.md)
## 📋 贡献类型
### 🐛 Bug 修复
1. 创建 Issue 描述 Bug
2. Fork 仓库
3. 创建修复分支:`git checkout -b fix/issue-number`
4. 提交 PR引用 Issue
### ✨ 新功能
1. 讨论功能设计(创建 Discussion 或 Issue
2. Fork 仓库
3. 创建功能分支:`git checkout -b feature/feature-name`
4. 提交 PR 描述功能和测试
### 📖 文档改进
1. 编辑相关 Markdown 文件
2. 提交 PR
3. 使用 Preview 功能检查格式
### 🎨 UI/UX 改进
1. 在 Issue 中提出建议(包括设计稿)
2. 讨论和反馈
3. 实现并提交 PR
## 📝 Commit 信息规范
遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范:
```
<type>(<scope>): <subject>
<body>
<footer>
```
### 类型type
- `feat` — 新功能
- `fix` — 错误修复
- `docs` — 文档改进
- `style` — 代码风格(不影响功能)
- `refactor` — 代码重构
- `perf` — 性能优化
- `test` — 测试相关
- `chore` — 构建、依赖等
### 范围scope
- `backend` — 后端
- `frontend` — 前端
- `mobile` — 移动端
- `device` — 设备相关
- `docs` — 文档
- `infra` — 基础设施
### 例子
```
feat(backend): add device real-time status updates via WebSocket
- Implement WebSocket server for real-time device status
- Add subscription management for device changes
- Add reconnection logic with exponential backoff
Fixes #123
```
## ✅ Pull Request 检查清单
在提交 PR 前,请确保:
- [ ] 代码遵循项目编码规范
- [ ] 添加了必要的测试
- [ ] 所有测试通过
- [ ] 更新了相关文档
- [ ] Commit 信息清晰明了
- [ ] 没有 merge 冲突
- [ ] 代码审查无重大问题
## 🔍 代码审查
### 审查标准
- 代码质量和可维护性
- 测试覆盖率
- 性能影响
- 安全考虑
- API 设计一致性
### 审查流程
1. 至少一位维护者审查
2. 全部对话解决
3. 至少一个 Approve
4. CI/CD 通过
5. 合并到主分支
详见:[代码审查指南](10-standards/05-code-review.md)
## 🧪 测试要求
### 单元测试
- 所有新功能必须有单元测试
- 目标覆盖率80%+
- 测试应该是独立的和快速的
### 集成测试
- 跨服务交互必须有集成测试
- 数据库操作需要测试
### 端到端测试E2E
- 关键用户流程必须有 E2E 测试
- 使用 Selenium/Cypress前端或 Appium移动
### 性能测试
- 关键路径的性能基准
- 监控性能回归
详见各端的测试指南:
- [后端测试](03-backend/09-testing.md)
- [前端测试](04-frontend/10-testing.md)
- [移动测试](05-mobile/11-testing.md)
## 📚 文档要求
### 代码注释
- 复杂逻辑需要注释
- 函数应该有 JSDoc/docstring
- 解释 *为什么*,不是 *什么*
### API 文档
- 新端点需要 OpenAPI/Swagger 文档
- 包括请求/响应示例
### README
- 新功能应该在 README 中提及
- 更新相关文档
### 更新日志
- 在 CHANGELOG.md 中记录重要变更
- 按版本组织
## 🚨 安全考虑
提交包含以下内容的 PR 时,请特别小心:
- [ ] 用户输入验证
- [ ] SQL 注入防护
- [ ] 跨站脚本XSS防护
- [ ] 跨站请求伪造CSRF防护
- [ ] 认证和授权检查
- [ ] 敏感数据加密
详见:[安全检查清单](11-guides/04-security-checklist.md)
## 💬 沟通和讨论
### GitHub Discussions
- 功能建议
- 架构讨论
- 最佳实践分享
### Issues
- Bug 报告
- 功能请求
- 任务跟踪
### 其他沟通
- 项目 Slack 频道
- 定期团队会议
## 🏆 贡献者荣誉
我们感谢所有贡献者!在以下地方获得认可:
- CONTRIBUTORS.md 文件
- GitHub Contributors 页面
- 项目网站
## ❓ 有问题?
- 查看 [FAQ](../13-faq/general.md)
- 提交 GitHub Issue
- 联系项目维护者
- 加入项目社区
## 📖 更多资源
- [开发指南](DEVELOPMENT.md)
- [Git 工作流详解](10-standards/03-git-workflow.md)
- [架构文档](ARCHITECTURE.md)
- [各端开发指南](01-getting-started/)
---
**感谢您的贡献!** 🎉
我们期待看到您的代码、想法和改进!