111 lines
3.8 KiB
Markdown
111 lines
3.8 KiB
Markdown
# 小菜记账 — 质量迭代设计
|
||
|
||
日期: 2026-06-08
|
||
|
||
## 概述
|
||
|
||
对「小菜记账」进行全面质量迭代,分四个阶段推进:全面扫描 → 缺陷修复 → UI 交互优化 → 系统功能迭代。
|
||
|
||
## 总体方案:分阶段逐层推进
|
||
|
||
```
|
||
S1 全面扫描 → S2 缺陷修复 → S3 UI 优化 → S4 功能迭代
|
||
```
|
||
|
||
每阶段有独立验收标准,后续阶段基于前一阶段的稳定基线。
|
||
|
||
---
|
||
|
||
## S1: 全面扫描
|
||
|
||
### 扫描维度
|
||
|
||
对每个文件从三个维度同时检查:
|
||
|
||
#### 🔧 缺陷维度
|
||
- **类型安全**: API 参数类型错误、null/undefined 处理不当、`any` 滥用
|
||
- **边界条件**: 空数据、空字符串、0 值、数组越界
|
||
- **竞态条件**: 快速切换页面时未取消的请求
|
||
- **小程序适配**: 胶囊按钮避让缺失、scroll-view 高度计算错误
|
||
- **内存泄漏**: 未清理的 timer、watcher、事件监听
|
||
- **响应格式**: 后端路由是否统一返回 `{ code, data/message }`
|
||
- **错误码规范**: 是否符合 0=成功, 40001=参数错误, 40300=权限, 40400=不存在, 50000=服务器错误
|
||
|
||
#### 🎨 UI 维度
|
||
- **加载态**: 是否有 loading/skeleton,避免白屏
|
||
- **空状态**: 是否有友好的空状态提示(图标+文案)
|
||
- **错误态**: 网络错误/超时是否有用户提示
|
||
- **触摸反馈**: 按钮/列表项是否有点击态(`:active` 样式)
|
||
- **动画过渡**: 是否尊重 `prefers-reduced-motion`
|
||
- **设计一致性**: 颜色、圆角、阴影是否使用 SCSS 变量,而非硬编码
|
||
- **触摸目标**: 是否 ≥ 44×44px(小程序最小触摸区域)
|
||
- **emoji 检查**: 是否混用 emoji 代替 Icon 组件(设计规范禁止 emoji)
|
||
|
||
#### 🚀 功能维度
|
||
- **数据完整性**: 分页是否正确、筛选是否生效
|
||
- **校验完整性**: 前端+后端是否都有输入校验
|
||
- **错误处理**: catch 块是否有用户提示(而非静默失败)
|
||
- **数据流**: API → store → 组件数据流是否清晰,避免 prop drilling
|
||
|
||
### 扫描分组
|
||
|
||
| 扫描组 | 覆盖范围 | 文件数(约) |
|
||
|--------|---------|------------|
|
||
| 组 1: 核心页面 | 首页、记账、账单、统计 + 对应 store + API | ~10 |
|
||
| 组 2: 用户 & 设置 | 个人、编辑资料、预算、分类管理、群组、通知、反馈、隐私 | ~12 |
|
||
| 组 3: 管理后台 | 仪表盘、用户管理、公告、反馈、配置、日志、埋点 | ~10 |
|
||
| 组 4: 后端路由 | 15 个路由 + 中间件 + 工具函数 | ~20 |
|
||
| 组 5: 公共组件 & 基础设施 | Icon、Numpad、TransactionItem、Skeleton、request、tracker 等 | ~10 |
|
||
|
||
### 产出物
|
||
|
||
每个扫描组输出结构化发现清单,每条发现包含:
|
||
- **优先级**: P0(立即)/P1(高)/P2(中)/P3(低)
|
||
- **文件**: 精确到行号
|
||
- **问题描述**: 清晰说明缺陷/问题
|
||
- **影响**: 用户可见影响
|
||
|
||
所有发现汇总到统一清单,供审核和排期。
|
||
|
||
### 优先级定义
|
||
|
||
| 级别 | 含义 | 示例 |
|
||
|------|------|------|
|
||
| P0 | 数据丢失/安全/崩溃 | 金额计算错误、SQL 注入、白屏 |
|
||
| P1 | 功能不可用/严重体验问题 | 按钮无响应、数据不刷新、接口报错 |
|
||
| P2 | 体验不佳/边界情况 | 空状态缺失、加载闪烁、动画卡顿 |
|
||
| P3 | 建议改进 | 代码整洁、变量命名、注释补充 |
|
||
|
||
---
|
||
|
||
## S2: 缺陷修复(扫描后细化)
|
||
|
||
- 按 P0 → P1 → P2 顺序修复
|
||
- 每个修复前先写测试用例复现
|
||
- 修复后验证已有测试通过
|
||
|
||
---
|
||
|
||
## S3: UI 交互优化(扫描后细化)
|
||
|
||
- 统一加载/空/错误状态组件
|
||
- 统一触摸反馈模式
|
||
- 动画一致性检查
|
||
- 无障碍改进
|
||
|
||
---
|
||
|
||
## S4: 系统功能迭代(扫描后细化)
|
||
|
||
- 基于扫描发现的功能缺口
|
||
- 新功能需写 spec → plan → implement
|
||
|
||
---
|
||
|
||
## 不涉及的范围
|
||
|
||
- 不修改 `dist/` 目录
|
||
- 不修改 lock 文件
|
||
- 不做无关重构
|
||
- 不做数据库结构大改(如需迁移需单独评审)
|