tag

客户端架构

共 180 篇文章。
全部文章书稿GoJavaTypeScript互联网产品游戏开发独立开发者小游戏游戏服务端架构设计游戏设计Godot性能优化Rust
books

《互联网产品的客户端架构·内容、社交与实时互动》4.3 图片格式选择与端上降级

同一张封面图,在支持 AVIF 的手机上清晰又小,在旧 WebView 里却可能直接白屏。本节把能力探测、格式顺序、尺寸变体、压缩参数与版本化 URL 串成一条可测策略:只在解码探测通过时使用新格式,按 DPR 选最小可用变体,解码失败沿降级链回退,并用内容哈希路径保证缓存不会串图。

10 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》4.2 断点续传与失败恢复

上传到 87% 时进程被系统回收,回来后是从头开始还是接着传?本节把上传会话拆成会话 id、文件指纹、已确认分片清单与过期时间,给出恢复决策表、以服务端为准的对账规则和按错误类型分流的重试策略,并复盘一次本地清单比服务端多、最终拼出缺片文件的事故。

10 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》4.1 上传编排:分片、并发与进度语义

一条 48MB 的视频会把上传器的问题全部放大:分片多大、并发几个、进度条该信哪个数、失败算不算完成。本节用内存传输适配器与可注入时钟实现上传编排器,区分线路进度与已确认进度,并复盘一次进度跑到 100% 而服务端合并失败的事故,给出可测试的完成判定。

8 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》3.3 媒体懒加载与占位:CLS 的端上来源

图片把正文撑开的那一刻,CLS 就已经发生。本节把占位盒、首屏媒体优先级、懒加载触发条件与失败降级拆成可计算的纯函数,用固有宽高和可视区域算出布局位移分数,复盘一次信息流图片加载导致误触的抖动事故与修复顺序,并给出与结构化块模型、sanitize 的接口边界。

9 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》3.2 渲染边界与 sanitize:谁能写 HTML

作者正文、运营配置、第三方嵌入的信任级别并不相同。本节把 sanitize 定义为能力边界而不是标签黑名单,给出作者、运营、嵌入三套白名单策略,处理 URL 协议与实体编码绕过,并用测试复盘一次直接 innerHTML 导致的脚本注入事故与修复顺序。

11 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》3.1 结构化内容:把正文当成数据而不是 HTML 字符串

正文不该是一段 HTML 字符串,而是一份可校验、可降级的块文档。本节定义段落、图片、视频、代码、引用五类块与行内标记,给出未知块降级、未来版本拒绝与确定性序列化的 TypeScript 实现,并用测试覆盖迁移、round-trip 与坏字段。

12 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》2.3 刷新策略:下拉、自动、回到前台该不该拉

下拉、轮询、回到前台是三种不同意图的刷新,用同一个定时器处理只会在用户阅读时把列表顶走。本节用一段可运行的 TypeScript 策略模块给出逐触发的判定、刷新合并与节流、锚点位置保护,并复盘一次前后台切换风暴导致的三连请求与列表跳动,给出参数取值的依据。

9 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》2.2 去重、插入与位置保持

分页只保证「不重不漏地取」,端上仍会遇到同一张卡片来自刷新、实时推送与翻页三条路径。本节用带假时钟的 TypeScript 窗口实现已见集合、按时间排序的实时插入、锚点 id 位置恢复与 epoch 乱序丢弃,并复盘一次淘汰条目后「越滑越少」的线上问题。

9 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》2.1 游标分页:为什么页码在内容流里会失效

内容流一旦插入新条目,页码就不再是位置:总数漂移会让第二页重复上一页的卡片,深分页还要求数据库扫过前 N 行。本节用一段可运行的 TypeScript 实现时间戳加 id 的复合游标、开区间翻页与 end-of-feed 判定,并复盘一次热榜刷新导致的重复与漏项事故。

8 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》1.3 lab 的三条验证线:L1 纯逻辑、L2 进程内、L3 本地实时通道

客户端实验最怕「测试全绿但线上照错」。本节把验证分成 L1 纯逻辑、L2 进程内流程、L3 本地实时通道三级,用一段可运行的 TypeScript 判定器逐级说明各自能证明什么、不能证明什么,并复盘一次因并发执行时序用例而产生的假绿灯事故。

8 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》1.2 social-lab 的第一个决定:端上先画什么

内容端的第一处架构决定不是选框架,而是决定哪份状态归谁所有。本节把服务端状态、会话状态与瞬时 UI 状态分开,用一段可运行的 TypeScript 实现带游标、去重与淘汰上限的信息流容器,并复盘一次把游标存在组件里、导致返回页面后重复加载的真实事故。

8 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》1.1 「回声」的内容面:信息流、详情、互动、实时四条线

把「回声」的客户端拆成信息流、详情、互动、实时四条消费线,逐条说明每条线需要什么数据、失败时能退到哪里,并用一段可运行的 TypeScript 把四条面的需求写成结构化输出与测试,最后复盘一次四件事混在一个页面里导致状态互相踩踏的真实事故。

9 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构》卷二 · 目录与章节索引

《互联网产品的客户端架构·内容、社交与实时互动》的完整目录与学习路径:13 章 39 节从内容端四条消费面讲到信息流、渲染、上传、互动、实时连接、重连补拉、在线状态、关系、通知、审核与搜索,附实验工程、三条阅读路径、数字与版本口径,以及读完应能回答的六个问题。

8 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·内容、社交与实时互动》序

卷一讲清楚端上约束之后,真正难的部分才开始:内容要滚动、互动要即时、连接会断。这篇序说明为什么内容、社交与实时互动值得单独成卷,四条消费面共享哪四条核心判断,本卷十三章如何排布、坚持哪些立场、写给哪些读者,以及明确不承诺什么、与卷一如何衔接。

14 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·端形态与体验基础》附录 C 客户端架构评审清单

一份可直接用于客户端架构评审的清单:从评审前要准备的材料,到约束与端形态、质量预算、分层依赖、状态归属、路由与深链、数据离线、组件契约、构建产物、渲染路径、错误降级、观测与发布兼容十二个维度,每条给出判定标准与常见反例,并附十条自检总表与评审后的跟踪方式。

12 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·端形态与体验基础》附录 B 端上问题排查手册

按用户可描述的症状组织的端上排查手册:白屏、首屏慢、滚动卡顿、内存增长、请求失败、状态丢失、崩溃、深链打不开与版本兼容异常,每种症状都给出按概率排序的原因、验证步骤、处置建议和需要补的观测,并附从产物到渲染的跨症状排查顺序、现场记录模板与常见误判。

13 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·端形态与体验基础》附录 A 客户端指标与体验口径速查

把 FP、FCP、LCP、INP、TBT、CLS 等客户端体验指标的定义、起止点与聚合口径收在一处,说明采样、分位以及端上与服务端口径的差异,列出平均值、幸存者偏差、埋点丢失等统计陷阱,并附一份可直接复用的指标字典模板与一张可直接贴进评审文档的速查表。

13 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·端形态与体验基础》13.3 质量属性场景与风险清单

把弱网打开、进程回收恢复、支付回调重复、包体超限四个质量属性场景转成可评分风险条目,用影响、概率、发现难度三维打分并排序,给出阈值、结论判定与固定输出格式,附一次基线评审记录、风险关闭过程,以及清单如何进入下一轮迭代并转化为可执行的发布条件。

8 分钟阅读
书稿 互联网产品 客户端架构
books

《互联网产品的客户端架构·端形态与体验基础》13.2 模块划分与依赖图

收口卷一的模块依赖:把各章实验整理成带层级的模块清单,构建依赖图、Kahn 拓扑排序、回路检测与方向校验,输出可直接写入评审记录的文本。附卷一真实依赖图的结论,说明 summary 组合根为什么允许向下穿透多层,以及依赖图与架构图之间仍缺的那部分证据。

8 分钟阅读
书稿 互联网产品 客户端架构