349 lines
6.7 KiB
Markdown
349 lines
6.7 KiB
Markdown
|
|
# 开发指南
|
||
|
|
|
||
|
|
## 版本历史
|
||
|
|
|
||
|
|
| 版本 | 日期 | 修改人 | 修改内容 |
|
||
|
|
|------|------|--------|----------|
|
||
|
|
| 1.0.0 | 2024-01-20 | 开发团队 | 初始版本 |
|
||
|
|
|
||
|
|
## 1. 开发环境搭建
|
||
|
|
|
||
|
|
### 1.1 系统要求
|
||
|
|
|
||
|
|
- **操作系统**: macOS 10.15+, Ubuntu 18.04+, Windows 10+
|
||
|
|
- **Node.js**: 16.x 或更高版本
|
||
|
|
- **MySQL**: 8.0 或更高版本
|
||
|
|
- **Redis**: 6.0 或更高版本
|
||
|
|
- **Git**: 2.20 或更高版本
|
||
|
|
|
||
|
|
### 1.2 开发工具推荐
|
||
|
|
|
||
|
|
- **IDE**: VS Code, WebStorm
|
||
|
|
- **数据库管理**: Navicat, DBeaver
|
||
|
|
- **API测试**: Postman, Insomnia
|
||
|
|
- **版本控制**: Git, SourceTree
|
||
|
|
|
||
|
|
### 1.3 环境安装
|
||
|
|
|
||
|
|
#### 1.3.1 Node.js 环境
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 使用 nvm 管理 Node.js 版本
|
||
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
|
||
|
|
nvm install 18
|
||
|
|
nvm use 18
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 1.3.2 数据库安装
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# MySQL 安装 (macOS)
|
||
|
|
brew install mysql
|
||
|
|
brew services start mysql
|
||
|
|
|
||
|
|
# Redis 安装 (macOS)
|
||
|
|
brew install redis
|
||
|
|
brew services start redis
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 1.3.3 项目克隆与依赖安装
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 克隆项目
|
||
|
|
git clone https://github.com/your-org/niumall.git
|
||
|
|
cd niumall
|
||
|
|
|
||
|
|
# 安装后端依赖
|
||
|
|
cd backend
|
||
|
|
npm install
|
||
|
|
|
||
|
|
# 安装前端管理系统依赖
|
||
|
|
cd ../admin-system
|
||
|
|
npm install
|
||
|
|
|
||
|
|
# 安装小程序依赖
|
||
|
|
cd ../mini_program/staff-mp
|
||
|
|
npm install
|
||
|
|
```
|
||
|
|
|
||
|
|
## 2. 项目结构
|
||
|
|
|
||
|
|
```
|
||
|
|
niumall/
|
||
|
|
├── backend/ # 后端服务 (Node.js)
|
||
|
|
│ ├── src/
|
||
|
|
│ │ ├── controllers/ # 控制器
|
||
|
|
│ │ ├── models/ # 数据模型
|
||
|
|
│ │ ├── services/ # 业务逻辑
|
||
|
|
│ │ ├── middleware/ # 中间件
|
||
|
|
│ │ ├── routes/ # 路由配置
|
||
|
|
│ │ └── utils/ # 工具函数
|
||
|
|
│ └── package.json
|
||
|
|
├── admin-system/ # 前端管理系统 (Vue3 + TypeScript)
|
||
|
|
│ ├── src/
|
||
|
|
│ │ ├── views/ # 页面组件
|
||
|
|
│ │ ├── api/ # API服务
|
||
|
|
│ │ ├── utils/ # 工具函数
|
||
|
|
│ │ └── stores/ # 状态管理
|
||
|
|
│ └── package.json
|
||
|
|
├── mini_program/ # 小程序矩阵
|
||
|
|
│ ├── staff-mp/ # 员工小程序
|
||
|
|
│ ├── driver-mp/ # 司机小程序
|
||
|
|
│ ├── supplier-mp/ # 供应商小程序
|
||
|
|
│ └── client-mp/ # 客户小程序
|
||
|
|
├── go-backend/ # Go后端服务 (备选)
|
||
|
|
├── fastapi-backend/ # FastAPI后端服务 (备选)
|
||
|
|
├── website/ # 官方网站
|
||
|
|
└── docs/ # 项目文档
|
||
|
|
```
|
||
|
|
|
||
|
|
## 3. 开发流程
|
||
|
|
|
||
|
|
### 3.1 分支管理
|
||
|
|
|
||
|
|
采用 Git Flow 工作流:
|
||
|
|
|
||
|
|
- **main**: 生产环境分支
|
||
|
|
- **develop**: 开发环境分支
|
||
|
|
- **feature/***: 功能开发分支
|
||
|
|
- **hotfix/***: 紧急修复分支
|
||
|
|
- **release/***: 发布准备分支
|
||
|
|
|
||
|
|
### 3.2 开发步骤
|
||
|
|
|
||
|
|
1. **创建功能分支**
|
||
|
|
```bash
|
||
|
|
git checkout develop
|
||
|
|
git pull origin develop
|
||
|
|
git checkout -b feature/订单管理优化
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **开发与提交**
|
||
|
|
```bash
|
||
|
|
# 开发完成后提交
|
||
|
|
git add .
|
||
|
|
git commit -m "feat: 添加订单状态自动更新功能"
|
||
|
|
```
|
||
|
|
|
||
|
|
3. **代码审查**
|
||
|
|
```bash
|
||
|
|
# 推送到远程分支
|
||
|
|
git push origin feature/订单管理优化
|
||
|
|
# 在 GitHub/GitLab 创建 Pull Request
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3.3 提交规范
|
||
|
|
|
||
|
|
使用 Conventional Commits 规范:
|
||
|
|
|
||
|
|
- `feat`: 新功能
|
||
|
|
- `fix`: 修复bug
|
||
|
|
- `docs`: 文档更新
|
||
|
|
- `style`: 代码格式调整
|
||
|
|
- `refactor`: 代码重构
|
||
|
|
- `test`: 测试相关
|
||
|
|
- `chore`: 构建过程或辅助工具的变动
|
||
|
|
|
||
|
|
## 4. 本地开发
|
||
|
|
|
||
|
|
### 4.1 环境配置
|
||
|
|
|
||
|
|
#### 4.1.1 后端配置
|
||
|
|
|
||
|
|
创建 `backend/.env` 文件:
|
||
|
|
|
||
|
|
```env
|
||
|
|
# 数据库配置
|
||
|
|
DB_HOST=localhost
|
||
|
|
DB_PORT=3306
|
||
|
|
DB_NAME=niumall
|
||
|
|
DB_USER=root
|
||
|
|
DB_PASSWORD=your_password
|
||
|
|
|
||
|
|
# Redis配置
|
||
|
|
REDIS_HOST=localhost
|
||
|
|
REDIS_PORT=6379
|
||
|
|
|
||
|
|
# JWT配置
|
||
|
|
JWT_SECRET=your_jwt_secret
|
||
|
|
JWT_EXPIRES_IN=7d
|
||
|
|
|
||
|
|
# 微信小程序配置
|
||
|
|
WECHAT_APP_ID=your_app_id
|
||
|
|
WECHAT_APP_SECRET=your_app_secret
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 4.1.2 前端配置
|
||
|
|
|
||
|
|
创建 `admin-system/.env.development` 文件:
|
||
|
|
|
||
|
|
```env
|
||
|
|
# API基础URL
|
||
|
|
VITE_API_BASE_URL=http://localhost:3000/api
|
||
|
|
VITE_UPLOAD_URL=http://localhost:3000/uploads
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4.2 启动服务
|
||
|
|
|
||
|
|
#### 4.2.1 启动后端服务
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd backend
|
||
|
|
npm run dev
|
||
|
|
# 服务启动在 http://localhost:3000
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 4.2.2 启动前端管理系统
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd admin-system
|
||
|
|
npm run dev
|
||
|
|
# 服务启动在 http://localhost:5173
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 4.2.3 启动小程序开发
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd mini_program/staff-mp
|
||
|
|
# 使用微信开发者工具打开项目目录
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4.3 数据库初始化
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 创建数据库
|
||
|
|
mysql -u root -p
|
||
|
|
CREATE DATABASE niumall CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
# 运行初始化脚本
|
||
|
|
cd backend
|
||
|
|
node init_database.js
|
||
|
|
```
|
||
|
|
|
||
|
|
## 5. 代码规范
|
||
|
|
|
||
|
|
### 5.1 JavaScript/TypeScript 规范
|
||
|
|
|
||
|
|
- 使用 ESLint + Prettier 进行代码格式化
|
||
|
|
- 遵循 Airbnb JavaScript 风格指南
|
||
|
|
- 使用 TypeScript 进行类型检查
|
||
|
|
|
||
|
|
### 5.2 Vue 组件规范
|
||
|
|
|
||
|
|
- 使用 Composition API
|
||
|
|
- 组件命名采用 PascalCase
|
||
|
|
- Props 定义使用 TypeScript 接口
|
||
|
|
|
||
|
|
### 5.3 API 接口规范
|
||
|
|
|
||
|
|
- 遵循 RESTful 设计原则
|
||
|
|
- 统一的响应格式
|
||
|
|
- 完善的错误处理
|
||
|
|
|
||
|
|
## 6. 测试指南
|
||
|
|
|
||
|
|
### 6.1 单元测试
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 运行后端单元测试
|
||
|
|
cd backend
|
||
|
|
npm test
|
||
|
|
|
||
|
|
# 运行前端单元测试
|
||
|
|
cd admin-system
|
||
|
|
npm run test:unit
|
||
|
|
```
|
||
|
|
|
||
|
|
### 6.2 API测试
|
||
|
|
|
||
|
|
使用 Postman 或 Insomnia 进行 API 测试,测试文件位于 `docs/api/` 目录。
|
||
|
|
|
||
|
|
## 7. 调试技巧
|
||
|
|
|
||
|
|
### 7.1 后端调试
|
||
|
|
|
||
|
|
- 使用 VS Code 调试配置
|
||
|
|
- 查看日志文件
|
||
|
|
- 使用 Postman 测试 API
|
||
|
|
|
||
|
|
### 7.2 前端调试
|
||
|
|
|
||
|
|
- 使用浏览器开发者工具
|
||
|
|
- Vue DevTools 扩展
|
||
|
|
- 网络请求监控
|
||
|
|
|
||
|
|
### 7.3 小程序调试
|
||
|
|
|
||
|
|
- 微信开发者工具调试器
|
||
|
|
- 真机调试
|
||
|
|
- 性能监控
|
||
|
|
|
||
|
|
## 8. 常见问题
|
||
|
|
|
||
|
|
### 8.1 环境问题
|
||
|
|
|
||
|
|
**Q: 数据库连接失败**
|
||
|
|
```bash
|
||
|
|
# 检查数据库服务状态
|
||
|
|
brew services list | grep mysql
|
||
|
|
# 重启数据库服务
|
||
|
|
brew services restart mysql
|
||
|
|
```
|
||
|
|
|
||
|
|
**Q: 端口被占用**
|
||
|
|
```bash
|
||
|
|
# 查看端口占用
|
||
|
|
lsof -i :3000
|
||
|
|
# 杀死进程
|
||
|
|
kill -9 <PID>
|
||
|
|
```
|
||
|
|
|
||
|
|
### 8.2 开发问题
|
||
|
|
|
||
|
|
**Q: 热重载不生效**
|
||
|
|
```bash
|
||
|
|
# 清除缓存重启
|
||
|
|
rm -rf node_modules/.cache
|
||
|
|
npm run dev
|
||
|
|
```
|
||
|
|
|
||
|
|
**Q: 小程序真机预览失败**
|
||
|
|
- 检查网络连接
|
||
|
|
- 确认域名配置
|
||
|
|
- 查看控制台错误信息
|
||
|
|
|
||
|
|
## 9. 性能优化
|
||
|
|
|
||
|
|
### 9.1 后端优化
|
||
|
|
|
||
|
|
- 数据库查询优化
|
||
|
|
- Redis 缓存策略
|
||
|
|
- 异步处理优化
|
||
|
|
|
||
|
|
### 9.2 前端优化
|
||
|
|
|
||
|
|
- 代码分割
|
||
|
|
- 懒加载
|
||
|
|
- 图片优化
|
||
|
|
|
||
|
|
### 9.3 小程序优化
|
||
|
|
|
||
|
|
- 分包加载
|
||
|
|
- 图片压缩
|
||
|
|
- 请求合并
|
||
|
|
|
||
|
|
## 10. 联系信息
|
||
|
|
|
||
|
|
- **技术支持**: tech-support@company.com
|
||
|
|
- **开发团队**: dev-team@company.com
|
||
|
|
- **文档维护**: docs@company.com
|
||
|
|
|
||
|
|
## 相关文档
|
||
|
|
|
||
|
|
- [项目总览](./项目总览.md)
|
||
|
|
- [产品需求文档](./产品需求文档.md)
|
||
|
|
- [系统架构设计](./系统架构设计.md)
|
||
|
|
- [API接口文档](./API接口文档.md)
|
||
|
|
- [数据库设计](./数据库设计.md)
|
||
|
|
- [部署运维指南](./部署运维指南.md)
|
||
|
|
- [测试指南](./测试指南.md)
|