第六章 交付质量关:性能与测试


第六章 · 交付质量关

章节摘要:功能齐了不等于能出门。本章给轻记账设两道质量关卡:性能关——用 DevTools 把掉帧、卡顿、内存与包体积逐项过堂,修掉重建失控与同步计算这些高频病灶;正确性关——单元、Widget、集成三层测试各司其职,把前面章节的仓库、同步、界面全部纳入自动防线。读完本章,你面对"有点卡""不敢改"这两句最常见的项目遗言,都有了系统性的解法。

学习目标

读完本章,你应当能够:

  1. 打开 DevTools 的性能视图,区分 UI 线程与光栅线程的帧耗时,把卡顿归因到具体工序;
  2. 用重建计数的方法定位"刷新失控",并用 const、watch 粒度与 RepaintBoundary 三件套收窄重建;
  3. 说出启动耗时与包体积的主要构成,列出至少四条可落地的瘦身动作;
  4. 为仓库与控制器写毫秒级单元测试,为页面写 Widget 测试,为关键路径写集成测试;
  5. 把测试接入持续集成,让每次提交自动跑完三层防线;
  6. 建立性能回归的观察习惯:改版前后跑同一组测量,用数据说话。

核心概念速览

一句话立住本章:性能优化的原料是测量不是感觉,质量保障的原料是自动化不是自觉——关卡的意义就是把这两件事变成流程。

子章节导航

06-1 性能仪表盘:DevTools 性能视图的读法,UI 线程与光栅线程的分工记账,性能叠加层的日常开启,内存视图的第一眼。测量先于优化。

06-2 优化现场:从重建到包体积:第 2 章的机制知识在这里变现——重建收窄三件套、列表与图片两大高频场景、启动与包体积的构成与瘦身。每一招都先测后改再验。

06-3 测试三层防线:单元测仓库与控制器、Widget 测界面行为、集成测关键路径,三层各拦什么雷、怎么写、怎么进流水线。第 4、5 章的仓库模式与幂等同步在这里兑现红利。

子章节之间的逻辑关系

两道关卡一纵一横:性能是纵深的——从现象(卡)到测量(哪帧哪线程)到病灶(重建、布局、计算)到药方(06-1 与 06-2 的先后两节);测试是横切的——不针对某个性能点,而是给全项目的行为兜底,06-3 的用例大量来自第 4、5 章的架构铺垫。性能与测试还会互相成就:性能优化最容易改出新缺陷,测试防线让优化敢下手;测试自身要快,性能账本里也有它一笔。

本章知识点清单

以下条目均可自测,答不出的就是没读透的位置:

  • 区分 UI 线程与光栅线程各自记什么账,并对掉帧给出第一归因;
  • 执行优化五步流程:现象、测量、归因、验证、权衡,说明为什么先测后动;
  • 用收窄三件套(const、watch 粒度、RepaintBoundary)收窄一次整页重建;
  • 说出列表懒加载与图片降采样的标准写法,以及各自省的是什么成本;
  • 拆解启动耗时三段与包体积构成,给出至少四条瘦身动作;
  • 为仓库与同步用例写毫秒级单元测试,说出依赖隔离与架构的关系;
  • 在 Widget 测试里用 pumpAndSettle 保证断言稳定,解释它在等什么;
  • 把三层测试按成本顺序接进流水线,说出集成测试为什么只放少数关键路径。
[06-1 仪表盘] ──测出──> [病灶清单] ──逐项修──> [06-2 优化现场] ^ │ └──────────── 改完复测 闭环 <────────────────┘ [06-3 三层测试] ══ 横切兜底 · 优化敢下手的前提 ══ ​

前置知识与后续延伸

前置:第 2 章全章(管线、三棵树、Isolate 是本章全部理论依据)、第 3 章的 const 与动画纪律、第 4 章的仓库模式、第 5 章的幂等同步。

本章的实操建议按"先立仪表、再立防线"的顺序推进:06-1 的叠加层今天就开起来,让它成为日常开发的背景音;06-2 的每个优化案例都对应一类可复现现象,建议先在自己的工程里复现一遍再动手修;06-3 的三层测试不必一次铺满,先给仓库与同步这两个最稳的层补单元测试,Widget 与集成随后跟进——防线是长出来的,不是一次浇灌出来的。

延伸:本章的流水线将在第 7 章的多端发布中作为准入门槛(各端构建前先跑测试);重建收窄的手法在 Web 端要叠加画布模式的额外成本考虑;性能预算的概念可以扩展到团队协作——把"帧耗时与包体积写进验收标准",是让本章从个人技艺变成团队机制的路径。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U