1. 项目背景与技术选型
果蔬到家这类生鲜电商平台在近几年呈现爆发式增长,特别是在疫情后,线上购买水果蔬菜已成为城市家庭的日常习惯。我们团队决定开发一个全栈式的果蔬商城应用,包含APP、小程序和Web端,以满足不同用户群体的需求。
在技术选型上,我们采用了以下方案:
- 前端:Vue.js 3 + Vant UI
- 后端:Node.js + Koa2
- 数据库:MySQL + Redis
- 小程序:原生微信小程序 + Taro框架
这个技术栈组合主要基于以下考虑:
-
Vue.js的渐进式特性非常适合电商这类交互复杂的应用,其响应式系统和组件化开发能显著提升开发效率。我们选择Vant UI是因为它提供了丰富的移动端组件,特别适合商品展示、购物车等电商场景。
-
Node.js作为后端服务有几个优势:首先,JavaScript全栈开发可以降低团队技术栈复杂度;其次,Node.js的非阻塞I/O模型很适合电商这类I/O密集型的应用;最后,丰富的npm生态可以快速集成支付、短信等各种第三方服务。
-
使用Taro框架可以实现小程序代码与H5的复用,大大减少了多端开发的工作量。实测显示,业务逻辑代码的复用率能达到70%以上。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 项目架构设计
2.1 整体架构
项目采用典型的前后端分离架构:
code复制├── 前端项目
│ ├── web (Vue3 + Vant)
│ └── mini-program (Taro)
├── 后端服务
│ ├── api-service (主业务逻辑)
│ ├── admin-service (管理后台)
│ └── job-service (定时任务)
├── 基础设施
│ ├── MySQL (主库+从库)
│ └── Redis (缓存+会话)
2.2 数据库设计
核心表结构设计要点:
-
商品系统采用SPU+SKU模型:
- spu表存储商品基本信息(名称、描述、分类等)
- sku表存储具体规格(如500g装、1kg装等)
- 特别设计了fresh_degree字段表示新鲜度,这是生鲜电商的特色
-
订单系统考虑生鲜商品的特殊性:
- 增加了expected_delivery_time预计送达时间
