275 lines
5.8 KiB
Markdown
275 lines
5.8 KiB
Markdown
|
|
# 贡献指南
|
|||
|
|
|
|||
|
|
感谢您对结伴客项目的关注!我们欢迎所有形式的贡献,包括但不限于代码、文档、测试、反馈和建议。
|
|||
|
|
|
|||
|
|
## 🤝 如何贡献
|
|||
|
|
|
|||
|
|
### 报告问题
|
|||
|
|
如果您发现了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月*
|