架构评审这件事,做久了真的会有点“麻”。我参加过的评审会,少说也有几十场,最典型的一个画面是:架构师打开文档讲了一个小时,评审团在最后十分钟提了几个问题,然后结论是“总体方案可行,按计划推进”。等系统上线后出了性能问题、扩展性不够、安全漏洞被通报,回头看当时的评审记录,发现那些隐患其实早就有征兆,只是当时没人问、没人提。
后来我开始琢磨一件事:能不能把评审从“靠人发挥”变成“靠流程兜底”?答案落在了一张清单上。但传统清单有个很尴尬的问题——它太“通用”了,翻来覆去就是性能、安全、可用性那几项,放哪个项目都能用,放哪个项目都不疼不痒。直到我开始用AI辅助生成架构评审清单,把每个项目独特的背景、约束、风险喂进去,让它按需生成有针对性的检查问题,评审会的质量才真正上了一个台阶。这篇文章我就把自己的完整做法、提示词写法、清单框架、踩过的坑一次性讲清楚。
1. 先聊透:架构评审为什么需要一张好清单
1.1 评审不是在找茬,是在补认知盲区
很多人对架构评审有个误解,觉得评审就是挑毛病、找漏洞,是站在对立面审问架构师。但真正做过评审的人会明白,评审最有价值的地方,是帮整个团队补齐认知盲区。
我见过一个真实场景:一个做订单中台的方案,架构师把微服务拆分、消息队列选型、数据一致性方案讲得头头是道,评审会上大家也都集中在讨论“订单状态机怎么设计”“Kafka和RocketMQ该选哪个”。结果方案通过了,上线后运维同事问了一句:这个系统的日志规范、监控指标、告警阈值定义了吗?全场安静了。没人想过这件事,因为大家的目光都被“架构亮点”吸引走了。
这就是评审最大的风险——它被“看起来重要的东西”牵着走,而不是被“容易出问题的东西”牵着走。人的注意力天生会集中在方案中最复杂、最亮眼的部分,而真正的隐患往往藏在那些没有人提过的角落里。清单的作用,就是把这些角落一个个翻出来,逼着评审者挨个过一遍。
1.2 AI的定位:用清单把“隐性经验”显性化
既然清单这么重要,为什么很多团队还是不做?我观察下来就一个原因:写清单这件事看起来太简单,做起来太难。
简单地说,任何人都能写“检查系统性能”“评估系统安全性”这种大而化之的条目。但要写出一份真正有用的清单,需要你能针对当前这个具体方案提出具体的、可验证的问题。比如“订单查询接口在峰值1万TPS下,数据库连接池和缓存命中率的预期是多少,超时阈值怎么设?”这种问题。这种问题来自哪里?来自丰富的实战经验,来自你对这个业务领域、这个技术栈的深入理解。
大多数评审参与者并没有这种经验储备。这时候AI就能帮上忙了。它的角色不是“评审专家”,而是一个“经验放大器”:你把方案的上下文告诉它,它用海量的历史知识帮你想出那些你没想到的检查角度,你再用自己的判断去筛选、校准、补充。AI负责拓宽覆盖面,人负责判断深度,配合起来比任何一方单干都强。
我把它总结为一个公式:高质量评审清单 = AI的覆盖面 × 人的校准力。AI的价值不在“替代经验”,而在“把隐性经验显性化”,让一个经验没那么丰富的人,也能拿出经验丰富的人才会问的问题。
2. 怎么设计评审清单框架:六个检查维度的取舍
2.1 我从老清单里归纳出的六维骨架
用AI生成清单的第一步,不是直接让它列问题,而是先给它一个框架。没有框架的AI生成,很容易给你铺出一张包含七八十个问题的长纸,看着很丰富,实际没法用。
我自己用下来比较稳定的框架是六个维度,这六个维度几乎能覆盖我遇到过的所有架构评审场景:
| 维度 | 核心关注点 | 典型风险信号 |
|---|---|---|
| 功能与业务匹配 | 方案是否真正解决业务问题 | 技术方案“过度设计”,与业务规模不匹配 |
| 性能与容量 | 峰值场景下的响应时间、吞吐量、资源用量 | 只在压测环境验证过平均负载,没验证峰值 |
| 安全与合规 | 认证鉴权、数据加密、隐私保护、审计日志 | 把安全放“二期再做” |
| 扩展性与演进 | 新节点如何接入、旧逻辑如何兼容 | 模块耦合严重,加一个字段要改五个服务 |
| 可维护性与可观测性 | 日志、监控、告警、排障链路是否完整 | 系统上线后“全黑”,出问题只能重启 |
| 部署与运营 | 灰度、回滚、灾备、配置管理 | 发布流程靠手工,没有标准预案 |
这六个维度不是我想出来的,而是复盘了大量“上线后出问题”的案例后归纳出来的。你会发现一个规律:绝大多数事故,都能映射到至少一个维度被评审时忽略了。
2.2 每个维度里最容易漏掉的三个子问题
框架有了,接下来要让AI在每个维度里“往深挖”。我自己的经验是,直接让AI“列六个维度的问题”,它给出来的东西还是会偏泛。但如果你在提示词里逐个维度做引导,告诉它这个维度下容易漏掉哪些子问题,效果会好非常多。
性能与容量维度,最容易漏掉的是:
- 数据增长曲线:很多方案只算了“现在的数据量”,没算“一年后的数据量”。订单表三个月增长两千万行之后,当前索引还撑得住吗?AI 会引导你从“存量”和“增量”两个视角去问问题。
- 慢请求雪崩:一个接口变慢,导致上游服务线程池被占满,拖垮整个链路。这属于性能问题的“传染性”,评审时单看一个接口是看不出来的。
- 资源预算的归属:每个服务扩容的预算谁出、容量谁来评估,这看似是管理问题,但架构方案里如果完全不写容量规划,后面必然扯皮。
安全与合规维度,最容易漏掉的是:
- 默认凭据和默认配置:中间件装完用默认密码、默认端口,这在评审文档里经常出现,但也经常被一笔带过没人较真。
- 数据流视角的权限设计:功能上每个接口都有权限控制,但数据导出的接口是不是也能被普通用户调用?权限不能只看功能入口,要看数据能走到哪里。
- 第三方组件的漏洞响应机制:方案里引入了一个开源组件,谁负责跟踪它的安全公告?没有Owner的安全是空谈。
可维护性与可观测性维度,最容易漏掉的是:
- 失败时的可诊断性:系统正常时的观测大家都想到了,但系统失败时能不能快速定位?错误日志里有没有traceId贯穿全链路?
- 配置变更的审计:线上配置被改了一个参数,有没有记录?谁改的、什么时候改的、影响范围多大?
- 依赖故障的降级方案:依赖的第三方服务挂了,我们是跟着挂,还是有降级预案?降级后的体验边界是什么?
你会发现,我举的这九个子问题,都不是从“教科书”上来的,而是从实际事故里长出来的。这也说明了AI辅助的一个关键用法:你不需要自己记住所有经验,但你需要能识别AI给出来的哪些问题是真正切中要害的。
3. AI生成清单实操:从上下文输入到三遍打磨
3.1 第一遍:把背景喂足,让AI“知道自己在审什么”
很多人用AI生成清单时有个坏习惯:直接一句话过去,“帮我写一份架构评审清单”。AI这时候只能给你一份放之四海而皆准的“标准答案”,看起来工整,实际没用。
我实际的用法是,先用一个“上下文描述模板”把当前方案的关键信息喂给AI。我常用的模板大致是:
我正在评审一个软件系统的架构设计方案,请帮我生成一份架构评审清单。 以下是方案的背景信息: - 系统定位:[一句话描述系统是干什么的,比如“面向内部运营人员的工单管理平台”] - 核心使用场景:[列出主要场景,比如“客服创建工单、工单流转审批、数据报表导出”] - 目标用户规模:[预估用户数/并发量,写不准确没关系,写量级即可] - 关键约束:[技术栈限定、部署环境、合规要求等,比如“必须部署在私有云,使用XX框架”] - 技术亮点与主要选型:[比如“微服务架构,Kafka异步削峰,MySQL分库分表,Redis缓存”] - 我担心的重点:[把你心里最没底的方向写出来,比如“数据一致性问题”“高可用切换机制”] - 已知风险:[已经识别出来的问题,比如“目前只压测了单节点性能,集群模式未验证”] 请基于以上信息,从功能与业务、性能与容量、安全与合规、扩展性与演进、 可维护性与可观测性、部署与运营六个维度,分别生成评审检查问题。 要求每个问题具体、可验证,不要使用“是否考虑”“是否充分”这类模糊表述。这里有个关键点,就是“我担心的重点”这一栏。很多人的直觉是希望AI全面覆盖,所以不给任何重点提示。但我的经验恰恰相反:告诉AI你最担心什么,它反而能生成得更全面。因为你担心的方向意味着这个方案确实有风险,AI会顺着这个风险去发散出相关联的问题——这会触发它寻找“连锁风险”的能力,比你让它漫无目的地扫描要好得多。
3.2 第二遍:用角色和边界约束AI的评审视角
第一遍生成的清单,通常问题数量在30到60之间,质量还行,但仍然会有不少“通用项”夹在里面。第二遍要做的事情,是让AI切换不同角色去审视这份方案。
架构评审很有意思的一点在于,不同角色眼里,同一个方案的风险是完全不同的。我做过的评审里,最有价值的问题常常不是架构师提的,而是运维、安全、测试、业务方从自己视角抛出来的“跨界问题”。
为了让AI也具备这种“跨界视角”,我会在提示词里追加一段:
请再分别从以下角色视角,对刚才的方案提出额外的问题,每个角色3~5个: 1. 运维工程师:关注部署、监控、日志、故障恢复、容量规划 2. 安全工程师:关注认证鉴权、数据泄露、漏洞管理、合规审计 3. 测试工程师:关注可测性、测试环境、数据构造、灰度验证 4. 业务产品经理:关注交付时间、功能边界、非功能需求的业务影响 5. 新加入团队的初级开发:关注文档是否充分、代码是否容易上手、架构是否过度复杂 这些角色视角的问题,如果与上一轮的六个维度问题重复,请自动去重; 最终请把不同角色提出的问题整合分节,不要按角色分类输出,要按问题归属的技术主题分类。这一步做完的体验通常很惊喜。运维视角经常能问出“没有预案如何处理失败节点”这种硬核问题,安全视角能问出“接口是否暴露了内部网络结构”这种细节问题,而新员工视角能问出“没有架构文档如何让人接手”这种让架构师冷汗直冒的问题。
3.3 第三遍:按风险等级分级,把问题变成可执行的检查项
第二遍生成的清单已经比较全了,但还有一个致命问题:没法直接用。一份六十个问题的清单,在评审会上根本走不完。你不可能让评审团逐条过一遍,大家会疲劳,到最后再重要的问题也流于形式。
所以第三遍打磨的目标,是“分级”,而且不是简单地标个高/中/低,而是要让每个问题都变成“可执行的检查项”。
我通常让AI做三件事:
第一,把问题按风险等级分成三档:
请把上面的所有问题分成三组: - P0:必须当场确认并有明确结论的问题,如果没有结论,评审不通过。 - P1:必须在启动开发前给出明确方案的问题,可以在评审会后由架构师补充。 - P2:可以留到开发/测试阶段持续跟踪的问题,不影响评审通过,但要记录在案。第二,给每个P0问题补充“通过标准”。这是我认为整个流程里最有价值的一步:
对于所有P0问题,请补充:什么情况下算“通过”?什么情况下算“不通过”? 请给出明确的判断条件,比如数据指标阈值、必须有文档、必须有压测报告等。第三,把整个清单导出成表格。这一步是落地到评审会动作的关键,我会让AI输出一个包含“问题描述、风险等级、检查方法、通过标准、负责人、备注”的表格框架,我再用它整合评审记录。
到这一步,一份可用的评审清单就成型了。以我最近评审的一个订单系统为例,三遍之后输出的清单大概是这样的结构:
- P0问题 9 个:包括“分库分表键如何选取,按什么维度路由”“订单状态与支付状态的最终一致性如何保证,对账机制是什么”“峰值下单场景下,库存扣减的并发上限和超卖容忍度是多少”等
- P1问题 18 个:包括“缓存与数据库的双写一致性问题,容忍多少秒不一致”“消息队列积压超过阈值如何告警,积压恢复策略是什么”等
- P2问题 27 个:包括“是否需要有定时清理历史订单的机制”“是否提供批量导出接口给财务系统”等
这个量级,评审会两个小时是能走完的。P0的问题逐条过,P1快速过方案,P2记录跟踪,节奏会清晰很多。
4. 清单落地:从“生成出来”到“评审好用”
4.1 让问题可验证,而不是“正确的废话”
AI生成清单最容易出现的问题,我给它起了个名字叫“正确的废话”。典型表现是“系统是否具备足够的性能冗余”“方案是否充分考虑了安全性”“数据一致性是否得到保障”。这种问题你没法回答,因为“足够”“充分”“保障”这些词根本没法量化,架构师只能说“我们认为OK”,评审就滑过去了。
我的实践是,在提示词里硬性要求“禁止使用无法量化的判断词”,并强制AI把每个问题改写成可以验证的形式。改写的方法是“加条件、加指标、加场景”。来看三个例子:
- “系统是否具备足够的性能冗余?”→ 改为:“在峰值流量(按预估1万TPS)运行30分钟的情况下,核心接口的P99响应时间是否低于800ms?是否给出过压测报告?”
- “方案是否充分考虑安全性?”→ 改为:“管理后台的登录是否支持多因素认证?API网关是否对全部外部请求做了鉴权?是否提供最近一次安全扫描的报告?”
- “数据一致性是否得到保障?”→ 改为:“订单创建和支付回调之间的状态不一致窗口期最长是多少秒?如果出现状态不一致,采用何种补偿机制?是否设计了定时对账任务?”
你对比一下就能看出来,前者是态度问题,后者是事实问题。态度问题在评审会上永远得不到真实答案,事实问题则逼着架构师要么拿出报告、要么承认没做。一份好清单的本质,就是让“蒙混过关”变得不可能。
4.2 校准与裁剪:AI生成清单后的三小时工作法
AI生成的清单,不管质量多高,我都不会直接拿进评审会。我自己的习惯是留出三个小时做“人工校准”,这三步一个都不能省。
第一步,通读去噪(大约30分钟)。把AI生成的问题从头到尾过一遍,删掉那些和当前项目完全无关的,比如你的方案里根本没有引入消息队列,AI还追问消息积压的处理策略,这就是噪音,删掉。同时合并表达重复的问题,通常能删掉20%左右。
第二步,补充领域特有项(大约60分钟)。AI再强,也缺少你所在业务领域的特有知识。我们这个系统涉及财务对账,我会额外加上“对账差异的处理时效”“差错交易的退款路径”等问题。这类问题AI问不出来,因为它的训练语料里没有你公司内部的业务流程。这是AI和人的能力边界问题——AI给你广度,你给它深度,缺一不可。
第三步,指派Owner和设定时限(大约90分钟)。这个环节最容易被忽略,但恰恰决定清单能不能落地。每个P0问题我都要在评审会前指定一个具体的人去回答,并且明确要求“带着证据来开会”。例如“缓存一致性方案”这个问题的Owner是负责订单服务的开发者,他在评审会上需要带来一份一致性设计说明文档和验证方案。没有这一步,清单只会停留在纸面上,开会还是老样子。
5. 踩坑记录与常见问题的处理办法
5.1 高频踩坑清单(含现场表现与排查建议)
AI辅助生成评审清单这件事,我前前后后试过不下十几次,踩过的坑比成功经验还值得分享。我把高频问题整理成了一张表,对应的“排查建议”都是我自己试过有效的方法。
| 坑点 | 现场表现 | 排查与解决办法 |
|---|---|---|
| 问题太泛、不可回答 | 清单里有大量“是否考虑XX”句式,评审时大家直接跳过 | 在提示词里写上“禁止使用‘是否充分’‘是否考虑’等表达,每个问题必须包含场景、指标或边界条件” |
| 覆盖面严重偏向技术细节 | 全是数据库索引、缓存设置这类技术点,业务价值和演进方向没人问 | 加入“业务产品经理”和“技术债务”两个视角,并明确要求按六个维度均衡输出 |
| 清单太长无法评审 | 一次生成80多个问题,评审会根本走不完 | 分P0/P1/P2三级,评审会上只逐条过P0,其余记录在案 |
| 问题之间重复率高 | 同一个风险点以不同表述出现了三次 | 要求AI“去重合并同类项”,并在人工校准环节统一把关 |
| AI“编造”不存在的约束 | 系统明明是单机部署,AI却追问集群的脑裂处理策略 | 喂背景信息时把约束写清楚:部署形态、规模、技术栈缺一不可;生成后人工删掉不符合约束的问题 |
| 清单缺少“通过标准” | 大家讨论了半小时,最后还是不知道结论怎么收 | 对P0问题强制补充判断条件,比如阈值、文档名称、报告名称,宁可严格不可模糊 |
其中“AI编造不存在的约束”这一点我想多提醒一句。大模型有个特点,就是会“顺着问题往下顺”。如果你的背景信息里没写清楚部署形态是“单机”,它默认你会用集群方案,于是生成一堆关于“集群脑裂”“分布式事务”“节点间数据同步”的问题。这在单机系统里纯属浪费时间。所以喂背景时务必要写约束,把“不存在的选项”提前排除掉。
5.2 怎么判断一份AI清单到底好不好
不是所有AI生成的清单都一样好用,时间久了你会发现差距很大。我判断一份清单质量的标准特别简单,就三条。
第一条,每个问题都能想出“怎么去验证”。当我看到一个问题时,如果脑子里第一反应是“这个能查API文档确认”“这个可以拿压测报告对比”或者“这个看代码就知道”,那就是好问题。如果我的第一反应是“这得问架构师才知道”,那这个问题大概率还是会流于形式。
第二条,覆盖面上,有至少20%的问题是“团队原来没想到的”。如果AI生成的50个问题里,有10个以上是团队里大部分人看完会“哦——对,这个怎么没想到”的,这份清单就值回票价了。如果全程看下来大家波澜不惊,说明这个方案比较成熟,或者你喂给AI的上下文不够深。
第三条,问题能分成清晰的优先级。好的清单不是一个平均用力的大列表,而是有明显“重点区”的——P0问题让人一眼就能看出来这套方案真正的命门在哪里。如果所有问题都差不多重要,说明AI没有真正理解方案的取舍,人工校准的余地还很大。
再把前面几轮的东西串起来看:一份靠谱的AI辅助清单,产出过程无外乎是“提供充分的背景上下文”加“按六维框架生成”加“切换多角色补充视角”加“分级与通过标准校准”加“人工通读去噪裁剪”。流程不复杂,但每一步都有讲究。
我自己现在的工作习惯是:评审会前三天开始准备清单,先花半天时间整理方案材料、喂给AI生成初稿,再做三小时人工校准,给问题指派Owner。评审会上严格按P0/P1/P2的节奏走,会后把P1、P2问题录入跟踪表,在下一个迭代的检查点逐项验收。
要说最大的体会,其实是关于AI辅助这件事的定位。AI不会替代你做判断,也不会替你积累项目经验和领域知识,但它能在你经验不足的地方帮你撑开视野,在你注意力局限的地方帮你补上盲区。把AI当成一个“永远有时间、永远有耐心、读过很多失败案例的评审参谋”,它的价值才能最大化。这种用法,我认为比让AI直接给你评审结论靠谱得多。