PostsMapsLinks
架构设计

架构师角色

架构师的日常职责(选挡记)、ADR 实践与风险排序

架构师的日常收成三件事:选、挡、记

架构师虚职的病灶不在开会多,而在产出对不上仓库:图挂在墙上,代码自己长成另一套结构(几千行的 GodService 类)。 真交付物是三样,决策卡、风险挡板、演进草图;图只是把决策讲清楚的辅助,本身不是交付物。

日常收成三件事。选:在方案间做决定,关键是写下「不选另一个的理由」(如运维文档只有英文、事务边界藏在注解里), 不写这条,选型三个月后退化成口味之争、重新吵一遍;理由与口味不同,它可被环境证伪,理由消失时决策就该重审。 挡:按「概率 × 爆炸半径」(各 1-5 分相乘)给风险排序,分高的先挡,且动作必须落成代码——超时、隔离、降级, 口头的风险挡不住任何一次故障;周末才用的内部工具这类低分风险,先放着观察也是合法动作。 记:把决定钉成 ADR(Architecture Decision Record,架构决策记录),四格,背景、选项、决定、后果,写短、进仓库、和代码放一起。

防漂移靠关键路径自己写一刀:不必承包整个模块,但下单扣库存这类主链路要亲手写一遍, 只有写时才感知得到的摩擦力(多一次网络往返延迟跳一档、拆表事务就断)才能反馈回选和挡的判断。 最贵的产出恰恰是「不做什么」:不选一个方案省下迁移成本、不拆一个还没有独立团队的模块省下一轮分布式事务; 但「不做」若不写进卡,三个月后会被当成「还没做」重新提上议程。必须写卡的三类触发点:引入新依赖、划出新边界、跨团队合同, 共同点是半年后会被追问「当时为什么」,没有卡,追问变猜测,猜测变重做。

格式谱系上,Nygard 2011 年的模板五节(Title、Status、Context、Decision、Consequences)是源头, MADR 4.0 扩展决策驱动因素与备选项利弊,Y-Statement 压缩成一句话;工具生态有 adr-tools、log4brains。 「架构师要不要写代码」的争论里,象牙塔架构师(Ivory Tower Architect)已成贬义词,主流风向倒向 hands-on, 但写多少因组织规模而异。

见:Architecture decision record - GitHub

决策被推翻时开新卡,不改旧 ADR

决策变了直接在旧 ADR 上编辑新结论,是 ADR 实践最常见的反模式之一:三个月后翻 git blame 只剩一次 diff, 两年后新来的人读到的是「我们始终一致地选择了 Kafka」的假象,连当初否决另一个方案的理由都跟着被抹掉。 Nygard 模板为此专设 Status 一节:决策被推翻时不改旧卡正文,而是新写一张卡,旧卡 Status 标注 Superseded by ADR-xxx(被某卡取代),两张卡链接串成决策史。旧卡保留的不是过时信息, 而是「当时为什么不这么选」的证据链,它让环境变化后的重审有据可查,而不是从零再吵一遍。

见:ADR template by Michael Nygard - GitHub

让 AI 替你做权衡是 2026 年新入册的 ADR 反模式

用 LLM 评估选型(自建还是买服务),模型给出漂亮的结构化对比和明确推荐,工程师直接粘贴成 ADR: 半年后服务在真实场景出问题,复盘发现 ADR 里的权衡分析没有任何一条是团队自己验证过的, 连模型声称的关键能力都可能是不实内容。这个形态在 2026 年 6 月被 bool.dev 的 ADR 反模式清单正式收录 (Letting AI Make the Tradeoff for You),同年 arXiv 的实证研究观察到同类现象,称为 agent-driven architecture: 智能体选框架、选数据库、选部署目标,而不论证选择。ADR 的真正价值不在这张纸,而在写它的过程 逼着决策者把权衡想清楚,让 AI 代写,纸还在,想清楚的过程没了。AI 可以起草和格式化, 但「不选 B 的理由」必须由承担后果的人亲手验证。

见:10 ADR Anti-Patterns - bool.dev

概率乘影响的风险排序会压平可逆性

「概率 × 影响面」乘积排序(与 ISO 31000、PMBOK 的风险矩阵同构)有一个隐含假设:分数只在伤害可恢复的风险之间可比。 反例是两张同为 12 分的卡,数据库主库磁盘损坏(概率 3 × 影响面 4)与第三方登录 SDK 偶发超时(概率 4 × 影响面 3): 乘法把「低概率高伤害」和「高概率低伤害」压成同一个数,但两者的正确动作完全不同,前者数据丢了不可逆,必须先挡; 后者加超时重试即可自动恢复。实操补丁是乘积并列或跨档时追加问一句「发生了还能恢复吗」, 不可逆的风险永远排在前面,哪怕概率看起来更低。

见:Risk matrix - Wikipedia

Copyright © 2024 Lionad - CC-BY-NC-CD-4.0