<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>《互联网产品的客户端架构·规模化与架构演进》 · 已发布章节索引（45 篇） on PlumePHP</title><link>https://plumephp.com/posts/books/%E4%BA%92%E8%81%94%E7%BD%91%E4%BA%A7%E5%93%81%E7%9A%84%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%9E%B6%E6%9E%84%E8%A7%84%E6%A8%A1%E5%8C%96%E4%B8%8E%E6%9E%B6%E6%9E%84%E6%BC%94%E8%BF%9B/</link><description>Recent content in 《互联网产品的客户端架构·规模化与架构演进》 · 已发布章节索引（45 篇） on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 03 Nov 2026 17:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/posts/books/%E4%BA%92%E8%81%94%E7%BD%91%E4%BA%A7%E5%93%81%E7%9A%84%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%9E%B6%E6%9E%84%E8%A7%84%E6%A8%A1%E5%8C%96%E4%B8%8E%E6%9E%B6%E6%9E%84%E6%BC%94%E8%BF%9B/index.xml" rel="self" type="application/rss+xml"/><item><title>《互联网产品的客户端架构·规模化与架构演进》附录 C 架构评审清单</title><link>https://plumephp.com/inet-client-evolve-appendix-c-review-checklist/</link><pubDate>Tue, 03 Nov 2026 17:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-appendix-c-review-checklist/</guid><description>卷四附录 C：一份可直接投影使用的多端架构评审清单，按承诺边界、设计系统、插件动态化、性能、稳定性、交付、可观测性、安全合规、国际化无障碍、治理迁移十组展开；每题要求填写现状、证据、缺口与 owner；另附快速十问、评审记录模板、常见分歧的处理方式与评审边界，可直接投影或导入工单系统使用。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》附录 B 多端问题排查手册</title><link>https://plumephp.com/inet-client-evolve-appendix-b-troubleshooting/</link><pubDate>Tue, 03 Nov 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-appendix-b-troubleshooting/</guid><description>卷四附录 B：按十类症状组织多端排查手册，包括功能在某端不可用、同一笔订单状态不同、组件样式漂移、发布后白屏、性能退化、线上问题无法定位、第三方 SDK 隐私风险、区域格式错误、读屏不可用与迁移卡住；每类给出先查什么、常见根因、验证方式与预防动作。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》附录 A 术语与判据速查</title><link>https://plumephp.com/inet-client-evolve-appendix-a-terms/</link><pubDate>Tue, 03 Nov 2026 15:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-appendix-a-terms/</guid><description>卷四附录 A：把承诺、边界、能力、性能、稳定性、交付、可观测性、安全、国际化、无障碍、治理与迁移十二组核心术语与判据压缩成速查表，每项给出定义、判断条件、常见误用与对应章节；另附一页纸十二问与中英术语对照，便于架构评审、跨团队对齐与新人上手时直接引用。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》13.3 全书收官：四卷回顾与下一站</title><link>https://plumephp.com/inet-client-evolve-13-3-series-review/</link><pubDate>Tue, 03 Nov 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-13-3-series-review/</guid><description>四卷一百八十节讲完，真正要留下的是一个能自查的承诺模型，而不是一份读完的目录。本节把四卷的核心问题整理成十五项收官检查表，用覆盖率与未关闭项生成下一步建议，并给出继续演进、转入巩固与冻结架构三类停止条件，帮助读者判断什么时候该停下来、什么时候只需维护。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》13.2 平台化验收：能力矩阵与治理清单</title><link>https://plumephp.com/inet-client-evolve-13-2-platform-matrix/</link><pubDate>Tue, 03 Nov 2026 10:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-13-2-platform-matrix/</guid><description>平台化不是把组件数量堆上去，而是让承诺、组件、交付、观测、安全与治理六个维度都能拿出证据。本节用成熟度矩阵给每个条目打分，按缺口排名生成改进顺序，再用维度均值、单项底线、证据要求与加权总分四道门槛完成验收，并说明为什么平均分与权重都不能代替单项底线。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》13.1 端到端：多端同一笔交易的体验一致性</title><link>https://plumephp.com/inet-client-evolve-13-1-multi-end-e2e/</link><pubDate>Tue, 03 Nov 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-13-1-multi-end-e2e/</guid><description>同一笔已支付订单在 Web、iOS、Android、小程序和桌面回放，金额、状态与文案只要有一处不同，用户就会怀疑这笔钱去了哪里。本节用可运行的 TypeScript 场景脚本收集五端观测，把差异归为呈现、环境、契约与未知四类，并给出阻断、警告与放行的发布判据。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》12.3 迁移的退出条件与回滚</title><link>https://plumephp.com/inet-client-evolve-12-3-exit-criteria/</link><pubDate>Mon, 02 Nov 2026 20:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-12-3-exit-criteria/</guid><description>迁移的终点不是新路径上线，而是旧路径被安全删除。本节给出流量、错误、数据一致与观察期四类退出判据，把回滚资产检查、宣布结束、宽限期与旧路径删除写成状态机函数，并说明每条判据的边界与反例：指标刚好达标算不算过，回滚资产存在但过期算不算就绪，以及删除后无法回滚的代价。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》12.2 双写双读与兼容窗口</title><link>https://plumephp.com/inet-client-evolve-12-2-dual-write/</link><pubDate>Mon, 02 Nov 2026 19:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-12-2-dual-write/</guid><description>双写不是把同一份数据写两遍就结束，真正决定成败的是写入顺序、次写失败后的降级、双读比对口径，以及兼容窗口何时关闭。本节把顺序、差异率、窗口状态与到期决策写成纯函数，用可复现的样本回答两个问题：数据到底差多少，旧路径什么时候可以删，以及删除之前还需要哪些证据。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》12.1 绞杀者与渐进式替换</title><link>https://plumephp.com/inet-client-evolve-12-1-strangler/</link><pubDate>Mon, 02 Nov 2026 15:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-12-1-strangler/</guid><description>绞杀者替换的关键不是一次删掉旧代码，而是让新旧路径同时存在，并按用户、端与功能分桶逐步放量。本节把路由比例、白名单与 holdback、确定性哈希、接管进度和回退写成可测试的纯函数，让每一次请求都能解释自己为什么走新路径或旧路径，也说明如何判断迁移是否真正完成。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》11.3 技术债台账与治理节奏</title><link>https://plumephp.com/inet-client-evolve-11-3-tech-debt/</link><pubDate>Mon, 02 Nov 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-11-3-tech-debt/</guid><description>从一份永远排不上期的技术债清单出发，把债务治理拆成条目字段、严重度与影响面、偿还排期、逾期标记与季度节奏五部分，给出可运行的 TypeScript 模块与测试。文中说明优先级分数、容量约束、逾期判据与季度摘要，并解释为什么台账不能变成许愿池。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》11.2 代码所有权与评审</title><link>https://plumephp.com/inet-client-evolve-11-2-code-ownership/</link><pubDate>Mon, 02 Nov 2026 10:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-11-2-code-ownership/</guid><description>从一次合并后三周无人认领的线上问题出发，把代码所有权拆成路径规则、owner 映射、覆盖度、评审路由与无人负责路径识别五部分，给出可运行的 TypeScript 模块与测试。文中说明优先级覆盖、通配规则边界、兜底 owner 的取舍，以及所有权规则为什么会悄悄失效。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》11.1 架构决策记录与契约</title><link>https://plumephp.com/inet-client-evolve-11-1-adr-contract/</link><pubDate>Mon, 02 Nov 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-11-1-adr-contract/</guid><description>从一次没人记得的架构决策出发，把 ADR 拆成九个必填字段、四态生命周期、集合级完整性校验与契约变更登记，并给出可运行的 TypeScript 模块与测试。文中说明哪些决策该接受、哪些该取代、契约变更如何绑定决策，以及校验失败时应该回退到哪一层。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》10.3 无障碍测试与验收</title><link>https://plumephp.com/inet-client-evolve-10-3-a11y-audit/</link><pubDate>Sun, 01 Nov 2026 20:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-10-3-a11y-audit/</guid><description>发布前扫描器报告零错误，上线后仍收到「弹窗关不掉」「读屏走不通」的投诉：自动规则测不到焦点陷阱，也没有严重级别来决定先修什么。本节把规则集、严重级别、加权覆盖度、验收门槛与人工走查清单写成一套可执行的审计模型，并说明为什么覆盖度与门槛必须一起看。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》10.2 读屏、键盘与动效偏好</title><link>https://plumephp.com/inet-client-evolve-10-2-a11y-preferences/</link><pubDate>Sun, 01 Nov 2026 19:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-10-2-a11y-preferences/</guid><description>下单失败时错误条只在视觉上出现，读屏用户什么也没听到；优惠券排序只能拖动，键盘用户无法完成；系统开了「减少动效」，页面仍在自动轮播。本节把播报内容、键盘绑定与减少动效、放大字体、高对比三类偏好映射写成可测试的纯函数，并说明去重与里程碑为什么必须进入模型。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》10.1 语义结构与焦点顺序</title><link>https://plumephp.com/inet-client-evolve-10-1-a11y-semantics/</link><pubDate>Sun, 01 Nov 2026 15:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-10-1-a11y-semantics/</guid><description>读屏用户听到一连串「按钮」，键盘用户按 Tab 从页头直接跳到页脚，弹窗打开后焦点再也出不去。本节把角色、名称、状态与语义节点树写成可校验模型，用 tabIndex 与 DOM 顺序计算焦点顺序，并把跳过、陷阱、丢失三类异常变成可执行的检测函数。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》9.3 区域能力差异与降级</title><link>https://plumephp.com/inet-client-evolve-09-3-region-capability/</link><pubDate>Sun, 01 Nov 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-09-3-region-capability/</guid><description>同一版本在德国能刷卡、在巴西只能货到付款、在阿联酋没有在线客服。区域能力不是布尔开关，而是有优先级的矩阵与降级链。本节把支付、物流、地图、客服四类能力、缺失时的降级路径与区域判定优先级写成可测试模块，避免同一区域在不同页面表现不一致，并给出判据与反例。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》9.2 RTL、排版与本地内容</title><link>https://plumephp.com/inet-client-evolve-09-2-rtl-layout/</link><pubDate>Sun, 01 Nov 2026 10:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-09-2-rtl-layout/</guid><description>阿拉伯语用户打开同一张订单页，返回箭头仍指向左边，订单号在双向文本里跳到句子另一端。本节把方向传播、逻辑属性映射、双向文本隔离与图标镜像规则写成可测试的 TypeScript 模块，并说明哪一层负责决定方向、哪些元素该镜像、哪些必须保持原样。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》9.1 文案、时区与货币</title><link>https://plumephp.com/inet-client-evolve-09-1-locale-format/</link><pubDate>Sun, 01 Nov 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-09-1-locale-format/</guid><description>同一笔订单在圣保罗下单、在莫斯科退款时，文案复数、时区换算和货币最小单位会同时出错，三类故障常常互相掩盖。本节把参数化文案、UTC 存储与区域展示、按币种舍入写成可测试的 TypeScript 模块，并给出金额与时间在国际化场景下的判据与反例。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》8.3 隐私合规的工程落地</title><link>https://plumephp.com/inet-client-evolve-08-3-privacy-consent/</link><pubDate>Sat, 31 Oct 2026 20:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-08-3-privacy-consent/</guid><description>同意不是一个布尔值，而是一台有状态、有版本、可撤回的机器。本节实现未询问、已同意、已拒绝、已撤回四态状态机，演示采集前闸门、目的绑定、版本过期重问与撤回后的分目的清理，并给出可审计的判据与常见错误边界。同意管理不是弹窗文案问题，而是采集链路上的硬闸门。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》8.2 第三方 SDK 治理</title><link>https://plumephp.com/inet-client-evolve-08-2-sdk-governance/</link><pubDate>Sat, 31 Oct 2026 19:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-08-2-sdk-governance/</guid><description>第三方 SDK 的风险不该靠印象打分。本节用可解释的权重表计算风险分，覆盖权限差异、初始化时机、治理问题清单与下线证据检查，并讨论评分阈值、例外审批，以及「删依赖不等于下线」的工程边界，给出可复算的准入与退出判据。评分只是入口，能否上线与能否下线都要落到证据。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》8.1 数据分级与最小权限</title><link>https://plumephp.com/inet-client-evolve-08-1-data-classification/</link><pubDate>Sat, 31 Oct 2026 15:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-08-1-data-classification/</guid><description>数据分级只有落到字段、用途与流向上才可执行。本节把公开、内部、敏感、极敏感四级数据写成可测试的纯函数，演示字段级最大级别、用途绑定、流向上限、保留期审计与最小权限拒绝，并给出可复算的判据与常见反例，说明客户端判定与服务端复核的边界，让「能不能用、给谁用、留多久」在一次判定里同时回答。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》7.3 从告警到定位的闭环</title><link>https://plumephp.com/inet-client-evolve-07-3-alert-loop/</link><pubDate>Sat, 31 Oct 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-07-3-alert-loop/</guid><description>一次故障刷出三百条告警，值班同学先花二十分钟分辨哪些是同一件事。本节把告警做成状态机与可计算对象：规则字段、指纹去重、窗口聚合、按具体度路由 owner、runbook 映射与未闭环标记，并用闭环报告把 MTTR、缺失手册与超时告警汇总出来。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》7.2 采样、脱敏与成本</title><link>https://plumephp.com/inet-client-evolve-07-2-sampling-cost/</link><pubDate>Sat, 31 Oct 2026 10:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-07-2-sampling-cost/</guid><description>日志量一周涨二十倍，账单和合规风险同时到来。本节给出端上采样的三张策略表：按等级采样、按字段脱敏、按等级保留；用确定性哈希保证同一会话的决策稳定，用字节数、放大倍数与单价把成本算成可复核的算式，并说明 PII 脱敏的边界与离线补传的处理规则。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》7.1 日志、指标与追踪的最小契约</title><link>https://plumephp.com/inet-client-evolve-07-1-observability-contract/</link><pubDate>Sat, 31 Oct 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-07-1-observability-contract/</guid><description>一次支付故障排查花掉三小时，根因不是代码，而是四个团队的上报字段各说各话。本节把日志、指标、追踪收敛成一份可校验的最小契约：三类事件的必填字段、三类错误码、缺失字段报告，以及 span 的父子关联、断链检测与链路深度，并给出契约评审时的判据与反例。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》6.3 发布流水线与灰度回滚</title><link>https://plumephp.com/inet-client-evolve-06-3-release-pipeline/</link><pubDate>Fri, 30 Oct 2026 20:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-06-3-release-pipeline/</guid><description>发布流水线的价值不在自动化，而在每一步都能给出可解释的放行或阻断。本节把阶段门禁、灰度比例、健康阈值与回滚触发写成纯函数：前置阶段未通过则后续阻塞，样本不足时保持不动，指标越界立即回滚，并把每次决策追加成可追溯的版本记录。灰度不是按比例放量，而是按证据放量。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》6.2 产物治理与缓存</title><link>https://plumephp.com/inet-client-evolve-06-2-artifact-cache/</link><pubDate>Fri, 30 Oct 2026 19:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-06-2-artifact-cache/</guid><description>缓存命中率低，原因往往不是缓存没有生效，而是缓存键没有覆盖真正的输入。本节把内容哈希、工具链、环境变量与依赖产物拼成稳定缓存键，给出命中、键变化、产物缺失与过期四类判定，并用产物清单与体积预算把构建结果变成可审计的事实。命中率只是结果，可重现才是目标。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》6.1 Monorepo 与包边界</title><link>https://plumephp.com/inet-client-evolve-06-1-monorepo/</link><pubDate>Fri, 30 Oct 2026 15:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-06-1-monorepo/</guid><description>Monorepo 的难点不是把代码放进一个仓库，而是让包边界可执行。本节把包声明、依赖、公开与内部可见性、子路径导出写成一张依赖图，用拓扑排序与环检测给出构建顺序，再用纯函数判断跨包引用是否合法，并复盘一次深路径引用绕过评审的事故。边界一旦只写在文档里，就会在第一次赶工期时失效。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》5.3 故障演练与恢复验证</title><link>https://plumephp.com/inet-client-evolve-05-3-fault-drill/</link><pubDate>Fri, 30 Oct 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-05-3-fault-drill/</guid><description>演练最容易通过的部分是注入，最容易造假的部分是恢复。若没有恢复断言与未通过项记录，「演练成功」只是一句口号。本节把演练场景、注入步骤、恢复断言与报告判定写成可运行的 TypeScript 模型，并说明 incomplete 与 fail 的区别、中止条件与报告评审判据。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》5.2 降级、开关与兜底</title><link>https://plumephp.com/inet-client-evolve-05-2-degrade-switch/</link><pubDate>Fri, 30 Oct 2026 10:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-05-2-degrade-switch/</guid><description>开关越多，事故时越容易互相打架：用户级、实验级、端级与全局规则同时命中时，必须有一个确定的赢家。本节把开关层级、冲突检测、降级动作与兜底内容写成可测试的 TypeScript 模块，并给出优先级判据、常见反例与发布前的审计清单，让每一次关闭都有据可查。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》5.1 故障域与爆炸半径</title><link>https://plumephp.com/inet-client-evolve-05-1-fault-domain/</link><pubDate>Fri, 30 Oct 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-05-1-fault-domain/</guid><description>端上故障很少只坏一个按钮：一个共享依赖失效，可能同时带走首页、下单与通知。本节把依赖图、故障域、单点与爆炸半径写成可运行的 TypeScript 模型，用受影响功能比例量化一次故障的波及面，并给出评审判据与常见反例，让「影响面多大」从口头争论变成可计算的数字。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》4.3 优化闭环与回归防护</title><link>https://plumephp.com/inet-client-evolve-04-3-perf-regression/</link><pubDate>Thu, 29 Oct 2026 20:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-04-3-perf-regression/</guid><description>性能优化没有闭环，就等于把成果交给下一次发版碰运气。本节把优化项登记、基线对比、阈值与显著性、回归门禁串成一条可执行的链路，用可运行的 TypeScript 模块判定改进、通过、告警与阻断，说明基线该锁在哪个版本，以及告警如何跟进，让每次发版都有明确结论。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》4.2 归因：从慢到哪一行</title><link>https://plumephp.com/inet-client-evolve-04-2-perf-attribution/</link><pubDate>Thu, 29 Oct 2026 19:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-04-2-perf-attribution/</guid><description>只知道首屏慢没有用，必须回答慢在哪个阶段、哪条路径、哪一行。本节把一次加载拆成网络、解析、渲染、脚本四个阶段，用可运行的 TypeScript 模块计算自耗时、阶段占比、关键路径与可疑阶段，把结论落到具体代码层，避免把并行任务误当成瓶颈，并给出归因时最常见的四类误判。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》4.1 性能预算与分端指标</title><link>https://plumephp.com/inet-client-evolve-04-1-perf-budget/</link><pubDate>Thu, 29 Oct 2026 15:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-04-1-perf-budget/</guid><description>性能预算不能只有一条全局阈值。本节把启动、首屏、交互、内存四类指标按 Web、iOS、Android、小程序、桌面分别设定软预算与硬上限，用可运行的 TypeScript 模块完成预算表校验、超限明细排序与分端基线对比，并给出预算失效的常见反例。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》3.3 动态配置与热更新的停止条件</title><link>https://plumephp.com/inet-client-evolve-03-3-hot-update/</link><pubDate>Thu, 29 Oct 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-03-3-hot-update/</guid><description>热更新的难点不是把配置推下去，而是知道什么时候必须停下来。本节从一次凌晨配置推送引发的崩溃出发，给出默认、环境、实验三层配置的覆盖规则，确定性的灰度分桶，以及基于崩溃率、错误率与延迟的批次停止条件，并用可运行的 TypeScript 模块把停止判定写成代码。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》3.2 沙箱、权限与失败隔离</title><link>https://plumephp.com/inet-client-evolve-03-2-plugin-sandbox/</link><pubDate>Thu, 29 Oct 2026 10:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-03-2-plugin-sandbox/</guid><description>插件沙箱的目标不是让插件跑不起来，而是让它在越权时被拒绝、在崩溃时被隔离。本节从一次插件读取全盘文件、拖垮首页的事故出发，给出权限、作用域与配额的三层模型，用可运行的 TypeScript 模块实现最小授权审计、失败隔离与熔断，并说明每个阈值为什么必须按插件配置。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》3.1 插件协议与宿主边界</title><link>https://plumephp.com/inet-client-evolve-03-1-plugin-protocol/</link><pubDate>Thu, 29 Oct 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-03-1-plugin-protocol/</guid><description>插件化不是把代码拆出去，而是先定义宿主与插件的契约边界。本节从三个宿主版本同时在线、插件清单失控的现场出发，给出插件 id、版本、宿主 API 区间与能力声明的校验模型，用可运行的 TypeScript 模块完成协议校验、兼容判定与责任划分，并说明哪些关注点必须留在宿主。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》2.3 多品牌与多业务复用</title><link>https://plumephp.com/inet-client-evolve-02-3-multi-brand/</link><pubDate>Wed, 28 Oct 2026 20:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-02-3-multi-brand/</guid><description>四个品牌共用一套组件库，一次全量合并后，A 品牌的结算主色出现在 B 品牌的收银台，排查发现是品牌包被当成全局配置加载。多品牌复用的难点不是覆盖，而是边界与隔离。本节用 TypeScript 模块演示覆盖顺序、业务包与品牌包的权限边界、同层冲突检测和复用度计算，并给出多品牌接入前的验收判据。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》2.2 组件契约与版本化</title><link>https://plumephp.com/inet-client-evolve-02-2-component-contract/</link><pubDate>Wed, 28 Oct 2026 19:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-02-2-component-contract/</guid><description>按钮组件从 1.4 升到 1.5，发布说明写着「只加了可选属性」，四十多个业务包却在编译期报错。问题不在版本号，而在没人把组件契约当成可比较的对象。本节用 TypeScript 模块演示属性、事件、插槽与可访问性语义的变更分类、兼容判定、版本递增和契约快照比较。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》2.1 设计 token 与主题化</title><link>https://plumephp.com/inet-client-evolve-02-1-design-tokens/</link><pubDate>Wed, 28 Oct 2026 15:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-02-1-design-tokens/</guid><description>同一条按钮 token 在暗色主题下解析成透明文字，往往不是样式写错，而是三层 token 的解析链断了。本节用可运行的 TypeScript 模块演示 primitive、semantic、component 三层解析、主题覆盖优先级、别名环检测与缺失回退，并给出组件库接入主题前的验收判据。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》1.3 能力探测与渐进增强</title><link>https://plumephp.com/inet-client-evolve-01-3-capability-detect/</link><pubDate>Wed, 28 Oct 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-01-3-capability-detect/</guid><description>端能力不是布尔值：同一个支付能力可能是原生、polyfill 或完全缺失，同一个功能可能是必需或可选。本节用能力表与降级计划模块，把「原生、polyfill、降级、阻塞」四种策略写成可测试的判定，并说明快照刷新、探测误差、开关实验的边界与排查清单。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》1.2 共享内核与端上适配层</title><link>https://plumephp.com/inet-client-evolve-01-2-shared-core/</link><pubDate>Wed, 28 Oct 2026 10:30:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-01-2-shared-core/</guid><description>共享内核不是把所有代码塞进一个包，而是把可共享的判断放在 core、把端差异隔离在 adapter，并用依赖规则防止逆向泄漏。本节用四层模型与依赖审计函数，演示如何把金额、订单等核心逻辑抽成可跨端复用、可自动检查的内核，并给出内核版本、边界案例与 CI 接入方式。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》1.1 五类端形态与一致性承诺</title><link>https://plumephp.com/inet-client-evolve-01-1-endpoint-matrix/</link><pubDate>Wed, 28 Oct 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-01-1-endpoint-matrix/</guid><description>多端架构的第一步不是共享代码，而是定义哪些行为必须一致、哪些可以等价、哪些允许不同。本节给出 Web、iOS、Android、小程序与桌面五类端形态的承诺矩阵，用可运行的 TypeScript 模块把承诺等级、覆盖缺口与最弱端算出来，并说明承诺如何反过来约束实现。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》目录与学习路径</title><link>https://plumephp.com/inet-client-evolve-toc/</link><pubDate>Wed, 28 Oct 2026 08:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-toc/</guid><description>卷四《规模化与架构演进》的完整目录与学习路径：13 章 39 节，从承诺矩阵与共享内核开始，依次覆盖设计系统、插件化、性能、稳定性、构建交付、可观测性、安全隐私、国际化、无障碍、治理与迁移，最后以多端端到端收口；附章依赖、三条阅读路径与读完应能回答的六个问题。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》前言</title><link>https://plumephp.com/inet-client-evolve-preface/</link><pubDate>Wed, 28 Oct 2026 07:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-preface/</guid><description>卷四前言：说明四卷分工与本卷的位置，交代每章「现场—模型—代码—判据」的四段写法、evolve-lab 的模块地图与三级验证命令、代码与命名约定、章与章之间的依赖、每章应留下的产出物清单，以及如何在团队中把书里的判断落地；并附三个动手练习、自检清单与勘误渠道。</description></item><item><title>《互联网产品的客户端架构·规模化与架构演进》序</title><link>https://plumephp.com/inet-client-evolve-foreword/</link><pubDate>Wed, 28 Oct 2026 06:00:00 +0800</pubDate><guid>https://plumephp.com/inet-client-evolve-foreword/</guid><description>卷四序：从一次「五端各自发布」的失控写起，说明规模化的真正难点不是代码量，而是承诺、边界与治理；交代前三卷留下的三笔债、本卷的四条判断、十三章的收束方式，以及为什么把无障碍与国际化放进架构书；并给出三条阅读路径、与书架其他书稿的分工，以及三级可运行验证的口径。</description></item></channel></rss>