这是一个基于 Vue 3 的购物商城应用,专门设计用于线上前端开发工程师上机面试。项目包含了多个故意设计的问题和bug,需要候选人在规定时间内发现并修复这些问题,最后提交代码并创建合并请求。
测试候选人在以下方面的能力:
git clone https://github.com/你的用户名/vue-shopping-interview.git
cd vue-shopping-interview
npm install
npm run dev
src/ ├── components/ # Vue组件 │ ├── ProductList.vue # 商品列表组件 (包含显示问题) │ ├── ShoppingCart.vue # 购物车组件 (包含计算错误) │ └── SearchFilter.vue # 搜索筛选组件 (包含性能问题) ├── stores/ # Pinia状态管理 │ └── productStore.js # 商品数据管理 (包含API问题) ├── api/ # API服务层 │ └── productApi.js # 数据接口 (包含异步处理问题) ├── App.vue # 主应用组件 (包含逻辑错误) ├── main.js # 应用入口 └── style.css # 全局样式 (包含响应式问题)
git checkout -b fix/interview-fixes# 1. Fork项目到你的GitHub账户后,克隆你的Fork
git clone https://github.com/你的用户名/vue-shopping-interview.git
cd vue-shopping-interview
# 2. 创建开发分支
git checkout -b fix/interview-fixes
# 3. 修复问题后,分别提交每个修复
git add src/components/ShoppingCart.vue
git commit -m "fix: 修复购物车总价计算错误
- 修复价格精度问题导致的计算错误
- 添加商品数量的边界条件检查
- 优化购物车数量更新逻辑"
# 4. 继续修复其他问题
git add src/components/ProductList.vue
git commit -m "fix: 修复商品列表显示问题
- 解决图片加载失败的处理
- 修复搜索筛选逻辑错误"
# 5. 推送到你的Fork仓库
git push origin fix/interview-fixes
# 6. 在GitHub上创建Pull Request到原仓库
## 修复说明
本次修复解决了项目中的以下问题:
### 🔧 已修复问题
1. **购物车计算错误** - 修复总价计算精度问题
2. **商品列表显示** - 解决图片加载和筛选逻辑
3. **性能优化** - 添加搜索防抖处理
### 🧪 测试步骤
1. 添加商品到购物车,验证总价计算正确
2. 测试商品搜索功能,确认筛选结果准确
3. 检查控制台,确认无错误信息
### 📋 修复清单
- [x] 购物车总价计算
- [x] 商品列表筛选
- [x] 图片加载处理
- [ ] 其他优化项目(如有)
候选人:___________ 时间:___________ 问题发现 (25分): - 严重问题发现:___ /15分 - 问题定位速度:___ /10分 修复质量 (30分): - 修复正确性:___ /20分 - 代码质量:___ /10分 Git协作 (20分): - 提交规范:___ /10分 - PR质量:___ /10分 时间管理 (15分): - 完成度:___ /10分 - 优先级:___ /5分 技术深度 (10分): - 理解程度:___ /5分 - 优化能力:___ /5分 总分:___ /100分
Q: 可以使用搜索引擎和AI工具吗? A: 完全可以,这是真实工作场景。但面试官会询问解决方案的原理,确保候选人理解而非盲目复制。
Q: 如果在规定时间内无法完成所有修复怎么办? A: 按优先级修复最重要的问题,并在PR中说明剩余问题的修复思路和时间估算。
Q: 发现了额外的优化点是否应该实施? A: 建议实施,这是重要加分项。但要确保不影响现有功能,并在PR中明确说明。
Q: 网络环境不好,无法正常使用在线开发环境怎么办? A: 可以申请延时或改用本地开发,但需要提前告知面试官并调整时间安排。
Q: Fork的项目如何提交合并请求? A: 在你的Fork仓库中点击"Pull Request",选择从你的分支合并到原仓库的main分支。
如有技术问题或面试相关疑问,请及时联系面试官。
祝愿每位候选人都能发挥出最佳水平! 🎉