技术架构方法论 · 第 6 课(结课)
综合演练:全流程架构 Kata
前五课的方法首尾相接就是一条完整流水线。这一课不教新东西——换一个全新题目,独立走完全程。
流水线回顾
① 驱动因素 ② 候选架构 ③ 评审 ④ 文档
───────── ───────── ───── ─────
ASR 反问 → 两个先决问题 → 场景轰炸 → C4 上下文+容器图
3-7 个属性排序 风格三步法 敏感点/权衡点 ADR(含被否选项)
质量属性场景 允许混合/单体优先 风险+行动项 arc42 最小集 7 节
(第 1 课) (第 2 课) (第 3 课) (第 4、5 课)
技术调研与选型(给流水线②供弹药)见独立课程《技术调研方法论》。
热身:跨课快测
先凭记忆答题——检索练习比重读笔记的记忆效果好得多,答错再回对应课程。
1.(第 1 课)拿到一个新系统需求,方法论规定的第一步是?
2.(第 2 课)「约束」与「质量属性」的本质区别是?
3.(第 3/5 课)评审结束后的规定动作是?
结课 Kata:网约车派单平台
题目 · 全新场景,独立完成
公司要做一个城市级网约车平台:乘客发单,系统在数秒内从附近司机中派单;司机端每 3 秒上报一次位置;高峰期单城同时在线司机约 2 万、每分钟数千订单;派单要"快且不重"——同一订单不能派给两个司机;平台还需要事后分析派单效率以持续调优算法。监管要求行程数据保存 3 年且可审计。
按流水线独立完成以下产出(45 分钟,写在你自己的笔记里):
- ①驱动因素:3-5 个驱动属性排序(注意题目里埋了显性和隐性的都有);为第一名写一条可度量场景;单列约束。
- ②候选架构:回答两个先决问题(几个量子?数据拆不拆?);选风格(允许混合),3 句理由各引用一个驱动属性。
- ③自我评审:给自己的方案写 2 条场景式提问,标出 1 个权衡点、登记 2 个风险。
- ④文档:列出容器图的容器清单(不必真画);为最重大的那个取舍写一篇 Nygard 格式 ADR。
全部做完再看:自评清单 + 要点提示
先自评(比对答案更重要):
- □ 排序里有没有题目未明说的隐性属性?(本题至少埋了两个:派单不重 = 一致性;3 年可审计 = 合规约束 + 数据架构约束)
- □ 位置上报(2 万司机 × 每 3 秒)和派单裁定,这两类负载的量子分开了吗?混在一个服务里是本题最大的坑。
- □ 三句选型理由是否都能指回你的排序?有没有身份认同式理由混进来?
- □ 权衡点有没有"降"的那一面?风险有没有归属动作?
- □ ADR 的被否选项写了吗?后果栏有减号吗?
要点提示(非唯一解):驱动属性常见排序——低延迟派单(数秒内)、一致性(订单不重派)、可伸缩(位置流是持续高吞吐写入)、可审计(约束转化的属性)。典型混合方案:位置流走事件驱动通道(总线 + 时序/内存存储);派单裁定收进强一致核心(按城市/区域分片的单写入点——注意这里与拍卖题同构,但多了"按地理分片"这个新维度);行程落审计库(仅追加、3 年留存);分析侧独立离线链路,绝不与在线派单抢资源。
结课之后