# 小菜记账 — 质量迭代设计 日期: 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 文件 - 不做无关重构 - 不做数据库结构大改(如需迁移需单独评审)