tech-stack.md 6.2 KB

阶段一技术选型 — 基础设施与用户体系


一、后端技术栈

1.1 核心框架

技术 版本 用途 选型理由
Java 1.8.0_291 开发语言 客户环境限制,兼容性好
Spring Boot 1.5.9.RELEASE 应用框架 成熟稳定,社区支持好
MyBatis 1.3.2 ORM 框架 灵活的 SQL 控制,XML 映射
MySQL 5.7+ 数据库 客户环境限制,性能稳定
Redis 3.0+ 缓存 高性能,支持多种数据结构

1.2 认证与安全

技术 版本 用途 选型理由
JWT (jjwt) 0.9.1 Token 认证 无状态,适合分布式
BCrypt - 密码加密 安全性高,自动加盐
AES - 手机号加密 对称加密,性能好
SHA256 - 手机号哈希 单向哈希,支持索引查询

1.3 文件处理

技术 版本 用途 选型理由
阿里云 OSS SDK 3.15.1 文件存储 云服务稳定,CDN 加速
阿里云短信 SDK 2.1.0 短信服务 国内服务稳定
Apache POI 3.17 Excel 处理 功能完整,社区活跃

1.4 工具库

技术 版本 用途 选型理由
Jackson 2.8.10 JSON 处理 Spring Boot 默认集成
SLF4J + Logback 1.7.25 日志框架 Spring Boot 默认集成
Commons Lang3 3.5 工具类 字符串、日期等常用工具

二、前端技术栈

2.1 小程序端

技术 版本 用途 选型理由
微信小程序 基础库 ≥2.0 移动端框架 目标用户使用微信
WXML - 模板语言 微信小程序原生
WXSS - 样式语言 微信小程序原生
JavaScript ES6 脚本语言 小程序支持

2.2 后台管理端

技术 版本 用途 选型理由
Vue 2.6.14 前端框架 成熟稳定,学习成本低
Vue Router 3.5.4 路由管理 Vue 官方路由
Vuex 3.6.2 状态管理 Vue 官方状态管理
Element UI 2.15.9 UI 组件库 组件丰富,文档完善
Axios 0.27.2 HTTP 客户端 支持 Promise,拦截器
ECharts 5.4.3 数据可视化 功能强大,图表丰富

三、开发工具

3.1 构建工具

工具 版本 用途
Maven 3.6.3 后端构建
npm - 前端依赖管理
Vue CLI 4.5.19 前端构建

3.2 版本控制

工具 用途
Git 版本控制
Gogs 代码仓库(自托管)

3.3 开发环境

工具 用途
JDK 1.8 Java 开发环境
IntelliJ IDEA Java IDE
VS Code 前端 IDE
微信开发者工具 小程序开发调试
Navicat/DBeaver 数据库客户端
Redis Desktop Manager Redis 客户端

四、部署环境

4.1 服务器配置(规划)

资源 配置 说明
CPU 2 核 足够支撑初期访问量
内存 4 GB Spring Boot + MySQL + Redis
磁盘 50 GB 系统 + 数据 + 日志
带宽 5 Mbps 足够支撑初期访问量

4.2 软件环境

软件 版本 用途
CentOS 7.x 操作系统
Nginx 1.18+ 反向代理
MySQL 5.7 数据库
Redis 3.0+ 缓存
JDK 1.8 Java 运行环境

4.3 云服务

服务 用途 配置
阿里云 OSS 文件存储 私有读写,CORS 配置
阿里云 SMS 短信服务 签名:洒渔用工
微信小程序 移动端 AppID 待申请

五、数据库设计规范

5.1 命名规范

  • 表名: 小写字母 + 下划线,如 sys_user
  • 字段名: 小写字母 + 下划线,如 user_name
  • 主键: id,自增
  • 索引: idx_ 前缀,如 idx_user_id
  • 唯一索引: uk_ 前缀,如 uk_phone_hash

5.2 字段规范

  • 字符串: VARCHAR,长度按实际需求
  • 数字: INT/BIGINT/DECIMAL
  • 时间: DATETIME
  • 状态: TINYINT,0/1/2
  • 布尔: TINYINT,0 否 1 是

5.3 必备字段

每个业务表必须包含:

  • id — 主键
  • created_at — 创建时间
  • updated_at — 更新时间

六、接口设计规范

6.1 路径规范

  • 小程序端: /api/wx/{module}/{action}
  • 后台管理端: /api/admin/{module}/{action}
  • 模块: 用户模块 user,系统模块 system,审核模块 audit,首页模块 home

6.2 请求规范

  • GET: 查询操作,参数通过 URL 传递
  • POST: 创建操作,参数通过 Body 传递
  • PUT: 更新操作,参数通过 Body 传递
  • DELETE: 删除操作

6.3 响应规范

{
  "code": 200,       // 状态码
  "message": "success", // 状态描述
  "data": {}         // 业务数据
}

6.4 错误码规范

错误码 含义 说明
200 成功 -
400 请求错误 参数校验失败
401 未认证 Token 无效或过期
403 禁止访问 无权限
404 未找到 资源不存在
500 服务器错误 内部异常
1001-1099 业务错误 自定义业务错误码

七、安全设计规范

7.1 认证安全

  • Token: JWT 签名,有效期控制
  • 密码: BCrypt 加密,强度校验
  • 登录: 失败次数限制,锁定机制

7.2 数据安全

  • 手机号: AES 加密存储,SHA256 哈希索引
  • 敏感数据: 接口返回脱敏
  • SQL 注入: MyBatis #{} 参数化

7.3 接口安全

  • 权限控制: RBAC 模型
  • 参数校验: 必填校验、类型校验、范围校验
  • 防重放: Token 过期机制

八、性能设计规范

8.1 数据库性能

  • 索引: 高频查询字段建立索引
  • 连接池: 最大连接数 20
  • 慢查询: 开启慢查询日志

8.2 缓存策略

  • Token 黑名单: Redis 存储
  • 验证码: Redis 存储,5 分钟过期
  • 数据大屏: Redis 缓存,定时更新

8.3 接口性能

  • 响应时间: ≤500ms(95%请求)
  • 并发: ≥100 用户
  • 分页: 默认每页 10 条,最大 100 条