[系统名称] 架构模板
代表产品:[Claude / Honey / ...] 一句话定位:[用一句话说清这是什么系统]
1. 一句话定位
[一句话。读者看完这句,应该立刻知道这是个什么东西、和它最像的产品是谁。]
2. 业务本质:它在解决什么问题
[抛开技术,先说人话:这类系统为谁、解决什么痛点、靠什么赚钱或创造价值。 架构的所有取舍最终都服务于业务本质——讲清这个,后面的设计才有依据。]
3. 核心需求与约束
把需求拆成两类。这是架构师最重要的基本功:区分「功能」和「质量」。
功能性需求(系统要能做什么):
- [ ] [核心功能 1]
- [ ] [核心功能 2]
非功能性需求 / 质量属性(系统要做得多好):
| 质量属性 | 目标 | 为什么对这类系统重要 |
|---|---|---|
| [如 延迟] | [如 首字 < 1s] | [原因] |
| [如 可用性] | [如 99.9%] | [原因] |
关键约束(不可逾越的边界):
- [如 成本、合规、团队规模、第三方依赖、物理限制]
4. 架构全景图
[用 ASCII 画一张整体架构图。要求:
- 能看出分层 / 模块边界
- 标出数据流方向(用箭头)
- 标出外部依赖(第三方、用户、设备)
- 不要追求面面俱到,要突出「这个系统的灵魂部件」]5. 组件职责
逐个说明上图里每个关键部件做什么 + 为什么需要它(没有「为什么」的部件就是过度设计)。
- [组件 A]:[职责]。为什么需要:[理由]。
- [组件 B]:[职责]。为什么需要:[理由]。
6. 关键数据流
挑 2–3 个最能体现这个系统特点的场景,画出请求/数据怎么一步步流动。
场景一:[如「用户发一条消息」]
[用编号步骤或 ASCII 时序,画出从入口到落库/返回的完整路径]
1. ...
2. ...场景二:[另一个核心场景]
...7. 数据模型与存储选择
[这类系统的核心数据是什么(实体 + 关系的概念模型,不写建表语句)。 不同数据为什么放在不同类型的存储里(关系型 / 文档 / KV / 列存 / 对象存储 / 搜索 / 时序…)。 重点讲「为什么这种数据适合这种存储」,而不是用哪个产品。]
| 数据 | 存储类型 | 为什么 |
|---|---|---|
| [如 用户资料] | [关系型] | [需要事务/强一致] |
| [如 消息内容] | [对象存储] | [大、不变、按 ID 取] |
8. 关键架构决策与权衡 ⭐
(本模板最值钱的一节。) 列出几个真正的「岔路口」,每个写清:面临的选择、最终取向、放弃了什么。
决策 1:[决策点,如「Feed 用推模型还是拉模型」]
- 选项 A:[…],优点 […],代价 […]
- 选项 B:[…],优点 […],代价 […]
- 取向:[通常怎么选],因为 [关键约束]。
决策 2:[…] ...
9. 规模化与瓶颈
[随着用户/数据/流量增长,第一个会撑不住的地方在哪?然后是第二个? 针对每个瓶颈,通常的破解手段是什么(分片、缓存、异步、读写分离、CDN…)? 这一节回答:从 1 万用户到 1 亿用户,架构会怎么变。]
- 第一个瓶颈:[…] → 破解:[…]
- 下一个瓶颈:[…] → 破解:[…]
10. 安全与合规要点
[这类系统的主要攻击面 / 风险在哪?哪些数据是敏感的、碰了会出大事(隐私、支付、合规)? 架构上怎么设边界(隔离、最小权限、加密、审计)?]
11. 常见误区 / 反模式
[新手做这类系统时最容易犯的架构错误。每条写「错误做法 → 为什么错 → 正确思路」。 这一节是「别人踩过的坑」,极其宝贵。]
- ❌ [常见错误] → ✅ [正确思路]
12. 演进路线:MVP → 成长期 → 成熟期
架构是会长大的。别拿成熟期的图去套 MVP。
| 阶段 | 用户/规模量级 | 架构长什么样 | 此时该操心什么 |
|---|---|---|---|
| MVP | [如 < 1万] | [最简形态,可能就是个单体] | [先验证需求,别过度设计] |
| 成长期 | [如 百万级] | [开始拆分/加缓存/异步化] | [找瓶颈、保稳定] |
| 成熟期 | [如 亿级] | [分片/多活/专用子系统] | [成本、容灾、组织协同] |
13. 可复用要点
[这个模板里,哪些架构思想是通用的、可以搬到其它系统上的? 列 3–5 条「带得走的智慧」。]
- 💡 [可迁移的架构思想 1]
- 💡 [可迁移的架构思想 2]
14. 参考原型与延伸阅读
[本模板基于哪些真实的开源项目 / 公开工程博客 / 官方文档 / 论文?列出来并给真实链接。 铁律:不要编造或臆想链接——只放你查证过、真实存在的;优先官方开源仓库与官方工程博客。 每条写「[名称](URL) — 一句话:它是什么 + 体现了本模板哪个要点」。]
🔧 开源原型(可直接读代码):
- 项目名 — [一句话:体现了哪个核心点]。
📖 工程博客 / 官方文档 / 论文:
- 标题 — [它讲了什么、对应本模板哪一节]。
📌 用本模板时记住:读者要带走的是「为什么」,不是「有几个框」。 每个设计都要能回答「它在换取什么」。