Files
jiebanke/docs/贡献指南.md

275 lines
5.8 KiB
Markdown
Raw Normal View History

# 贡献指南
感谢您对结伴客项目的关注!我们欢迎所有形式的贡献,包括但不限于代码、文档、测试、反馈和建议。
## 🤝 如何贡献
### 报告问题
如果您发现了bug或有功能建议
1. 检查 [Issues](https://github.com/jiebanke/jiebanke/issues) 确认问题未被报告
2. 创建新的 Issue详细描述问题或建议
3. 使用合适的标签标记 Issue
### 提交代码
我们使用 Git Flow 工作流程:
1. **Fork 项目**
```bash
git clone https://github.com/your-username/jiebanke.git
cd jiebanke
```
2. **创建功能分支**
```bash
git checkout -b feature/your-feature-name
```
3. **开发和测试**
- 遵循项目代码规范
- 编写必要的测试
- 确保所有测试通过
4. **提交代码**
```bash
git add .
git commit -m "feat: 添加新功能描述"
git push origin feature/your-feature-name
```
5. **创建 Pull Request**
- 详细描述变更内容
- 关联相关的 Issue
- 等待代码审查
## 📝 开发规范
### 代码风格
- **JavaScript/TypeScript**: 使用 ESLint + Prettier
- **Vue**: 遵循 Vue 3 官方风格指南
- **CSS**: 使用 BEM 命名规范
- **文件命名**: 使用 kebab-case
### 提交消息规范
使用 [Conventional Commits](https://www.conventionalcommits.org/zh-hans/v1.0.0/) 规范:
```
<类型>[可选的作用域]: <描述>
[可选的正文]
[可选的脚注]
```
**类型说明:**
- `feat`: 新功能
- `fix`: 修复bug
- `docs`: 文档更新
- `style`: 代码格式调整
- `refactor`: 代码重构
- `test`: 测试相关
- `chore`: 构建过程或辅助工具的变动
**示例:**
```
feat(user): 添加用户头像上传功能
- 支持jpg、png格式
- 自动压缩和裁剪
- 添加上传进度显示
Closes #123
```
### 分支命名规范
- `feature/功能名称`: 新功能开发
- `bugfix/问题描述`: bug修复
- `hotfix/紧急修复`: 紧急修复
- `docs/文档更新`: 文档更新
## 🧪 测试规范
### 单元测试
- 使用 Jest 进行单元测试
- 测试覆盖率应达到 80% 以上
- 为核心业务逻辑编写测试
### 集成测试
- 使用 Cypress 进行端到端测试
- 覆盖主要用户流程
- 确保跨浏览器兼容性
### 测试命令
```bash
# 运行所有测试
npm test
# 运行单元测试
npm run test:unit
# 运行集成测试
npm run test:e2e
# 生成测试覆盖率报告
npm run test:coverage
```
## 🏗️ 项目结构
### 后端 (backend/)
```
backend/
├── src/
│ ├── controllers/ # 控制器
│ ├── models/ # 数据模型
│ ├── routes/ # 路由定义
│ ├── services/ # 业务逻辑
│ ├── middleware/ # 中间件
│ └── utils/ # 工具函数
├── tests/ # 测试文件
└── docs/ # API文档
```
### 前端 (admin-system/)
```
admin-system/
├── src/
│ ├── components/ # 公共组件
│ ├── pages/ # 页面组件
│ ├── stores/ # 状态管理
│ ├── api/ # API接口
│ ├── utils/ # 工具函数
│ └── styles/ # 样式文件
├── tests/ # 测试文件
└── public/ # 静态资源
```
## 🔧 开发环境搭建
### 环境要求
- Node.js 16.x+
- MySQL 8.0+
- Redis 6.x+
- Git 2.x+
### 快速开始
1. **克隆项目**
```bash
git clone https://github.com/jiebanke/jiebanke.git
cd jiebanke
```
2. **安装依赖**
```bash
# 安装后端依赖
cd backend && npm install
# 安装前端依赖
cd ../admin-system && npm install
```
3. **配置环境变量**
```bash
# 复制环境变量模板
cp backend/.env.example backend/.env
cp admin-system/.env.example admin-system/.env
```
4. **启动开发服务**
```bash
# 启动后端服务
cd backend && npm run dev
# 启动前端服务 (新终端)
cd admin-system && npm run dev
```
## 📋 代码审查清单
提交 Pull Request 前,请确认:
### 功能性
- [ ] 功能按预期工作
- [ ] 处理了边界情况
- [ ] 错误处理完善
- [ ] 性能表现良好
### 代码质量
- [ ] 代码风格符合规范
- [ ] 变量和函数命名清晰
- [ ] 代码结构合理
- [ ] 避免重复代码
### 测试
- [ ] 编写了必要的测试
- [ ] 所有测试通过
- [ ] 测试覆盖率达标
- [ ] 手动测试通过
### 文档
- [ ] 更新了相关文档
- [ ] API文档保持同步
- [ ] 注释清晰准确
- [ ] README更新如需要
## 🎯 贡献领域
我们特别欢迎以下方面的贡献:
### 代码贡献
- 新功能开发
- Bug修复
- 性能优化
- 代码重构
### 文档贡献
- API文档完善
- 使用指南编写
- 最佳实践分享
- 多语言翻译
### 测试贡献
- 单元测试编写
- 集成测试完善
- 性能测试
- 安全测试
### 设计贡献
- UI/UX设计优化
- 交互体验改进
- 视觉设计规范
- 无障碍访问支持
## 🏆 贡献者认可
我们重视每一位贡献者的付出:
- 贡献者将在项目README中被列出
- 重要贡献者将获得项目维护者权限
- 优秀贡献将在项目博客中专门介绍
- 定期举办贡献者聚会和技术分享
## 📞 联系我们
如有任何问题,欢迎通过以下方式联系:
- **GitHub Issues**: [项目Issues页面](https://github.com/jiebanke/jiebanke/issues)
- **邮箱**: dev@jiebanke.com
- **微信群**: 扫描README中的二维码加入
- **技术论坛**: [结伴客开发者社区](https://dev.jiebanke.com)
## 📜 行为准则
参与项目时,请遵守我们的[行为准则](CODE_OF_CONDUCT.md)
- 尊重所有参与者
- 保持友好和专业
- 接受建设性批评
- 关注项目整体利益
- 遵守开源协议
---
再次感谢您的贡献!让我们一起打造更好的结伴客项目! 🚀
*最后更新2024年1月*