系统设计复盘2026-09-18

分析

  • 已经在多个核心场景中完成了从"零散知识点"到"结构化思考"的初步转变。最大的进步在于敢于质疑权威方案(如质疑九宫格在SLG中的适用性、指出MQ不适合实时有序场景),并能主动识别自己的知识盲区(如"对保证响应时间没思路""对顺序约束没思路")。

  • 暴露了一些系统性的不足:缺乏将业务问题抽象为通用模式的习惯,导致面对新场景时仍会陷入"不知从何下手"的困境。

  • 知道很多技术名词,但到了实际设计时,大脑一片空白,不知道用哪个、怎么用、为什么用。根本原因是我的知识结构是点状的、孤立的,缺少一张"技术 → 问题 → 场景"的映射网络。

缺乏

  1. 思维维度缺失
  • 缺乏问题归类:面对新系统(如联盟领地),没有第一时间将其拆解为"生命周期管理"、"广播风暴"、"并发控制"等通用问题类型,导致方案显得零散。
  • 缺乏约束映射:没有明确列出核心约束(如"实时性<50ms"、"数据不膨胀"),也没有将约束与技术选型(如超时熔断、冷热分离)进行一一对应。
  • 容灾与降级空白:方案只描述了"正常怎么跑",没写"宕机了怎么办"、"网络堵了怎么降级"(如视野同步堵塞的应对策略)。
  • 生命周期简陋:赛季化处理仅停留在"存快照、淘汰旧数据",缺失了重置、继承、结算等核心环节。
  1. 技术深度单薄
  • 知其然不知其所以然:提到了"分布式锁"、"位运算"、"AOI",但没有说明具体解决什么痛点,遇到冲突时如何取舍(例如:为什么用Redis SetNx而不是悲观锁?)。
  • 方案停留在表面:例如领地占领,只说了"用分布式锁",没提"战斗胜利与占领状态的原子性如何保证"(如结合本地消息表)。
  1. 方案描述方式问题
  • 只有结论,没有推演:例如"使用灯塔aoi...实现视野共享",缺乏"为什么选AOI"、"不用全图广播"的对比推演。
  • 缺乏结构化对比:方案一和方案二(如果有)之间没有明确的维度对比(如性能、复杂度、一致性)。
  • 优劣分析浅显:劣势中提到了"网络堵塞",但没有给出解决该劣势的备选方案或降级策略。
  • 决策理由单薄:决策卡上的理由只是简单罗列(如"有较为高效的联盟职权判断"),缺乏说服力。

核心技术-问题-场景映射表

xxx

深度学习计划:从"知道"到"会用"

  1. 对每个技术,做一次"深度卡片"

选一个技术(如乐观锁),按照以下格式手写一张卡片:

复制代码
技术名称:乐观锁
核心原理:版本号CAS
解决的问题:并发写冲突
典型场景:行军状态更新、资源采集
为什么选它:冲突率低,无锁开销
不选它的理由:冲突率高时重试浪费,此时应选分布式锁
实现细节:update table set version=version+1 where id=? and version=?
常见坑:版本号用整数而非时间戳(避免时钟偏差);重试次数限制

每天做一个技术,一周做完上面8个核心技术。

  1. 回到过去的决策卡,补全"为什么选它"

拿出第18-24天的决策卡,在每一个技术选型旁边写下:

  • 为什么选这个技术?(对应上面的"为什么选它")
  • 为什么不选另一个?(如"不选MQ是因为实时性要求高,MQ有延迟")

这个过程会把你的知识从"点状"变成"网状"。

  1. 做"反向练习"

给自己出题:"如果要解决XXX问题,有哪些技术可选?各自的优缺点?"

例如:

问题:防止同一行数据被并发覆盖。

可选:乐观锁、悲观锁(SELECT FOR UPDATE)、分布式锁(Redis SETNX)、应用层CAS(compare-and-swap)。

比较:乐观锁适合低冲突,悲观锁适合高冲突且短事务,分布式锁适合跨进程,应用层CAS适合内存变量。

这样你就建立了"问题→多个方案→选型决策"的思维路径。

决策卡模板调整

复制代码
## 场景与核心约束
* 业务场景:[描述具体场景,如联盟领地争夺]
* 硬约束:[列出2-3个核心约束,如:领地归属唯一、数据不无限膨胀、视野同步低延迟]

## 通用问题归类
* [ ] 时间驱动(如行军/资源产出)
* [x] 生命周期管理(如赛季化)
* [x] 广播风暴/大规模同步(如视野共享)
* [x] 并发与原子性(如领地占领)
* [ ] 事件幂等与可靠性

## 方案设计
* [技术选型1]:[具体实现逻辑](解决[某约束/某通用问题])
* [技术选型2]:[具体实现逻辑](解决[某约束/某通用问题])
* 数据一致性/容灾:[描述跨服务一致性方案及降级策略,如MQ最终一致+限流降级]

## 方案对比与决策
| 方案 | 优点 | 缺点 | 决策理由 |
|------|------|------|----------|
| 方案一 | ... | ... | 选中:因为... |
| 方案二 | ... | ... | 弃用:因为... |

## 容灾与降级
* [描述异常场景下的兜底方案,如:视野同步拥塞时降级为离线拉取]
相关推荐
李日华大战鸡红15 小时前
FOC状态空间方程模型推导(学习记录)
python·学习·线性代数
kkkkkkkkkk_Z17 小时前
新手自学嵌入式 | 学习日记:异常与中断基础、i.MX6ULL裸机开发环境搭建、GPIO模块与点灯原理
学习
m4Rk_18 小时前
【论文阅读】Agent 记忆机制(94):MemGen——在推理过程中动态生成并织入潜在记忆
论文阅读·人工智能·学习·开源·github
晓德18 小时前
0、LLM大模型安全学习系列(启)
学习·安全
Titan202419 小时前
MySQL索引学习笔记
笔记·学习·mysql
JWASX19 小时前
Java 转 go 学习 - kitex(5)
学习·golang
AOI小白新手上路19 小时前
VDMamba·AutoDL 复现笔记 · 学习笔记
笔记·学习
~kiss~19 小时前
LangGraph ~ 为图添加跨线程持久化
学习
xianrenli3821 小时前
水肺潜水学习
学习
凌云若寒1 天前
BarTender提示#807错误:无法在拥有其他许可证的Licensing Service上激活节点锁定的 Professional 版许可证 的解决办法
运维·服务器·前端·学习·软件需求