posts

文章归档

PlumePHP 全站文章的归档入口,按时间倒序汇总各专题的技术文章,并提供按主题浏览的专题分类入口。

这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。

全部文章

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

《互联网产品的客户端架构·内容、社交与实时互动》11.2 审核态的内容 UI:占位、隐藏与申诉

审核中的内容最怕先闪正文再被替换。本节用五态状态机描述 draft、pending、review、published、hidden 的可见性与占位,把正文挂载与状态判断绑定,给出 8 条视图投影测试,并复盘一次审核态卡片先渲染正文、随后被占位覆盖的闪烁事故。

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

《互联网产品的客户端架构·内容、社交与实时互动》11.1 端上预检:能拦什么、不能拦什么

端上预检只能做早反馈,不能替代审核。本节用纯函数实现长度、格式、控制字符与少量高风险词的本地提示,区分硬阻断、可申诉复核与轻提示三类结果,给出带允许短语、零宽归一化和规则版本的 8 条测试,并复盘一次单字黑名单误拦「黄金周」正常游记的事故。

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

《互联网产品的客户端架构·内容、社交与实时互动》10.3 推送降级:没有推送权限时怎么补

推送不是「有没有」的二值问题:权限被拒、系统通知关闭、令牌失效,三种情况的恢复路径完全不同。本节给出推送降级矩阵、打开应用时的补偿同步策略与「旧推送角标不能覆盖新已读」的规则,并用 TypeScript 实现计划器与角标合并,复盘一次关掉通知的用户永远看不到红点的事故。

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

《互联网产品的客户端架构·内容、社交与实时互动》10.2 多端已读:一致性从哪里来

同一个「已读」布尔值在两台设备之间一定会打架:甲读完 3 条,乙把整个会话标成已读,新消息到达后两边都显示已读。本节把已读建模为按会话单调前进的位置,用最大位置合并多端状态,处理回执失败重试与服务端总数覆盖,并复盘一次无位置回执把新消息误标已读的事故。

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

《后端架构设计·高性能与高可用》6.3 降级、兜底与用户体验

在 arch-lab 订单链路上实现可组合的降级策略链:订单查询按快照、默认值、只读顺序兜底,支付回调把验签、金额、幂等落账列为不可降级步骤,只有下游暂时不可用才进入持久队列稍后重试;用契约测试证明降级响应仍合法、快照落后于已提交版本时必须显式报错而不能掩盖不一致,并给出错误码、用户文案与恢复后的补偿动作。

7 分钟阅读
书稿 后端架构 Go
books

《互联网产品的客户端架构·内容、社交与实时互动》10.1 未读数的来源与端上合并

点赞、评论、关注与系统通知四种来源的未读数,为什么不能用一个 total += 1 维护。本节用服务端水位 ackSeq 与事件 id 划清「已计数」和「端上待确认」,给出按类型分组、99+ 上限与幂等合并的 TypeScript 实现,并复盘一次旧快照把角标从 4 覆盖回 3 的线上问题。

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

《互联网产品的客户端架构·内容、社交与实时互动》9.3 拉黑与屏蔽:端上必须立即生效的部分

拉黑是安全操作,端上必须先隐藏再同步:信息流、详情、评论、搜索、私信五处都要在请求发出前生效。本节实现 pending/active/failed 三态 BlockStore、失败不回显的重试、只增不减的服务端快照合并,并复盘一次等确认导致弱网下仍能看到对方内容的事故。

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