技术约束条件
文档编号: SYS-RA-US-004
版本: 1.0
日期: 2026-03-08
编制: 项目经理
一、技术栈约束
1.1 前端技术栈
| 类别 | 技术要求 | 版本 | 说明 |
|---|---|---|---|
| 框架 | Vue.js | 3.x | 必须使用Composition API |
| 语言 | TypeScript | 4.x+ | 严格类型检查 |
| 构建工具 | Vite | 4.x+ | 替代Webpack |
| UI框架 | Ant Design Vue | 4.x | 组件库 |
| 状态管理 | Pinia | 2.x | 替代Vuex |
| 路由 | Vue Router | 4.x | 组合式API风格 |
| HTTP客户端 | Axios | 1.x | 统一请求处理 |
1.2 后端技术栈
| 类别 | 技术要求 | 版本 | 说明 |
|---|---|---|---|
| 框架 | Spring Boot | 3.x | Java 17+ |
| 安全框架 | Spring Security | 6.x | 认证授权 |
| ORM | MyBatis-Plus | 3.5.x | 简化CRUD |
| 数据库连接池 | HikariCP | 5.x | 高性能连接池 |
| 缓存 | Redis | 7.x | 分布式缓存 |
| 消息队列 | RabbitMQ | 3.x | 异步处理 |
| 搜索引擎 | Elasticsearch | 8.x | 日志检索 |
1.3 数据库
| 类型 | 支持数据库 | 版本 | 说明 |
|---|---|---|---|
| 关系型 | MySQL | 8.0+ | 主数据库 |
| 关系型 | PostgreSQL | 14+ | 可选支持 |
| 缓存 | Redis | 7.x | 会话、缓存 |
二、安全约束
2.1 认证安全
| 约束编号 | 约束描述 | 实现要求 |
|---|---|---|
| SEC-001 | 密码加密 | 使用BCrypt算法,强度≥10 |
| SEC-002 | 密码策略 | 长度≥8位,包含大小写字母、数字、特殊字符 |
| SEC-003 | 登录失败处理 | 连续5次失败锁定15分钟 |
| SEC-004 | 会话管理 | JWT Token有效期2小时,Refresh Token 7天 |
| SEC-005 | 密码传输 | 使用HTTPS,禁止明文传输 |
| SEC-006 | 敏感操作 | 修改密码等操作需要二次验证 |
2.2 数据安全
| 约束编号 | 约束描述 | 实现要求 |
|---|---|---|
| SEC-007 | 敏感数据加密 | 手机号、邮箱等使用AES加密存储 |
| SEC-008 | 数据脱敏 | 日志中敏感信息脱敏显示 |
| SEC-009 | SQL注入防护 | 使用参数化查询,禁止字符串拼接 |
| SEC-010 | XSS防护 | 输入过滤,输出转义 |
| SEC-011 | CSRF防护 | 使用Token验证 |
2.3 接口安全
| 约束编号 | 约束描述 | 实现要求 |
|---|---|---|
| SEC-012 | API限流 | 每分钟最多100次请求 |
| SEC-013 | 接口鉴权 | 所有接口必须验证权限 |
| SEC-014 | 参数校验 | 所有入参必须校验 |
| SEC-015 | 响应规范 | 统一响应格式,不暴露内部错误 |
三、性能约束
3.1 响应时间
| 场景 | 约束要求 | 说明 |
|---|---|---|
| 页面首屏加载 | ≤ 3秒 | 包含JS、CSS、初始数据 |
| API响应时间 | ≤ 500ms | 95%的请求 |
| 数据库查询 | ≤ 100ms | 单表查询 |
| 登录认证 | ≤ 1秒 | 包含Token生成 |
3.2 并发能力
| 指标 | 约束要求 | 说明 |
|---|---|---|
| 在线用户数 | 支持1000+ | 同时在线 |
| QPS | 支持1000+ | 每秒查询数 |
| 并发登录 | 支持500/秒 | 登录峰值 |
3.3 资源使用
| 资源 | 约束要求 | 说明 |
|---|---|---|
| 前端包大小 | ≤ 2MB (gzip) | 首屏加载资源 |
| 内存使用 | ≤ 4GB | 单服务实例 |
| 数据库连接 | ≤ 100 | 连接池最大连接数 |
| 缓存命中率 | ≥ 80% | Redis缓存 |
四、兼容性约束
4.1 浏览器兼容性
| 浏览器 | 最低版本 | 说明 |
|---|---|---|
| Chrome | 最新2个版本 | 推荐使用 |
| Firefox | 最新2个版本 | 支持 |
| Edge | 最新2个版本 | 支持 |
| Safari | 14+ | 支持 |
4.2 移动端兼容性
| 设备类型 | 约束要求 | 说明 |
|---|---|---|
| 平板 | 适配iPad、Android平板 | 响应式布局 |
| 手机 | 基础功能可用 | 简化界面 |
4.3 系统集成兼容性
| 集成对象 | 协议要求 | 版本 |
|---|---|---|
| HR系统 | REST API | 无特定要求 |
| ERP系统 | REST API / SOAP | 无特定要求 |
| 邮件服务 | SMTP | 标准协议 |
| 短信服务 | HTTP API | 标准协议 |
| SSO协议 | OAuth2.0 / SAML2.0 / CAS | 标准协议 |
五、部署约束
5.1 环境要求
| 环境 | 配置要求 | 说明 |
|---|---|---|
| 生产环境 | 4核8G | 最低配置 |
| 测试环境 | 2核4G | 功能测试 |
| 开发环境 | 2核4G | 本地开发 |
5.2 部署方式
| 约束编号 | 约束描述 | 说明 |
|---|---|---|
| DEP-001 | 支持Docker部署 | 提供Dockerfile |
| DEP-002 | 支持K8s部署 | 提供K8s YAML |
| DEP-003 | 支持传统部署 | 提供部署文档 |
| DEP-004 | 支持灰度发布 | 配置中心支持 |
5.3 高可用要求
| 约束编号 | 约束描述 | 实现要求 |
|---|---|---|
| HA-001 | 服务无单点 | 多实例部署 |
| HA-002 | 数据库高可用 | 主从复制 |
| HA-003 | 缓存高可用 | Redis Sentinel/Cluster |
| HA-004 | 故障恢复 | RTO ≤ 5分钟 |
六、开发约束
6.1 代码规范
| 约束编号 | 约束描述 | 实现要求 |
|---|---|---|
| CODE-001 | 代码覆盖率 | 单元测试覆盖率≥70% |
| CODE-002 | 代码审查 | 所有代码必须经过Review |
| CODE-003 | 文档要求 | 公共API必须有JSDoc/JavaDoc |
| CODE-004 | 版本控制 | 使用Git,遵循Git Flow |
6.2 接口规范
| 约束编号 | 约束描述 | 实现要求 |
|---|---|---|
| API-001 | RESTful规范 | 遵循RESTful设计原则 |
| API-002 | 版本控制 | URL中包含版本号 /v1/ |
| API-003 | 响应格式 | 统一JSON格式 |
| API-004 | 错误码 | 统一错误码规范 |
七、约束汇总表
| 类别 | 约束数量 | 关键约束 |
|---|---|---|
| 技术栈 | 12 | Vue3 + Spring Boot |
| 安全 | 15 | 密码加密、HTTPS、JWT |
| 性能 | 10 | 3秒加载、500ms响应 |
| 兼容性 | 8 | 浏览器、移动端、集成 |
| 部署 | 7 | Docker、K8s、高可用 |
| 开发 | 6 | 代码规范、接口规范 |
| 合计 | 58 | - |
文档整理时间: 2026-03-08
