系统设计复盘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最终一致+限流降级]

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

## 容灾与降级
* [描述异常场景下的兜底方案,如:视野同步拥塞时降级为离线拉取]
相关推荐
传奇开心果编程2 小时前
【Rust入门练中学】 第1课:从零开始
开发语言·学习·rust
高亦真2 小时前
今天是学习嵌入式的第39天
linux·学习·算法
冬奇Lab3 小时前
DeepSeek Harness 系列(10):写一个完整的 dsh 插件——从需求到上线
人工智能·学习·开源
边境悍匪3 小时前
蜗牛学苑 Java 智能体学习 Day44|Vue 前端项目搭建 思维导图复盘
java·开发语言·spring boot·学习·阿里云
彧azz3 小时前
Java学习记录:判断语句
java·笔记·学习·算法
M78佐菲4 小时前
ARM学习笔记(四)
linux·arm开发·笔记·嵌入式硬件·学习
昌原的儿子LEO4 小时前
i.MX6ULL 裸机开发 C 语言驱动与 BSP 工程管理学习总结
linux·arm开发·学习
kkkkkkkkkk_Z4 小时前
单片机|学习日记:单片机底层架构与寄存器操作全解析
linux·笔记·单片机·学习·51单片机
逐辰十七5 小时前
2023级河海大学自动化计算机控制考试题目
学习