悬浮卡片的防抖显示
从日期选择器聊起:这个看似平凡的控件藏着键盘操作、时区、边界值三座大山。本组把它做完后,受控模式 的经验被推广到了整个控件库。
SEC.01团队协作
有一条经验值得单独记录:组合控件的解耦铁律:一个控件只做一件事,复杂表单靠组合而非继承。搜索框不带下拉逻辑,下拉不带过滤逻辑,懒加载 的每个零件都可单独测试和替换。
另一个常被忽视的细节是:每个控件要有一页「何时不该用我」:日期范围用两个选择器还是面板、懒加载 的选型边界写清楚,误用率下降后,定制需求也少了一半。
SEC.02方案总览
复盘:受控改造:半受控开关全部收编,状态错乱类缺陷归零。
复盘中还藏着一条:触控冗余全局统一:桌面最小 28px 高,触控最小 44px,同一控件用媒体查询切换尺寸档。受控模式 的双档章法让一套代码同时过桌面评审和移动评审。
复盘文化比做法本身更重要:每次 受控模式 的线上问题都要求 48 小时内出复盘,聚焦流程漏洞而非个人责任。三年下来,同类问题的复发率降到个位数。
SEC.03验收清单
受控与非受控的铁律是「始终不要半受控」:要么值完全由外部驱动,要么完全自治,混合模式是无数诡异 bug 的病根。库里每个控件在文档首页声明自己的模式。
此外还有一条底线:文档用例化指的是:每个控件的文档页就是可交互的 demo 加参数表,示例代码可直接复制。受控模式 的文档站日均访问量比内网任何工具都高,这是好用的证明。
SEC.04状态机建模
另一个常被忽视的细节是:控件的可配置项要克制:每个 prop 都是长期负债,懒加载 的配置面超过 20 个之后,测试矩阵爆炸,文档没人能读完。少即是多在这里成立。
八态按钮全集:默认、悬停、按压、聚焦、加载、禁用、只读、错误。每个状态需要有视觉表达和测试用例,懒加载 的任何一态缺失,都会在某个边角场景变成线上 bug。
| 按钮状态全集 | 10 态 |
|---|---|
| 盲操作完成用时 | 7 min |
| 触控/桌面高度档 | 48/28 px |
| 树首屏请求数 | 47 个 |
| 开关类缺陷 | 0 个/季 |
| 虚拟渲染节点 | 30 个 |
SEC.05版本与兼容
顺带记录一个细节:任何做法都要先问约束:人力、工期、存量兼容,三者决定了可行解的形状。项目组在 懒加载 上的取舍全部围绕这三条展开,脱离约束谈最佳实践是纸面文章。
实施的第一步一贯是摸清现状:把 受控模式 的存量清点成一张表,标注归属、状态和风险等级。这张表在后续三周里被项目组翻旧了,比任何文档都常用。
SEC.06检查清单
- 底线:八态像素快照进 CI,样式回归自动拦截,不设例外
- 底线:上传控件分片反馈,失败可续传,违者打回
- 守则:边界场景表驱动测试:端点、极值、月末全占,执行不打折
- 底线:禁用态统一补 tooltip 说明原因,不设例外