移动互联时代,交互设计别再困在2010
|
去年12月份,慢查询爆出来的那一刻,我正捏着最后一块冷掉的粢饭团,屏幕上的行数一直在跳,风扇一直在转。运维老张端着保温杯路过工位,往我屏幕上扫了一眼:“又挂了?”我说“没挂,就是卡”,他点点头,顺手把空调调低两度——这人怕热,但更怕业务方凌晨三点打他电话。 开发小陈在 Slack 里甩过来一条 SQL:SELECT FROM user_action_log WHERE create_time > '2023-12-01' AND status = 0 ORDER BY id DESC LIMIT 20。我点开执行计划,type=ALL,key=NULL,rows=八百多万。我原以为是没加索引,结果一看字段类型——create_time 是 varchar(255)。对,varchar。不是 datetime,不是 timestamp,是 varchar(255)。我手抖删库没这么稳过,但这次手抖的是他们建表时敲键盘的指头。 谁路过问了句“好了没”,我没回头,只回了个“等”。窗外天黑了,整栋楼只剩我们这层还亮着,灯管滋滋响,像在替我咽下那句“你他妈拿字符串存时间?”。小陈后来蹲我旁边,说“业务方要能查‘昨天上午’和‘上周三下午三点前’,我们觉得 string 更灵活”。我盯着他T恤上印的那行字:“Code is poetry”——底下还溅了半粒芝麻。我没笑,因为真笑不出来。 优胜劣汰这话不是嘴硬。不是靠KPI评出来的,是靠用户流失率喂出来的。上个月新上线的那个“消息中心”,点了三次才展开二级菜单,iOS 用户点完直接切后台,安卓用户干脆关通知权限。运营发来截图,红框圈着“用户反馈‘太慢’的词频”,一共137条,92条带“卡”字,28条写“点不动”,剩下17条说“以为坏了”。我们拉了埋点,发现平均交互延迟是630毫秒——不算高,但用户心理阈值是200毫秒。这不是性能问题,是交互直觉问题。你把 loading 图放中间、转三圈再吐数据,用户早去刷抖音了。抖音连“正在加载”的文字都不给你留,直接塞一条新 feed——它赌你不会等,它赢了。 备份策略这事我想岔了。上周值班半夜收到告警,主库磁盘快满,我第一反应是清 binlog,结果顺手删了两天前的全量备份文件夹。不是误操作,是我看错了路径层级——/backup/full/20231128 和 /backup/incr/20231128 离得太近,我眼神一晃,删的是 full。领导没骂我,只发来一个文档链接,标题叫《备份校验 SOP v3.2》,末尾一行小字:“本版本未启用,待 QA 回归”。我合上笔记本,点了碗云吞面,面汤凉了,浮着几星油花。后来小陈帮我写了个自动比对脚本,跑完发现上周六凌晨3点那次全量备份其实没成功,但 rsync 返回码是0。我们没人检查 exit code。这事跟交互设计没关系,但我觉得有关。都是“默认信任某件事能走通”,结果全在线上塌方。 再说回那个 varchar(255)的 create_time。开发说迁移成本高,要改字段得锁表俩小时,影响登录流水。我说那就分批改,先加个 new_create_time datetime NOT NULL DEFAULT ‘1970-01-01’,再写个后台任务慢慢灌。他摇头,“业务逻辑全耦合在 old 字段上,改了得测所有分支”。我问哪几个分支?他翻出一份PDF,七百多页,最新更新日期是2014年8月。我问他有没有人读过全文,他说“产品说她只看高亮部分”。我打开自己收藏夹里那份 2011 年的《Web Design for Mobile First》PDF,封面都泛黄了,作者署名还是“Ethan Marcotte”,连 responsive 这词都还没被翻译成“响应式”,大家管它叫“自适应”。现在我们还在用 JS 劫持 touchstart 去模拟 click 的 polyfill,就为了兼容某个早就退市的安卓4.2 WebView 内核。
文章配图,仅供参考 午饭吃的是楼下便利店关东煮,萝卜煮得太久,咬一口全是水。隔壁组的测试妹妹探头问我:“你们那个‘一键同步通讯录’按钮,为啥要点两下才生效?”我愣了三秒,想起前端加了 debounce,但设成了 500ms,而 iPhone 的 touchEnd 到 click 的延迟平均 300ms——凑一块儿,第一次点击白给。我说“下次改成 200ms”。她说“哦”,转身走了,后颈一缕头发翘起来,扎进运动发带里。我盯着她背影想,2010 年我们争论的是 IE6 兼容,2024 年我们卡在手机触控延迟里画地为牢,中间十年,谁在推这件事往前走?没人推。是用户用脚投票,投到别家 App 里去了。 我现在每天早上第一件事不是看慢查询,是打开竞品 App 做三件事:① 发一条私信;② 拖动一个长列表;③ 切换一次网络(从WiFi切飞行模式再切回来)。不截图,不记数据,就感受手指停顿的那一下是否自然。上周我发现某竞品发消息后,输入框自动收起,键盘弹出动画和文字上屏几乎同步,帧率压得极稳。我截图发给小陈,他说“他们用了 Flutter,我们 React Native 老版本有合成层 bug”。我没接这话。我就记得2012年我在一家电商做H5,为保滑动流畅,亲手把 jQuery.animate 全干掉了,换成 requestAnimationFrame + transform3d。当时觉得自己牛逼坏了。现在看,牛逼的是那帮把 loading 都做成呼吸动画的 UI 同学,他们不谈“性能瓶颈”,只说“等待感要软着陆”。 我下周打算找产品坐下来,不聊PRD,就拿支笔,在A4纸上画三个流程:① 用户想干啥;② 用户实际点了几下;③ 中间哪一步让ta皱眉了。不写技术方案,就写人脸上那一道褶子怎么来的。如果她嫌浪费时间,我就把去年12月那张慢查询截图打印出来,折成纸飞机,扔进她咖啡杯里——反正咖啡也凉了。 (编辑:我爱制作网_池州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


移动互联时代,日志驱动的多媒体开发新范式
移动互联时代:应用驱动的万物互联安全新架构
当交互设计回归本质,独特性即安全入口
物联网+移动互联时代下的数码安全新挑战
5G模组功耗降维,重塑移动互联样式边界
移动互联时代数码设备与服务器协同优化三大突破
移动互联时代,别让数码设备还离线!
浙公网安备 33038102330577号