posts

《互联网产品的客户端架构·规模化与架构演进》 · 已发布章节索引(45 篇)

《互联网产品的客户端架构·规模化与架构演进》全 45 篇:13 章覆盖多端一致性、设计系统、插件化、性能治理、稳定性、构建交付、可观测性、安全隐私、国际化、无障碍、架构治理、迁移与平台化收口;附序、前言、目录与三篇附录,配可运行 TypeScript 实验工程。

全卷 45 篇:13 章正文 + 序、前言、目录 + 附录 A/B/C。每节配可运行的 TypeScript 代码,代码块用 // file: / // tier: / // verify: 标注,可在实验工程中逐字节还原。

本页是卷四的完整索引。可以从目录与学习路径 按顺序通读,也可以按问题跳读。

全书概览

项目内容
书稿《互联网产品的客户端架构》卷四
已发布篇数45 篇(含目录与附录)
主线语言TypeScript(Node 26 原生类型剥离,零第三方依赖)
贯穿案例内容社区「回声」的五个端:Web、iOS、Android、小程序、桌面
阅读方式目录篇顺序通读,或按章节表跳读
上级专题书稿专题

前置

篇文章核心内容
序序从「五端各自发布」写起,交代前三卷的三笔债、卷四的四条判断与十三章收束方式。
前言前言每章四段写法、evolve-lab 模块地图、代码约定、团队用法与三个动手练习。
目录目录13 章 39 节的结构、章节依赖、三条阅读路径与读完应能回答的六个问题。

第 1 章 多端一致性与平台边界

节文章核心内容
1.11.1 五类端形态与一致性承诺多端架构的第一步不是共享代码,而是定义哪些行为必须一致、哪些可以等价、哪些允许不同。本节给出 Web、iOS、A…
1.21.2 共享内核与端上适配层共享内核不是把所有代码塞进一个包,而是把可共享的判断放在 core、把端差异隔离在 adapter,并用依赖规则…
1.31.3 能力探测与渐进增强端能力不是布尔值:同一个支付能力可能是原生、polyfill 或完全缺失,同一个功能可能是必需或可选。本节用能力…

第 2 章 设计系统与组件平台

节文章核心内容
2.12.1 设计 token 与主题化同一条按钮 token 在暗色主题下解析成透明文字,往往不是样式写错,而是三层 token 的解析链断了。本节用…
2.22.2 组件契约与版本化按钮组件从 1.4 升到 1.5,发布说明写着「只加了可选属性」,四十多个业务包却在编译期报错。问题不在版本号,…
2.32.3 多品牌与多业务复用四个品牌共用一套组件库,一次全量合并后,A 品牌的结算主色出现在 B 品牌的收银台,排查发现是品牌包被当成全局配…

第 3 章 插件化与动态化

节文章核心内容
3.13.1 插件协议与宿主边界插件化不是把代码拆出去,而是先定义宿主与插件的契约边界。本节从三个宿主版本同时在线、插件清单失控的现场出发,给出…
3.23.2 沙箱、权限与失败隔离插件沙箱的目标不是让插件跑不起来,而是让它在越权时被拒绝、在崩溃时被隔离。本节从一次插件读取全盘文件、拖垮首页的…
3.33.3 动态配置与热更新的停止条件热更新的难点不是把配置推下去,而是知道什么时候必须停下来。本节从一次凌晨配置推送引发的崩溃出发,给出默认、环境、…

第 4 章 性能治理体系

节文章核心内容
4.14.1 性能预算与分端指标性能预算不能只有一条全局阈值。本节把启动、首屏、交互、内存四类指标按 Web、iOS、Android、小程序、桌…
4.24.2 归因:从慢到哪一行只知道首屏慢没有用,必须回答慢在哪个阶段、哪条路径、哪一行。本节把一次加载拆成网络、解析、渲染、脚本四个阶段,用…
4.34.3 优化闭环与回归防护性能优化没有闭环,就等于把成果交给下一次发版碰运气。本节把优化项登记、基线对比、阈值与显著性、回归门禁串成一条可…

第 5 章 稳定性与容错架构

节文章核心内容
5.15.1 故障域与爆炸半径端上故障很少只坏一个按钮:一个共享依赖失效,可能同时带走首页、下单与通知。本节把依赖图、故障域、单点与爆炸半径写…
5.25.2 降级、开关与兜底开关越多,事故时越容易互相打架:用户级、实验级、端级与全局规则同时命中时,必须有一个确定的赢家。本节把开关层级、…
5.35.3 故障演练与恢复验证演练最容易通过的部分是注入,最容易造假的部分是恢复。若没有恢复断言与未通过项记录,「演练成功」只是一句口号。本节…

第 6 章 构建与交付工程

节文章核心内容
6.16.1 Monorepo 与包边界Monorepo 的难点不是把代码放进一个仓库,而是让包边界可执行。本节把包声明、依赖、公开与内部可见性、子路径…
6.26.2 产物治理与缓存缓存命中率低,原因往往不是缓存没有生效,而是缓存键没有覆盖真正的输入。本节把内容哈希、工具链、环境变量与依赖产物…
6.36.3 发布流水线与灰度回滚发布流水线的价值不在自动化,而在每一步都能给出可解释的放行或阻断。本节把阶段门禁、灰度比例、健康阈值与回滚触发写…

第 7 章 端上可观测性

节文章核心内容
7.17.1 日志、指标与追踪的最小契约一次支付故障排查花掉三小时,根因不是代码,而是四个团队的上报字段各说各话。本节把日志、指标、追踪收敛成一份可校验…
7.27.2 采样、脱敏与成本日志量一周涨二十倍,账单和合规风险同时到来。本节给出端上采样的三张策略表:按等级采样、按字段脱敏、按等级保留;用…
7.37.3 从告警到定位的闭环一次故障刷出三百条告警,值班同学先花二十分钟分辨哪些是同一件事。本节把告警做成状态机与可计算对象:规则字段、指纹…

第 8 章 安全、隐私与合规

节文章核心内容
8.18.1 数据分级与最小权限数据分级只有落到字段、用途与流向上才可执行。本节把公开、内部、敏感、极敏感四级数据写成可测试的纯函数,演示字段级…
8.28.2 第三方 SDK 治理第三方 SDK 的风险不该靠印象打分。本节用可解释的权重表计算风险分,覆盖权限差异、初始化时机、治理问题清单与下…
8.38.3 隐私合规的工程落地同意不是一个布尔值,而是一台有状态、有版本、可撤回的机器。本节实现未询问、已同意、已拒绝、已撤回四态状态机,演示…

第 9 章 国际化与本地化

节文章核心内容
9.19.1 文案、时区与货币同一笔订单在圣保罗下单、在莫斯科退款时,文案复数、时区换算和货币最小单位会同时出错,三类故障常常互相掩盖。本节把…
9.29.2 RTL、排版与本地内容阿拉伯语用户打开同一张订单页,返回箭头仍指向左边,订单号在双向文本里跳到句子另一端。本节把方向传播、逻辑属性映射…
9.39.3 区域能力差异与降级同一版本在德国能刷卡、在巴西只能货到付款、在阿联酋没有在线客服。区域能力不是布尔开关,而是有优先级的矩阵与降级链…

第 10 章 无障碍与包容性

节文章核心内容
10.110.1 语义结构与焦点顺序读屏用户听到一连串「按钮」,键盘用户按 Tab 从页头直接跳到页脚,弹窗打开后焦点再也出不去。本节把角色、名称、…
10.210.2 读屏、键盘与动效偏好下单失败时错误条只在视觉上出现,读屏用户什么也没听到;优惠券排序只能拖动,键盘用户无法完成;系统开了「减少动效」…
10.310.3 无障碍测试与验收发布前扫描器报告零错误,上线后仍收到「弹窗关不掉」「读屏走不通」的投诉:自动规则测不到焦点陷阱,也没有严重级别来…

第 11 章 团队协作与架构治理

节文章核心内容
11.111.1 架构决策记录与契约从一次没人记得的架构决策出发,把 ADR 拆成九个必填字段、四态生命周期、集合级完整性校验与契约变更登记,并给出…
11.211.2 代码所有权与评审从一次合并后三周无人认领的线上问题出发,把代码所有权拆成路径规则、owner 映射、覆盖度、评审路由与无人负责路…
11.311.3 技术债台账与治理节奏从一份永远排不上期的技术债清单出发,把债务治理拆成条目字段、严重度与影响面、偿还排期、逾期标记与季度节奏五部分,…

第 12 章 架构演进与迁移

节文章核心内容
12.112.1 绞杀者与渐进式替换绞杀者替换的关键不是一次删掉旧代码,而是让新旧路径同时存在,并按用户、端与功能分桶逐步放量。本节把路由比例、白名…
12.212.2 双写双读与兼容窗口双写不是把同一份数据写两遍就结束,真正决定成败的是写入顺序、次写失败后的降级、双读比对口径,以及兼容窗口何时关闭…
12.312.3 迁移的退出条件与回滚迁移的终点不是新路径上线,而是旧路径被安全删除。本节给出流量、错误、数据一致与观察期四类退出判据,把回滚资产检查…

第 13 章 卷四收口:从应用到平台

节文章核心内容
13.113.1 端到端:多端同一笔交易的体验一致性同一笔已支付订单在 Web、iOS、Android、小程序和桌面回放,金额、状态与文案只要有一处不同,用户就会怀…
13.213.2 平台化验收:能力矩阵与治理清单平台化不是把组件数量堆上去,而是让承诺、组件、交付、观测、安全与治理六个维度都能拿出证据。本节用成熟度矩阵给每个…
13.313.3 全书收官:四卷回顾与下一站四卷一百八十节讲完,真正要留下的是一个能自查的承诺模型,而不是一份读完的目录。本节把四卷的核心问题整理成十五项收…

附录

篇文章核心内容
附录 A附录 A十二组核心术语与判据速查:承诺、边界、能力、性能、稳定性、交付、观测、安全、国际化、无障碍、治理、迁移。
附录 B附录 B按十类症状组织的多端排查手册:先查什么、常见根因、验证与预防。
附录 C附录 C六十五题架构评审清单、快速十问、记录模板与常见分歧处理。

怎么读这一卷

配套实验

全部代码位于 evolve-lab,按章分目录:src/platform、src/design、src/plugin、src/perf、src/stability、src/build、src/observability、src/security、src/i18n、src/a11y、src/governance、src/migration、src/summary。

运行方式:node --test test/<目录>/*.test.ts。Node 26 原生类型剥离,无 package.json、无第三方依赖。

三篇附录

全部文章 Books game Java Indie golang 客户端开发 Minigame Saas rust Python
books

《互联网产品的客户端架构·规模化与架构演进》8.1 数据分级与最小权限

数据分级只有落到字段、用途与流向上才可执行。本节把公开、内部、敏感、极敏感四级数据写成可测试的纯函数,演示字段级最大级别、用途绑定、流向上限、保留期审计与最小权限拒绝,并给出可复算的判据与常见反例,说明客户端判定与服务端复核的边界,让「能不能用、给谁用、留多久」在一次判定里同时回答。

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

《互联网产品的客户端架构·规模化与架构演进》7.2 采样、脱敏与成本

日志量一周涨二十倍,账单和合规风险同时到来。本节给出端上采样的三张策略表:按等级采样、按字段脱敏、按等级保留;用确定性哈希保证同一会话的决策稳定,用字节数、放大倍数与单价把成本算成可复核的算式,并说明 PII 脱敏的边界与离线补传的处理规则。

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

《互联网产品的客户端架构·规模化与架构演进》7.1 日志、指标与追踪的最小契约

一次支付故障排查花掉三小时,根因不是代码,而是四个团队的上报字段各说各话。本节把日志、指标、追踪收敛成一份可校验的最小契约:三类事件的必填字段、三类错误码、缺失字段报告,以及 span 的父子关联、断链检测与链路深度,并给出契约评审时的判据与反例。

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

《互联网产品的客户端架构·规模化与架构演进》6.3 发布流水线与灰度回滚

发布流水线的价值不在自动化,而在每一步都能给出可解释的放行或阻断。本节把阶段门禁、灰度比例、健康阈值与回滚触发写成纯函数:前置阶段未通过则后续阻塞,样本不足时保持不动,指标越界立即回滚,并把每次决策追加成可追溯的版本记录。灰度不是按比例放量,而是按证据放量。

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

《互联网产品的客户端架构·规模化与架构演进》6.2 产物治理与缓存

缓存命中率低,原因往往不是缓存没有生效,而是缓存键没有覆盖真正的输入。本节把内容哈希、工具链、环境变量与依赖产物拼成稳定缓存键,给出命中、键变化、产物缺失与过期四类判定,并用产物清单与体积预算把构建结果变成可审计的事实。命中率只是结果,可重现才是目标。

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

《互联网产品的客户端架构·规模化与架构演进》6.1 Monorepo 与包边界

Monorepo 的难点不是把代码放进一个仓库,而是让包边界可执行。本节把包声明、依赖、公开与内部可见性、子路径导出写成一张依赖图,用拓扑排序与环检测给出构建顺序,再用纯函数判断跨包引用是否合法,并复盘一次深路径引用绕过评审的事故。边界一旦只写在文档里,就会在第一次赶工期时失效。

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

《互联网产品的客户端架构·规模化与架构演进》5.3 故障演练与恢复验证

演练最容易通过的部分是注入,最容易造假的部分是恢复。若没有恢复断言与未通过项记录,「演练成功」只是一句口号。本节把演练场景、注入步骤、恢复断言与报告判定写成可运行的 TypeScript 模型,并说明 incomplete 与 fail 的区别、中止条件与报告评审判据。

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

《互联网产品的客户端架构·规模化与架构演进》5.2 降级、开关与兜底

开关越多,事故时越容易互相打架:用户级、实验级、端级与全局规则同时命中时,必须有一个确定的赢家。本节把开关层级、冲突检测、降级动作与兜底内容写成可测试的 TypeScript 模块,并给出优先级判据、常见反例与发布前的审计清单,让每一次关闭都有据可查。

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

《互联网产品的客户端架构·规模化与架构演进》5.1 故障域与爆炸半径

端上故障很少只坏一个按钮:一个共享依赖失效,可能同时带走首页、下单与通知。本节把依赖图、故障域、单点与爆炸半径写成可运行的 TypeScript 模型,用受影响功能比例量化一次故障的波及面,并给出评审判据与常见反例,让「影响面多大」从口头争论变成可计算的数字。

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

《互联网产品的客户端架构·规模化与架构演进》4.3 优化闭环与回归防护

性能优化没有闭环,就等于把成果交给下一次发版碰运气。本节把优化项登记、基线对比、阈值与显著性、回归门禁串成一条可执行的链路,用可运行的 TypeScript 模块判定改进、通过、告警与阻断,说明基线该锁在哪个版本,以及告警如何跟进,让每次发版都有明确结论。

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

《互联网产品的客户端架构·规模化与架构演进》4.2 归因:从慢到哪一行

只知道首屏慢没有用,必须回答慢在哪个阶段、哪条路径、哪一行。本节把一次加载拆成网络、解析、渲染、脚本四个阶段,用可运行的 TypeScript 模块计算自耗时、阶段占比、关键路径与可疑阶段,把结论落到具体代码层,避免把并行任务误当成瓶颈,并给出归因时最常见的四类误判。

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

《互联网产品的客户端架构·规模化与架构演进》3.3 动态配置与热更新的停止条件

热更新的难点不是把配置推下去,而是知道什么时候必须停下来。本节从一次凌晨配置推送引发的崩溃出发,给出默认、环境、实验三层配置的覆盖规则,确定性的灰度分桶,以及基于崩溃率、错误率与延迟的批次停止条件,并用可运行的 TypeScript 模块把停止判定写成代码。

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

《互联网产品的客户端架构·规模化与架构演进》3.2 沙箱、权限与失败隔离

插件沙箱的目标不是让插件跑不起来,而是让它在越权时被拒绝、在崩溃时被隔离。本节从一次插件读取全盘文件、拖垮首页的事故出发,给出权限、作用域与配额的三层模型,用可运行的 TypeScript 模块实现最小授权审计、失败隔离与熔断,并说明每个阈值为什么必须按插件配置。

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

《互联网产品的客户端架构·规模化与架构演进》3.1 插件协议与宿主边界

插件化不是把代码拆出去,而是先定义宿主与插件的契约边界。本节从三个宿主版本同时在线、插件清单失控的现场出发,给出插件 id、版本、宿主 API 区间与能力声明的校验模型,用可运行的 TypeScript 模块完成协议校验、兼容判定与责任划分,并说明哪些关注点必须留在宿主。

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

《互联网产品的客户端架构·规模化与架构演进》2.3 多品牌与多业务复用

四个品牌共用一套组件库,一次全量合并后,A 品牌的结算主色出现在 B 品牌的收银台,排查发现是品牌包被当成全局配置加载。多品牌复用的难点不是覆盖,而是边界与隔离。本节用 TypeScript 模块演示覆盖顺序、业务包与品牌包的权限边界、同层冲突检测和复用度计算,并给出多品牌接入前的验收判据。

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

《互联网产品的客户端架构·规模化与架构演进》2.2 组件契约与版本化

按钮组件从 1.4 升到 1.5,发布说明写着「只加了可选属性」,四十多个业务包却在编译期报错。问题不在版本号,而在没人把组件契约当成可比较的对象。本节用 TypeScript 模块演示属性、事件、插槽与可访问性语义的变更分类、兼容判定、版本递增和契约快照比较。

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

《互联网产品的客户端架构·规模化与架构演进》1.3 能力探测与渐进增强

端能力不是布尔值:同一个支付能力可能是原生、polyfill 或完全缺失,同一个功能可能是必需或可选。本节用能力表与降级计划模块,把「原生、polyfill、降级、阻塞」四种策略写成可测试的判定,并说明快照刷新、探测误差、开关实验的边界与排查清单。

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